Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
IAMロールでTerraformのCI/CDを構築してみた
YouYou
October 14, 2021
Programming
0
1.7k
IAMロールでTerraformのCI/CDを構築してみた
詳細ブログ↓
https://zenn.dev/yuta28/articles/terraform-gha
YouYou
October 14, 2021
Tweet
Share
More Decks by YouYou
See All by YouYou
dev.toの記事もGitHubで管理してみた
yuhta28
0
440
Repographyでいい感じにGitコミットを視覚化してみた
yuhta28
1
320
IaCのCI_CDを実現するSpaceliftを触ってみた
yuhta28
0
650
既存インフラをコード化する時に気を付けること
yuhta28
1
2.2k
PythonではなくRcloneで アップロードしてみた
yuhta28
0
890
Instance Schedulerを使ってEC2の稼働時間を管理してみた
yuhta28
0
1.2k
EC2のキーペア置換に気を付けよう
yuhta28
0
1.1k
いい感じにCLWをtailしてみる
yuhta28
0
380
RDSのリザーブドインスタンスに気をつけよう
yuhta28
0
4.9k
Other Decks in Programming
See All in Programming
Imperative is dead, long live Declarative! | Appdevcon
prof18
0
110
Android Compose Component - mapping.
taehwandev
0
140
How we run a Realtime Puzzle Fighting Game on AWS Serverless
falken
0
250
設計の学び方:自分流のススメ
masuda220
PRO
10
7.4k
プロダクトのタイプ別 GraphQL クライアントの選び方
shozawa
0
5.7k
heyにおけるCI/CDの現状と課題
fufuhu
3
560
What's new in Android development tools まとめ
mkeeda
0
390
Jetpack Composeでの画面遷移
iwata_n
0
190
IE Graduation (IE の功績を讃える)
jxck
20
12k
こそこそアジャイル導入しようぜ!
ichimichi
0
1.3k
CSE360 Tutorial 07
javiergs
PRO
0
100
Amazon ECSのネットワーク関連コストの話
msato
0
660
Featured
See All Featured
KATA
mclloyd
7
8.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
37
3.3k
The Invisible Customer
myddelton
110
11k
Learning to Love Humans: Emotional Interface Design
aarron
261
37k
YesSQL, Process and Tooling at Scale
rocio
157
12k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
23
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
What's in a price? How to price your products and services
michaelherold
229
9.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
19
1.4k
Facilitating Awesome Meetings
lara
29
4k
Typedesign – Prime Four
hannesfritz
34
1.4k
For a Future-Friendly Web
brad_frost
166
7.4k
Transcript
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:*
実装 OIDC作成 IAMロールにOIDCを関連付ける
ワークフロー作成 - 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
実行結果
実行結果
まとめ アクセスキーとシークレットキーは使わ ない! AWSでも使わないことを推奨 べスプラはこちら↓
ありがとうございました より詳しい内容は以下のブログで↓ GitHub ActionsにAWSクレデン シャル情報を渡さずに Terraformで CI/CDをやってみた