Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
202504xx_Secure Deployment - GitHub Actions で始...
Search
Kohei Saito
February 28, 2025
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
202504xx_Secure Deployment - GitHub Actions で始める安全な CI_CD パイプライン構築
Kohei Saito
February 28, 2025
More Decks by Kohei Saito
See All by Kohei Saito
Azure SRE Agent のご紹介
kohei3110
2
320
Java on Azure で LangGraph!
kohei3110
1
480
ID連携の仕組み・認証/認可について理解を深める
kohei3110
0
49
Kerberos認証について理解を深める
kohei3110
0
60
CDNについて理解を深める
kohei3110
0
52
DNSについて理解を深める
kohei3110
1
150
負荷分散装置について理解を深める
kohei3110
0
43
グラフの機械学習手法 Pg2vec
kohei3110
0
54
最短経路の実行計画について
kohei3110
0
55
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Code Reviewing Like a Champion
maltzj
528
40k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
エンジニアに許された特別な時間の終わり
watany
107
250k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Transcript
Secure Deployment – GitHub Actions で始める 安全な CI/CD パイプライン構築 日本マイクロソフト株式会社
コーポレートソリューション事業本部 インテリジェントクラウド 技術本部 App Innovation Technical Specialist 斎藤 功平
本セッションの想定聴講者とゴール • 想定聴講者 ➢ 運用負荷が低くかつ安全なCI/CDパイプライン構築に関心のあるエンジニア ➢ セキュリティ対策を強化したい企業の技術担当者 • ゴール ➢
運用負荷の軽減: GitHub hosted runner を利用して、GitHub Actions の実行 VM 管理にかかるコストと手間を削減する手 法を学ぶ。 ➢ セキュリティの強化: OpenID Connect を活用することで、従来の秘密情報管理に伴うリスクを低減し、より安全な認証・認 可フローを構築する方法を理解する。 ➢ プライベート環境への安全なデプロイ: プライベートネットワーク内のリソースに対するデプロイ手法や、ネットワーク内外のセキュリティを 両立する実践的な戦略をライブデモを通じて習得する。
アジェンダ 1. GitHub Actions と OIDC (OpenID Connect) の基礎 1.
GitHub Actions とは 2. OIDC (OpenID Connect) とは 3. GitHub-hosted ランナー と Self-hosted ランナー 2. 安全な CI/CD パイプラインの設計 1. 従来の秘密情報管理の問題点とリスク 2. GitHub Actions と OIDC の統合 3. GitHub-hosted ランナーによるPrivate Networkへの安全なデプロイ 1. API Gateway と OIDC を組み合わせたデプロイ 2. Azure 仮想ネットワーク内のリソースへデプロイ 4. デモ 5. まとめ
GitHub Actions と OIDC の基礎
1-1. GitHub Actions とは GitHub上でコードのビルド、テスト、デプロイなどの一連の工程を自動化する 統合CI/CDプラットフォーム GitHub GitHub Actions ステージング環境
開発環境 本番環境 Visual Studio VS Code • コンテナとしてビルドサーバーを用意し、 ソースが壊れることを常に検知する • デプロイ手順は機械的に定義されるため、 意図しないデプロイを防止可能 • 常に最新の状態のコードを管理
1-2. OIDC とは OAuth 2.0 を拡張してユーザー認証を簡素かつ安全に実現するオープンなシング ルサインオンプロトコル 出典: How OpenID
Connect Works - OpenID Foundation
1-3. GitHub-hosted ランナー と Self-hosted ランナー 特徴 GitHub-hosted ランナー Self-hosted
runner 定義 GitHub社が管理・提供する、予め構成さ れた実行環境 自社や独自環境で構築・運用される、自 由度の高い実行環境 セットアップ 簡単に利用開始でき、すぐに動作可能 初期設定やカスタマイズが必要で、環境 構築に時間を要する場合もある 管理・運用 GitHub社が管理・運用するため、ユー ザー側での実行基盤メンテナンスは不要 自社で実行基盤を管理・運用する必要が あり、定期的にメンテナンスが必要 環境の柔軟性 標準化された最新環境が提供される 自社要件に合わせた自由なカスタマイズ が可能 スケーラビリティ 自動スケーリングによりリソース管理が 容易 スケーリングは自社で設計・実装する必 要がある コスト 利用時間に応じた従量課金モデル (一定の 実行時間内であれば無償) 初期投資や運用コストがかかるが、長期 的にはコスト効率が出る可能性がある ユースケース 素早い導入と運用負荷軽減が求められる 場合に最適 高度なカスタマイズや特定のセキュリ ティ要件がある場合に最適
安全な CI/CD パイプラインの設計
2-1. 従来の秘密情報管理の問題点とリスク 構成①: シークレットをハードコード 構成②: シークレットを環境変数に設定 構成③: シークレットをGitHub Secrets に設定
・・・ password=passvalue ・・・ ・・・ password=${{ env.password }} ・・・ ・・・ password=${{ secrets.password }} ・・・ 悪い人 ・・・ password= passvalue ・・・ ログ出力・デバッグ情報 ・・・ password= *********** ・・・ ログ出力 ・・・ password= passvalue ・・・ 設定ミスがある場合 静的なシークレット 設定だと 嬉しいなぁ。。
2-2. GitHub Actions と OIDC の統合 クラウドプロバイダーから有効期限付きのトークンを取得し、ワークフローで使用 OpenID Connect を使ったセキュリティ強化について
- GitHub Docs ◼ メリット 1. 静的なシークレットの生成不要 2. クラウドプロバイダーの認証・認可の仕組みと統合可能 3. シークレットをローテーションする処理を作る必要なし
GitHub-hosted ランナーによる Private Networkへの 安全なデプロイ
3-1. API Gateway (Proxy) と OIDC を組み合わせたデプロイ OIDC と API
Gateway を使用し、GitHub Actions の外部でワークフローを認証 Using an API gateway with OIDC - GitHub Docs ◼ メリット ➢ Firewall や Private Network のルーティング変更不要 ◼ デメリット ➢ API Gateway (Proxy) を構成する必要がある
3-2. Azure 仮想ネットワーク経由でのデプロイ ➢ Azure 仮想ネットワーク内に GitHub-hosted ランナー用の NIC が展開される
➢ Azure のほか (接続経路を構成 することで) オンプレミスや他 社クラウドへのデプロイも可 能 About Azure private networking for GitHub-hosted runners in your organization - GitHub Docs
Demo
4-1. デモ アーキテクチャ GitHub-hosted ランナーを使用して、Azure 仮想ネットワーク内に存在する Container Apps にアプリケーションをデプロイ GitHub
Actions NIC Container Apps Deploy ubuntu-latest Azure データセンター GitHub データセンター
5. まとめ ◼ GitHub Actions と OIDC の統合 ➢ GitHub
Actions の自動化機能と OIDC を組み合わせることで、従来の秘密情 報管理の課題を解消し、安全な認証・認可フローを実現できます。 ◼ ランナーの選択 ➢ GitHub-hosted runner と Self-hosted runner の特性を比較し、運用負荷軽減 やセキュリティ要件に応じた最適な選択について確認しました。 ◼ プライベートネットワークへのデプロイ ➢ GitHub-hosted runner を活用して、プライベートネットワーク内のリソース へ安全にデプロイするための具体的な手法確認しました。
Microsoft Confidential ◼ 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示したものです。状況等の変化により、内容は変更される場合が あります。本資料に特別条件等が提示されている場合、かかる条件等は、貴社との有効な契約を通じて決定されます。それまでは、正式に確定するものではありません。従って、本資料 の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります。貴社の最終的な購入価格は、貴社のリセラー様に より決定されます。マイクロソフトは、本資料の情報に対して明示的、黙示的または法的な、いかなる保証も行いません。 © 2025 Microsoft
Corporation. All rights reserved. Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。 その他、記載されている会社名および製品名は、一般に各社の商標です。