CodePipeline のパイプライン作成時に既存のロールを選択しているにもかかわらず、iam:CreateRole の権限が必要な理由を教えてください

2023.03.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

PowerUserAccess を付与したユーザーが CodePipeline のパイプラインを作成しようとしたところ、iam:CreateRole の権限がないためエラーになりました。
パイプライン作成時に既存のロールを選択すれば iam:CreateRole の権限は不要だと認識していたのですが、iam:CreateRole の権限が必要な理由を教えてください

どう対応すればいいの?

マネジメントコンソールからパイプラインを作成する際には、EventBridge のサービスロールも自動的に作成されるため、iam:CreateRole の権限が必要です。

マネジメントコンソールからパイプラインを作成する際、ソースの設定において「検出オプションを変更する」という項目があり、デフォルトでは Amazon CloudWatch Events が推奨設定として選択されています。
Amazon CloudWatch Events を選択した状態でパイプラインを作成すると、パイプライン作成時に自動的に EventBridge ルールおよび、EventBridge のサービスロールが作成されます。 この時、iam:CreateRole の権限が必要なため、PowerUserAccess ではエラーが発生します。

回避方法としては、iam:CreateRole の権限を付与する方法をご検討ください。

なお、検出オプションから AWS CodePipeline を選択することも可能ですが、AWS 公式ドキュメントでは Amazon CloudWatch Events を使用することが推奨されています。

Initially, only polling was supported. Events are now the default and recommended way to start your pipeline when there’s a code change.

参考資料