3
2

More than 1 year has passed since last update.

CloudFormationでCodeBuildを作成しようとしたら「Not authorized to perform DescribeSecurityGroups」になった

Last updated at Posted at 2022-04-15

起きたこと

  • CodeBuildプロジェクトをCloudFormationで作るためにyamlテンプレートを作成しAWS::CodeBuild::Projectを追加した。
  • またプロジェクトにアタッチするロールとポリシーを一緒に作りたかったので、同じテンプレートにAWS::IAM::RoleAWS::IAM::Policyを追加した。
  • 作成したテンプレートをもとにスタックを実行するとNot authorized to perform DescribeSecurityGroupsというエラーメッセージが表示され作成に失敗した。

原因

1. 必要なec2:DescribeSecurityGroupsの権限が不足している。(エラー文そのまま)

  • VPC内にCodeBuildを作成する場合に必要な権限となる。
  • 他にも必要なec2:のポリシーがあるが、基本的には公式が載せているこのポリシーをアタッチすればOK
  • (上記の公式ポリシーのStringEqualsの部分をyamlで上手く指定できず困ったのだが、こちらの記事を参考に!Sub |を使ってみたところ無事指定できた。)

2. ポリシーの作成が完了する前にCodeBuildの作成が完了してしまい、権限が無いものとして扱われた。

  • 自分の場合はこちらだった。
  • ポリシー→CodeBuildの順で確実に作成されるよう、以下のようにDependsOn属性をCodeBuildに追加したところ、無事にCodeBuildを作成できた。
CodeBuildProject:
    DependsOn:
      - CodeBuildIamPolicy
    Type: AWS::CodeBuild::Project
  • ポリシー用テンプレートを作成しスタック実行した後に、CodeBuild用テンプレートを実行するやり方でもいい。

参考: Receive "Not authorized to perform DescribeSecurityGroups" when creating new Project in AWS CodeBuild

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2