Save 37% off PRO during our Black Friday Sale! »

IAMロールでTerraformのCI/CDを構築してみた

098ad475722e3697ec2fba28c8654f9f?s=47 YouYou
October 14, 2021

 IAMロールでTerraformのCI/CDを構築してみた

098ad475722e3697ec2fba28c8654f9f?s=128

YouYou

October 14, 2021
Tweet

Transcript

  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. 実装 OIDC作成 IAMロールにOIDCを関連付ける

  10. ワークフロー作成 - 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. まとめ アクセスキーとシークレットキーは使わ ない! AWSでも使わないことを推奨 
 べスプラはこちら↓
 


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