Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する

Avatar for Itaru Ota Itaru Ota
September 25, 2025

GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する

3-shake SRE Tech Talk #13 オンサイトのLT登壇資料です。
https://3-shake.connpass.com/event/362683/

Avatar for Itaru Ota

Itaru Ota

September 25, 2025
Tweet

More Decks by Itaru Ota

Other Decks in Programming

Transcript

  1. GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する 2025/09/25 3-shake SRE Tech Talk

    #13 太田 暢 @iorandd Copyright © 3-shake, Inc. All Rights Reserved.
  2. 👀 2025年現在のベストプラクティス 「GitHub ActionsとAWSを連携する時は OIDCを使う」 6 OAuth 2.0 を拡張して ID

    トークンによりユーザー認証を標準化し、 認証基盤とアプリケーション間で相互運用可能なシングルサインオンや フェデレーション認証を実現するプロトコル
  3. 👀 2025年現在のベストプラクティス 「GitHub ActionsとAWSを連携する時は OIDCを使う」 OAuth 2.0 を拡張して ID トークンによりユーザー認証を標準化し、

    認証基盤とアプリケーション間で相互運用可能なシングルサインオンや フェデレーション認証を実現するプロトコル 7 信頼できるIDプロバイダが発行するIDトークン(一時的な認証トークン)を使っ て、サービス間で安全に認証を行うルール つまり
  4. 👀 2025年現在のベストプラクティス 「GitHub ActionsとAWSを連携する時は OIDCを使う」 OAuth 2.0 を拡張して ID トークンによりユーザー認証を標準化し、

    認証基盤とアプリケーション間で相互運用可能なシングルサインオンや フェデレーション認証を実現するプロトコル GitHubが発行するOpenID Connect (OIDC)トークンを使って AWSにログインするルール 今回のケースで言い換えると 8 信頼できるIDプロバイダが発行するIDトークン(一時的な認証トークン)を使っ て、サービス間で安全に認証を行うルール つまり
  5. OIDC連携の仕組み ③STSにトークンを提示 13 ワークフロー内で aws-actions/configure-aws-credentialsを使い、JWTを AWS STS(Security Token Service、 一時的な認証情報を発行するサービス)に

    渡してロールを引き受ける。 https://docs.github.com/en/actions/ concepts/security/openid-connect Github Actionsのログ JWTは内部で渡される (ログの表示外 )
  6. 🕰 OIDCがベストプラクティスになるまで 15 OpenID Connect Standard公表 https://openid.net/the-openid-foundation-laun ches-the-openid-connect-standard/ 2014 2018

    2019 CognitoやEKSで OIDC利用が進む GitHub Actions 一般利用開始 https://github.blog/changelog/2019-11-11-github- actions-is-generally-available/ Google、 Microsoft、 Okta などの IDプロバイダーが OIDC対応を進める 2021
  7. IAMユーザーのアクセスキーとシークレットキー を発行               ↓ GitHubリポジトリの「 Secrets」として保存               ↓ GitHub Actionsのワークフローでキーを渡して認証、必要に応じて

    STS でロールを引き受ける 🤔 課題 • IAM ユーザーのアクセスキーの漏洩リスク • 秘密鍵の定期的なローテーションの煩雑さ • 複数のワークフローでの共有による、資格情報の追跡の困難 etc. OIDC以前の連携方法(~2021年ごろ) 16
  8. 🕰 OIDCがベストプラクティスになるまで 17 OpenID Connect Standard公表 https://openid.net/the-openid-foundation-laun ches-the-openid-connect-standard/ GitHub Actions

    一般利用開始 https://github.blog/changelog/2019-11-11-github- actions-is-generally-available/ GitHub Actions OIDCサポート開始 https://github.blog/changelog/2021-11-23-secure- cloud-deployments-with-oidc-is-now-ga/ https://aws.amazon.com/jp/blogs/security/use-iam-roles-to-c onnect-github-actions-to-actions-in-aws/ AWS公式Actionでも OIDC利用を推奨 2014 2018 2019 2021 2022 2023 AWSとGitHubのOIDC統合を支援する Terraformモジュールのリリース CognitoやEKSで OIDC利用が進む OIDC連携で中間 TLS証明書の サムプリント登録が不要になる https://github.blog/changelog/2023-07-13-github- actions-oidc-integration-with-aws-no-longer-requi res-pinning-of-intermediate-tls-certificates/ https://github.com/terraform-module/terr aform-aws-github-oidc-provider Google、 Microsoft、 Okta などの IDプロバイダーが OIDC対応を進める
  9. • IAM ユーザーのアクセスキーの漏洩リスク ◦ 長期キーを保存 → OIDC 経由で一時的なトークンを払い出す            

    (ワークフロー実行ごとに有効期限付きで自動発行 ) • 秘密鍵の定期的なローテーションの煩雑さ ◦ 手動でキーを更新・配布 → ローテーション不要                 (OIDC が都度、新たな短期資格情報を取得 ) • 複数のワークフローでの共有による資格情報の追跡の困難さ ◦ アクセスキーを複数パイプラインで共用 → ワークフローごとに固有のフェデレーション認証              (OIDC のクレームや条件で追跡可能 ) • 権限の過剰付与(過去の残骸キー問題) ◦ 使われていないアクセスキーが放置 → 実行時のみ必要最小限の権限を付与                     (STS + OIDC の AssumeRoleWithWebIdentity) 💖 OIDCによる課題の解消 18
  10.   最近のアップデート • OIDCトークン権限の厳格化 (2024年6月) ◦ 呼び出し元のワークフローや特定のジョブレベルで id-token: write権限を明示的に設定する ことが必須とな

    り、セキュリティが強化 ◦ https://github.blog/changelog/2023-06-15-github-actions-securing-openid-connect-oidc-token-permissions-i n-reusable-workflows/ • SHAピンニングとアクションブロッキングの強制 (2025年8月) ◦ 特定のアクションやバージョンをブロックするポリシーをサポート ◦ バージョンをコミット SHAにピンニングすることを強制する機能 が追加され、サプライチェーン攻撃のリスク低減 ◦ https://github.blog/changelog/2025-08-15-github-actions-policy-now-supports-blocking-and-sha-pinning-acti ons/ 19 Github ActionsのYAML
  11.   最近のアップデート • OIDC IdP管理の簡素化 (2024年7月) ◦ IAMでOIDC IdPの管理を簡素化 ◦

    以前は手動で必要だった サムプリントの検証が不要に なり、ルート認証局( CA)を信頼するモデルに移行 ◦ https://aws.amazon.com/jp/about-aws/whats-new/2024/07/aws-identity-access-management-open-id-conne ct-identity-providers/ • SAMLアサーションの暗号化サポート (2025年2月) ◦ IAMがSAMLアサーションの暗号化をサポート ◦ IDプロバイダーから IAMへのSAMLアサーションがエンドユーザーのウェブブラウザなどの仲介者を経由する際に 暗号化されるようになり、セキュリティが向上 ◦ https://aws.amazon.com/jp/about-aws/whats-new/2025/02/aws-iam-encrypted-saml-assertions/ • AWS公式の Lambdaデプロイ用 GitHub Action(2025年8月) ◦ aws-actions/aws-lambda-deploy ◦ ワークフロー中でこのアクションを呼び出すだけでデプロイが完了 ◦ https://aws.amazon.com/jp/about-aws/whats-new/2025/08/aws-lambda-github-actions-function-deployment/ • configure‑aws‑credentials v5.0.0 のリリース (2025年9月) ◦ ローカル実行などで OIDC認証をスキップ可能に ◦ アカウントIDの許可リストをサポートし、入力ハンドリングが改善 ◦ https://github.com/aws-actions/configure-aws-credentials/releases 20
  12. ✅ まとめ • GitHub ActionsとAWSを連携する時はOIDCがベストプラクティス • OIDCとは、信頼できる IDプロバイダが発行するトークン を使って、別のサービスに安全にログ インできるプロトコル

    • GitHubとAWS両サイドで OIDC連携を標準化・強化してきた • セキュリティポリシー (id-token: write や SHAピンニング)の組み合わせで安全性の最大化 が進 んでいる 21