1.4K Views
October 14, 21
スライド概要
IAMロールでTerraformの CI/CDを構築してみた クレデンシャル情報からさようなら
自己紹介 Name:ユータ Occupation:SRE Twitter:@Y0u281 (オーでなくゼロです) ブログ:https://zenn.dev/yuta28 Twitter
目次 ● 従来のCI/CDの課題点 ● GitHub Actionsの新機能 ● 実装 ● ワークフロー作成 ● 実行結果 ● まとめ
従来のCI/CDの課題点
従来の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 }} #シークレットキー
従来のCI/CDの課題点
GitHub Actionsの新機能 ● ● OpenID Connect(OIDC)プロバイダーをGitHub Actions提供 Assume RoleとしてOIDCにIAM権限を付与 OIDC経由でGitHubに クレデンシャル提供が可能 !
実装 ● ● ● sts:GetCallerIdentity ec2:* s3:*
実装
ワークフロー作成 - 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
実行結果
まとめ アクセスキーとシークレットキーの管理 はなるべくなくす
ありがとうございました より詳しい内容は以下のブログで↓ GitHub ActionsにAWSクレデン シャル情報を渡さずに Terraformで CI/CDをやってみた