-
Notifications
You must be signed in to change notification settings - Fork 4.5k
CodeBuild: A project with default role results in Not authorized to perform DescribeSecurityGroups #2652
Description
Describe the bug
Creating a new CodeBuild project without defining a role, results in exception during deploy: "Not authorized to perform DescribeSecurityGroups (Service: AWSCodeBuild; Status Code: 400; Error Code: InvalidInputException".
Looking at the generated CF template, it appears there are two IAM policy documents that are generated and reference the CodeBuild project role. One is the default policy with a name similar to codebuildprojectRoleDefaultPolicy4FA15962 and another "CodeBuildEC2Policy" with a name similar to codebuildprojectPolicyDocument1DCF3D9B. Based on the exception it seems the "CodeBuildEC2Policy" is not recognized or perhaps a race condition?
After a brief search on the interwebs, I found this: https://stackoverflow.com/questions/52843460/receive-not-authorized-to-perform-describesecuritygroups-when-creating-new-pro which seems similar to the issue here.
To Reproduce
Using something like the following code will reproduce:
val projectProps = ProjectProps.builder()
.withEnvironment(buildEnvironment)
.withProjectName(appName)
.withSource(gitHubEnterpriseSource)
.withBuildSpec("buildspec.yml")
.withVpc(props.vpc)
.withArtifacts(NoBuildArtifacts())
.withSecondaryArtifacts(
listOf(
s3BucketBuildArtifacts
)
)
.build()
val project = Project(this, "code-build-project", projectProps)
Expected behavior
Using default role with CodeBuild project should not result in exception.
Version:
- Ubuntu 18.04
- Kotlin using Java CDK artifacts
- 0.32.0