Closed7
【GitHub Actions】OpenID Connectを使用してAWSの認証を行う構成をTerraformで用意する
参考
aws_iam_openid_connect_provider
IDプロバイダ設定としてGitHubActionsを登録します
resourceの場合
resource "aws_iam_openid_connect_provider" "githubactions" {
url = "https://token.actions.githubusercontent.com"
client_id_list = ["sts.amazonaws.com"]
thumbprint_list = ["a031c46782e6e6c662c2c87c76da9aa62ccabd8e"]
}
fingerprint
についてはサンプルに記載がありました
dataの場合
既にIDプロバイダとしてGitHubActionsを登録している場合はdata
で参照します
data "aws_iam_openid_connect_provider" "githubactions" {
url = "https://token.actions.githubusercontent.com"
}
IAMロール
resource "aws_iam_role" "githubactions" {
name = "githubactions"
path = "/"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Effect = "Allow"
Action = "sts:AssumeRoleWithWebIdentity"
Principal = {
Federated = data.aws_iam_openid_connect_provider.githubactions.arn
}
Condition = {
StringLike = {
"token.actions.githubusercontent.com:sub" = [
"repo:<account>/<repo>:*"
]
}
}
}]
})
managed_policy_arns = ["arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"]
}
動作確認
secretsに今回作成したロールのArnを入れたら準備OK
コードは変わってないので、空コミットを試します。はじめてつかう
$ git commit --allow-empty -m "empty commit"
$ git push -u origin main
無事にうまくいきました
このスクラップは2023/06/30にクローズされました