AWSProtonCodeBuildProvisioningServiceRolePolicy

Last Modified

Mar 12, 2026

March 12, 2026 at 09:26 PM UTC

Version

v2

Total Versions

3

Created

May 17, 2023

Actions

18

Risk

Medium

The same capabilities in a scoped form, resource policy writes, reads across all data, or full access to a whole service. Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed

  • Medium

    Can launch resources that run as a more privileged role

    Grants the actions of 2 documented escalation paths, but only on named resources or under a condition. Review that scope before trusting it.

    • cloudformation-001iam:PassRole + cloudformation:CreateStackscoped
      • iam:PassRole: condition iam:PassedToService
      • cloudformation:CreateStack: on arn:aws:cloudformation:*:*:stack/AWSProton-CodeBuild-*
    • codebuild-001iam:PassRole + codebuild:CreateProject + codebuild:StartBuildscoped
      • iam:PassRole: condition iam:PassedToService
      • codebuild:CreateProject: on arn:aws:codebuild:*:*:project/AWSProton*
      • codebuild:StartBuild: on arn:aws:codebuild:*:*:project/AWSProton*

    Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.

  • Medium

    Can take over existing resources that run as another role

    Grants the actions of 2 documented escalation paths, but only on named resources or under a condition. Review that scope before trusting it.

    • cloudformation-002cloudformation:UpdateStackscoped
      • cloudformation:UpdateStack: on arn:aws:cloudformation:*:*:stack/AWSProton-CodeBuild-*
    • codebuild-002codebuild:StartBuildscoped
      • codebuild:StartBuild: on arn:aws:codebuild:*:*:project/AWSProton*

    Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.

  • Medium

    Flagged by AWS IAM Access Analyzer

    AWS's own policy validation raises 1 security warning: PASS_ROLE_WITH_STAR_IN_RESOURCE.

    • Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement.

    Use with caution: Read AWS's finding and the documentation it links to.

IAM Access Analyzer (1)

  • Security warning / PASS_ROLE_WITH_STAR_IN_RESOURCE

    Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "cloudformation:CreateStack",
            "cloudformation:CreateChangeSet",
            "cloudformation:DeleteChangeSet",
            "cloudformation:DeleteStack",
            "cloudformation:UpdateStack",
            "cloudformation:DescribeStacks",
            "cloudformation:DescribeStackEvents",
            "cloudformation:ListStackResources"
          ],
          "Resource": [
            "arn:aws:cloudformation:*:*:stack/AWSProton-CodeBuild-*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "codebuild:CreateProject",
            "codebuild:DeleteProject",
            "codebuild:UpdateProject",
            "codebuild:StartBuild",
            "codebuild:StopBuild",
            "codebuild:RetryBuild",
            "codebuild:BatchGetBuilds",
            "codebuild:BatchGetProjects"
          ],
          "Resource": "arn:aws:codebuild:*:*:project/AWSProton*"
        },
        {
          "Effect": "Allow",
          "Action": "iam:PassRole",
          "Resource": "*",
          "Condition": {
            "StringEqualsIfExists": {
              "iam:PassedToService": "codebuild.amazonaws.com"
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "servicequotas:GetServiceQuota"
          ],
          "Resource": "*"
        }
      ]
    },
    "VersionId": "v2",
    "IsDefaultVersion": true,
    "CreateDate": "2023-05-17T16:11:40+00:00"
  }
}

Version History (6 recorded)

Raw history

AWSProtonCodeBuildProvisioningServiceRolePolicy - Policy Version v2

No recorded action delta - this version predates the change index. View the raw diff.

Mar 12, 2026

d58d37e

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 18, 2024

aafbae9

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

May 13, 2024

1b36617

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

May 17, 2023

f9f076f

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

May 17, 2023

84c0091

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Nov 9, 2022

5cf9eeb