GitHub ActionsからAWSへ安全にデプロイする OIDCフェデレーションで長期キーを廃止
DOPでは、CI・CDからAWSへの認証を安全に行う設計が出ます。パイプラインにIAMユーザーのアクセスキーを保存するのは避け、OIDCによる一時認証情報を使うのが現在の標準です。
覚え方:3つの観点
- 信頼:IAMにIdPとしてGitHubを登録
- 制限:リポジトリとブランチで引き受け条件を絞る
- 権限:デプロイに必要な最小権限のみ
仕組みと設定
ワークフローが実行時にGitHubからOIDCトークンを受け取り、AWS STSのAssumeRoleWithWebIdentityでIAMロールを引き受けて、短期の一時認証情報を得ます。ワークフローにはid-tokenの書き込み権限を付与し、aws-actions/configure-aws-credentialsアクションでロールを指定します。
IAM側では、プロバイダーにtoken.actions.githubusercontent.comを登録し、対象(audience)をsts.amazonaws.comにします。ロールの信頼ポリシーでは、subジェクト条件に対象リポジトリとブランチを指定します。これにより、他のリポジトリがこのロールを引き受けることを防げます。
| 方式 | 資格情報の寿命 | リスク |
|---|---|---|
| IAMユーザーのアクセスキーをシークレット保存 | 長期(手動ローテーション) | 漏えいすると長期間悪用される |
| OIDCでロールを引き受け | 短期(自動失効) | 条件で絞れば漏えいの影響が小さい |
試験ポイント 「長期的な認証情報を保存せずに外部のCI・CDからAWSを操作」はOIDCフェデレーションが正解です。
よくある誤り 信頼ポリシーでsubの条件を指定しないと、GitHub上の他のリポジトリからもロールを引き受けられる恐れがあります。
チェックリスト
- OIDCでSTSから一時認証情報を得る流れを説明できる
- 信頼ポリシーのsubとaudの役割を言える
- ワークフローに必要な権限設定を知っている
- 長期アクセスキーを避ける理由を言える
まとめ
外部のCI・CDには一時認証情報と最小権限を原則にしましょう。 理解度はクイズで確認し、最新の出題範囲はAWS認定 公式ページで確認しましょう。
DOP(DevOpsエンジニア) におすすめの教材
問題集
AWS認定 DevOpsエンジニア − プロフェッショナル DOP-C02 出題予想問題集 第2版
問題集
AWS認定 DevOpsエンジニア − プロフェッショナル DOP-C02 練習問題集
Udemy・講座
AWS認定DOP(DOP-C02)実践問題集(全範囲・225問)
Udemy・模試
AWS認定DOP 演習テスト(日本語)
本セクションにはAmazonアソシエイト・Udemyアフィリエイトのリンクが含まれます。