IAMロールでTerraformのCI_CDを構築してみた

1.4K Views

October 14, 21

スライド概要

詳細ブログ↓
https://zenn.dev/yuta28/articles/terraform-gha

profile-image

フィンテック企業でインフラ運用改善を担当しているSREです。 ブログでまとめたLTスライドをアップロードします。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

IAMロールでTerraformの CI/CDを構築してみた クレデンシャル情報からさようなら

2.

自己紹介 Name:ユータ Occupation:SRE Twitter:@Y0u281 (オーでなくゼロです) ブログ:https://zenn.dev/yuta28 Twitter

3.

目次 ● 従来のCI/CDの課題点 ● GitHub Actionsの新機能 ● 実装 ● ワークフロー作成 ● 実行結果 ● まとめ

4.

従来のCI/CDの課題点

5.

従来のCI/CDの課題点 - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} #アクセスキー aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} #シークレットキー

6.

従来のCI/CDの課題点

7.

GitHub Actionsの新機能 ● ● OpenID Connect(OIDC)プロバイダーをGitHub Actions提供 Assume RoleとしてOIDCにIAM権限を付与 OIDC経由でGitHubに クレデンシャル提供が可能 !

8.

実装 ● ● ● sts:GetCallerIdentity ec2:* s3:*

9.

実装

10.
[beta]
ワークフロー作成 - name: Setup Terraform uses: aws-actions/configure-aws-credentials@master with: role-to-assume: "${{ env.AWS_ROLE_ARN }}" web-identity-token-file: "curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL&audience=sigstore" | jq -r '.value'" aws-region: "${{ env.AWS_DEFAULT_REGION }}" role-duration-seconds: 900 role-session-name: GitHubActionsTerraformCICD
11.

実行結果

12.

まとめ アクセスキーとシークレットキーの管理 はなるべくなくす

13.

ありがとうございました より詳しい内容は以下のブログで↓ GitHub ActionsにAWSクレデン シャル情報を渡さずに Terraformで CI/CDをやってみた