実現したいこと/前提条件
- アカウント1が所有するS3 バケットに配置したCFnテンプレートをクロスアカウント(アカウント2)に構築したい。
- アカウント1がパイプラインを所有
基本的には、以下の記事を参照すればできる。
https://repost.aws/ja/knowledge-center/codepipeline-deploy-cloudformation
しかし、クロスアカウントから403 の s3 Access Denied エラーが発生して、そのエラー解消に時間がかかったので、備忘録として残す。
TL;DR
クロスアカウントがアクセスするアーティファクトバケットは、ソースファイルの置き場所である、S3バケットとは異なる。
ソースファイルの置き場所であるs3バケットの権限周りをずっと調査していたが、そもそも調査すべき箇所が異なっていた。
アーティファクトバケットは、選択したソースアクションが S3 であるパイプラインのソースファイルの場所として使用されているバケットとは異なります。
感想
クロスアカウントな構築を行うと、権限周りの良い勉強になる。
アカウント 1 の CodePipeline サービスロールに AssumeRole 許可を追加して、クロスアカウントロールを引き受けるのかと勉強になった。