📙

AWS CodePipelineをクロスアカウントで作成する際の権限図

2022/01/26に公開

AWS CodePipelineでCI/CDを回すとき、クロスアカウントで設定することがよくあります。

その際の設定方法としては以下のクラスメソッドさんの記事が最強だと思うのですが、こちらを自分なりにスッキリ理解するのは意外と難しいものです。

参考: CodePipelineでアカウントをまたいだパイプラインを作成してみる

図にしたら一瞬で理解できる

そこで、クロスアカウントのCodePipelineの権限関係を図示してみたのですが、スッキリ腑に落ちすぎて怖くなったのでZennに上げます。
※そのままの倍率だと少し見にくいので Ctrl + で拡大することをお勧めします。

吹き出しにはクロスアカウント実現のために設定するべき権限が書いてあります。
※CodeBuildやCodePipelineに付けなければならない権限(CodeBuild実行権限やECRに対する権限など)は省いていますのでご注意。

この図の通りに権限を付けると、確かに以下のような操作が可能になり、クロスアカウントデプロイに成功することが分かります。

おわりに

ややこしいクロスアカウント権限設定の理解に役立てば幸いです。
図示は頭の共有や理解において最強の方法だと思っているのでガンガン書いていきましょう。

なお、コンソールではCodePipelineのSourceフェーズに別アカウントのリポジトリないしブランチを指定することはできないので、CLIやIaCなど別の方法を使う必要があります。

最後にもう一度クラスメソッドさんの引用記事を置いておきます。

参考: CodePipelineでアカウントをまたいだパイプラインを作成してみる

Discussion