

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将基于身份的策略用于 Amazon CodeBuild
使用基于身份的策略

本主题提供了基于身份的策略的示例，这些示例展示了账户管理员如何将权限策略附加到 IAM 身份（即用户、组和角色），从而授予对 Amazon CodeBuild 资源执行操作的权限。

**重要**  
我们建议您先阅读介绍性主题，这些主题解释了管理 CodeBuild 资源访问权限的基本概念和选项。有关更多信息，请参阅 [管理 Amazon CodeBuild 资源访问权限概述](auth-and-access-control-iam-access-control-identity-based.md)。

**Topics**
+ [

## 使用 Amazon CodeBuild 控制台所需的权限
](#console-permissions)
+ [

## 连接 Amazon 弹性容器注册表所需的权限 Amazon CodeBuild
](#ecr-policies)
+ [

## Amazon CodeBuild 控制台连接源提供商所需的权限
](#console-policies)
+ [

## Amazon 的托管（预定义）策略 Amazon CodeBuild
](#managed-policies)
+ [

## CodeBuild 托管策略和通知
](#notifications-permissions)
+ [

## CodeBuild Amazon 托管策略的更新
](#security-iam-awsmanpol-updates)
+ [

## 客户管理型策略示例
](#customer-managed-policies)

以下是一个权限策略示例，仅允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取任何以 `my` 名称开头的构建项目的相关信息：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

## 使用 Amazon CodeBuild 控制台所需的权限


使用 Amazon CodeBuild 控制台的用户必须拥有允许该 Amazon 账户描述其他 Amazon 资源的最低权限集。您必须拥有来自以下服务的权限：
+ Amazon CodeBuild
+ Amazon CloudWatch
+ CodeCommit （如果您要将源代码存储在 Amazon CodeCommit 存储库中）
+ Amazon Elastic Container Registry (Amazon ECR)（如果您使用的构建环境依赖于 Amazon ECR 存储库中的 Docker 映像）
**注意**  
截至 2022 年 7 月 26 日，默认 IAM 政策已更新。有关更多信息，请参阅 [连接 Amazon 弹性容器注册表所需的权限 Amazon CodeBuild](#ecr-policies)。
+ Amazon Elastic Container Service (Amazon ECS)（如果您使用的构建环境依赖于 Amazon ECR 存储库中的 Docker 映像）
+ Amazon Identity and Access Management (IAM)
+ Amazon Key Management Service (Amazon KMS)
+ Amazon Simple Storage Service（Amazon S3）

如果您创建比必需的最低权限更为严格的 IAM 策略，控制台将无法按预期正常运行。

## 连接 Amazon 弹性容器注册表所需的权限 Amazon CodeBuild


自 2022 年 7 月 26 日起， Amazon CodeBuild 已更新其亚马逊 ECR 权限的默认 IAM 政策。以下权限已从默认策略中删除：

```
"ecr:PutImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload"
```

对于在 2022 年 7 月 26 日之前创建的 CodeBuild 项目，我们建议您使用以下 Amazon ECR 政策更新您的政策：

```
"Action": [
    "ecr:BatchCheckLayerAvailability",
    "ecr:GetDownloadUrlForLayer",
    "ecr:BatchGetImage"
]
```

有关更新您的策略的更多信息，请参阅[允许用户与之互动 CodeBuild](setting-up-service-permissions-group.md)。

## Amazon CodeBuild 控制台连接源提供商所需的权限


 Amazon CodeBuild 控制台使用以下 API 操作连接到源提供商（例如 GitHub 存储库）。
+ `codebuild:ListConnectedOAuthAccounts`
+ `codebuild:ListRepositories`
+ `codebuild:PersistOAuthToken`
+ `codebuild:ImportSourceCredentials`

您可以使用 Amazon CodeBuild 控制台将源提供程序（例如 GitHub 存储库）与您的构建项目相关联。为此，您必须先将前面的 API 操作添加到与您用于访问 Amazon CodeBuild 控制台的用户关联的 IAM 访问策略中。

`ListConnectedOAuthAccounts`、`ListRepositories` 和 `PersistOAuthToken` API 操作不应由您的代码调用。因此，这些 API 操作不包含在 Amazon CLI 和中 Amazon SDKs。

## Amazon 的托管（预定义）策略 Amazon CodeBuild
更新内容：的 Amazon 托管（预定义）策略 Amazon CodeBuild

 AWSCodeBuildAdminAccess 和 AWSCodeBuildDeveloperAccess 策略已更新，包含会话管理器交互式编译调试所需的`ssmmessages:OpenDataChannel`权限。更新内容：的 Amazon 托管（预定义）策略 Amazon CodeBuild

 AWSCodeBuildAdminAccess AWSCodeBuildDeveloperAccess、和 AWSCodeBuildReadOnlyAccess 政策已更新。原始资源 `arn:aws:codeconnections:*:*:connection/*` 已更新为 `arn:aws:codeconnections:*:*:*`。更新内容：的 Amazon 托管（预定义）策略 Amazon CodeBuild

 AWSCodeBuildAdminAccess AWSCodeBuildDeveloperAccess、和 AWSCodeBuildReadOnlyAccess 政策已更新。原始资源 `arn:aws:codebuild:*` 已更新为 `arn:aws:codebuild:*:*:project/*`。更新内容：的 Amazon 托管（预定义）策略 Amazon CodeBuild

 AWSCodeBuildAdminAccess AWSCodeBuildDeveloperAccess、和 AWSCodeBuildReadOnlyAccess 政策已更新，以反映 Amazon CodeConnections 品牌重塑情况。

Amazon 通过提供由创建和管理的独立 IAM 策略来解决许多常见用例 Amazon。这些 Amazon 托管策略为常见用例授予必要的权限，因此您可以不必调查需要哪些权限。的托管策略 CodeBuild 还为获得相关政策的用户提供了在其他服务中执行操作的权限，例如 IAM Amazon CodeCommit、Amazon EC2、Amazon ECR、 CloudWatch Amazon SNS 和 Amazon Events。例如，该`AWSCodeBuildAdminAccess`策略是一个管理级别的用户策略，允许拥有此策略的用户创建和管理项目构建 CloudWatch的事件规则，为项目相关事件（名称前缀为的主题`arn:aws:codebuild:`）创建和管理通知的 Amazon SNS 主题，以及管理中的项目和报告组。 CodeBuild有关更多信息，请参阅《IAM 用户指南》**中的 [Amazon 托管式策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

以下 Amazon 托管策略是特定的，您可以将其附加到账户中的用户 Amazon CodeBuild。

**AWSCodeBuildAdminAccess**  
提供对 CodeBuild 包括管理 CodeBuild 生成项目的权限在内的完全访问权限。

**AWSCodeBuildDeveloperAccess**  
提供对生成项目的访问权限， CodeBuild 但不允许管理生成项目。

**AWSCodeBuildReadOnlyAccess**  
提供对的只读访问权限 CodeBuild。

要访问 CodeBuild 创建的生成输出项目，您还必须附加名为的 Amazon 托管策略`AmazonS3ReadOnlyAccess`。

要创建和管理 CodeBuild 服务角色，还必须附加名为的 Amazon 托管策略`IAMFullAccess`。

此外，您还可以创建您自己的自定义 IAM policy，以授予 CodeBuild 操作和资源的相关权限。您可以将这些自定义策略附加到需要这些权限的 用户或组。

**Topics**
+ [

### AWSCodeBuildAdminAccess
](#admin-access-policy)
+ [

### AWSCodeBuildDeveloperAccess
](#developer-access-policy)
+ [

### AWSCodeBuildReadOnlyAccess
](#read-only-access-policy)

### AWSCodeBuildAdminAccess


该`AWSCodeBuildAdminAccess`策略提供对构建项目的完全访问权限 CodeBuild，包括管理 CodeBuild 生成项目的权限。此政策仅适用于管理员级别的用户，以授予他们对您 Amazon 账户中的 CodeBuild 项目、报告组和相关资源的完全控制权，包括删除项目和报告组的权限。

有关完整的托管策略，请参阅 IAM 托管策略参考[ AWSCodeBuildAdminAccess](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AWSCodeBuildAdminAccess.html)中的。

### AWSCodeBuildDeveloperAccess


该`AWSCodeBuildDeveloperAccess`策略允许访问项目 CodeBuild 和报表组相关资源的所有功能。此政策不允许用户删除 CodeBuild 项目或报告组，或者其他 Amazon 服务（例如 CloudWatch 活动）中的相关资源。建议对大多数用户应用此策略。

有关完整的托管策略，请参阅 IAM 托管策略参考[ AWSCodeBuildDeveloperAccess](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AWSCodeBuildDeveloperAccess.html)中的。

### AWSCodeBuildReadOnlyAccess


该`AWSCodeBuildReadOnlyAccess`政策授予对 CodeBuild 其他 Amazon 服务中的相关资源的只读访问权限。将此策略应用于可以查看和运行构建、查看项目和查看报告组但无法对它们作出任何更改的用户。

有关完整的托管策略，请参阅 IAM 托管策略参考[ AWSCodeBuildReadOnlyAccess](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AWSCodeBuildReadOnlyAccess.xml)中的。

## CodeBuild 托管策略和通知


CodeBuild 支持通知，它可以通知用户生成项目的重要更改。的托管策略 CodeBuild 包括通知功能的策略声明。有关更多信息，请参阅[什么是通知？](https://docs.amazonaws.cn/codestar-notifications/latest/userguide/welcome.html)。

### 只读托管策略中的通知的相关权限


`AWSCodeBuildReadOnlyAccess` 托管策略包含以下语句，以允许对通知进行只读访问。应用此托管策略的用户可以查看资源的通知，但无法创建、管理或订阅这些通知。

```
   {
        "Sid": "CodeStarNotificationsPowerUserAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:DescribeNotificationRule"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*:*:project/*"}
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListEventTypes",
            "codestar-notifications:ListTargets"
        ],
        "Resource": "*"
    }
```

### 其他托管策略中的通知的相关权限


`AWSCodeBuildDeveloperAccess` 托管策略包含以下语句，以允许用户创建、编辑和订阅通知。用户无法删除通知规则或管理资源的标签。

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*:*:project/*"}
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

有关 IAM 和通知的更多信息，请参阅[用于 AWS CodeStar 通知的 Identity and Access Management](https://docs.amazonaws.cn/codestar-notifications/latest/userguide/security-iam.html)。

## CodeBuild Amazon 托管策略的更新
策略更新

查看 CodeBuild 自该服务开始跟踪这些更改以来 Amazon 托管策略更新的详细信息。要获得有关此页面更改的自动提示，请订阅 [Amazon CodeBuild 用户指南文档历史记录](history.md) 的 RSS 源。




| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  `AWSCodeBuildAdminAccess` 和 `AWSCodeBuildDeveloperAccess` – 现有策略的更新  |  CodeBuild 向这些策略添加了支持 Session Manager 交互式编译调试的`ssmmessages:OpenDataChannel`权限。 `AWSCodeBuildAdminAccess`和`AWSCodeBuildDeveloperAccess`策略现在包括会话管理器会话资源 (`arn:aws:ssm:*:*:session/*`) 的`ssmmessages:OpenDataChannel`操作，以支持在此 WebSocket API 上强制执行 Sigv4。  | 2025 年 12 月 1 日 | 
|  `AWSCodeBuildAdminAccess`、`AWSCodeBuildDeveloperAccess` 和 `AWSCodeBuildReadOnlyAccess` – 现有策略更新  |  CodeBuild 已将资源更新为这些政策。 `AWSCodeBuildAdminAccess`、`AWSCodeBuildDeveloperAccess` 和 `AWSCodeBuildReadOnlyAccess` 策略已更改为更新一个现有资源。原始资源 `arn:aws:codebuild:*` 已更新为 `arn:aws:codebuild:*:*:project/*`。  | 2024 年 11 月 15 日 | 
|  `AWSCodeBuildAdminAccess`、`AWSCodeBuildDeveloperAccess` 和 `AWSCodeBuildReadOnlyAccess` – 现有策略更新  |  CodeBuild 在这些政策中添加了支持 Amazon CodeConnections 品牌重塑的资源。 `AWSCodeBuildAdminAccess`、`AWSCodeBuildDeveloperAccess` 和 `AWSCodeBuildReadOnlyAccess` 策略已更改为添加一项资源，`arn:aws:codeconnections:*:*:*`。  | 2024 年 4 月 18 日 | 
|  `AWSCodeBuildAdminAccess` 和 `AWSCodeBuildDeveloperAccess` – 现有策略更新  |  CodeBuild 在这些政策中添加了支持在聊天应用程序中使用 Amazon Q Developer 的额外通知类型的权限。 `AWSCodeBuildAdminAccess` 和 `AWSCodeBuildDeveloperAccess` 策略已经过更改，来添加权限 `chatbot:ListMicrosoftTeamsChannelConfigurations`。  | 2023 年 5 月 16 日 | 
|  CodeBuild 已开始跟踪更改  |  CodeBuild 开始跟踪其 Amazon 托管策略的更改。  | 2023 年 5 月 16 日 | 

## 客户管理型策略示例


本节的用户策略示例介绍如何授予执行 Amazon CodeBuild 操作的权限。这些政策在您使用 CodeBuild API Amazon SDKs、或时起作用 Amazon CLI。当您使用控制台时，您必须授予特定于控制台的其他权限。有关信息，请参阅[使用 Amazon CodeBuild 控制台所需的权限](#console-permissions)。

您可以使用以下示例 IAM 策略来限制您的用户和角色的 CodeBuild 访问权限。

**Topics**
+ [

### 允许用户获取有关构建项目的信息
](#customer-managed-policies-example-batch-get-projects)
+ [

### 允许用户获取有关实例集的信息
](#customer-managed-policies-get-information-about-fleets)
+ [

### 允许用户获取有关报告组的信息
](#customer-managed-policies-get-information-about-report-group)
+ [

### 允许用户获取有关报告的信息
](#customer-managed-policies-get-information-about-reports)
+ [

### 允许用户创建构建项目
](#customer-managed-policies-example-create-project)
+ [

### 允许用户创建实例集
](#customer-managed-policies-example-create-fleet)
+ [

### 允许用户创建报告组
](#customer-managed-policies-example-create-report-group)
+ [

### 允许用户删除实例集
](#customer-managed-policies-example-delete-fleet)
+ [

### 允许用户删除报告组
](#customer-managed-policies-example-delete-report-group)
+ [

### 允许用户删除报告
](#customer-managed-policies-example-delete-report)
+ [

### 允许用户删除构建项目
](#customer-managed-policies-example-delete-project)
+ [

### 允许用户获取构建项目名称的列表
](#customer-managed-policies-example-list-projects)
+ [

### 允许用户更改有关构建项目的信息
](#customer-managed-policies-example-update-project)
+ [

### 允许用户更改实例集
](#customer-managed-policies-example-change-fleet)
+ [

### 允许用户更改报告组
](#customer-managed-policies-example-change-report-group)
+ [

### 允许用户获取有关构建的信息
](#customer-managed-policies-example-batch-get-builds)
+ [

### 允许用户获取构建 IDs 项目的构建列表
](#customer-managed-policies-example-list-builds-for-project)
+ [

### 允许用户获取版本列表 IDs
](#customer-managed-policies-example-list-builds)
+ [

### 允许用户获取实例集列表
](#customer-managed-policies-example-get-list-of-fleets)
+ [

### 允许用户获取报告组列表
](#customer-managed-policies-example-get-list-of-report-groups)
+ [

### 允许用户获取报告列表
](#customer-managed-policies-example-get-list-of-reports)
+ [

### 允许用户获取报告组的报告列表
](#customer-managed-policies-example-get-list-of-reports-for-report-group)
+ [

### 允许用户获取报告的测试用例的列表
](#customer-managed-policies-example-get-list-of-test-cases-for-report)
+ [

### 允许用户开始运行构建
](#customer-managed-policies-example-start-build)
+ [

### 允许用户尝试停止构建
](#customer-managed-policies-example-stop-build)
+ [

### 允许用户尝试删除构建
](#customer-managed-policies-example-delete-builds)
+ [

### 允许用户获取有关由管理的 Docker 镜像的信息 CodeBuild
](#customer-managed-policies-example-list-curated-environment-images)
+ [

### 允许用户为实例集服务角色添加权限策略
](#customer-managed-policies-example-permission-policy-fleet-service-role)
+ [

### 允许 CodeBuild 访问创建 VPC 网络接口所需的 Amazon 服务
](#customer-managed-policies-example-create-vpc-network-interface)
+ [

### 使用 deny 语句防止 Amazon CodeBuild 与源提供商断开连接
](#customer-managed-policies-example-deny-disconnect)

### 允许用户获取有关构建项目的信息


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取任何以名称 `my` 开头的构建项目的信息：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"      
    }
  ]
}
```

------

### 允许用户获取有关实例集的信息


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取有关实例集的信息：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetFleets",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### 允许用户获取有关报告组的信息


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取有关报告组的信息：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReportGroups",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### 允许用户获取有关报告的信息


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取有关报告的信息：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReports",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### 允许用户创建构建项目


以下示例策略声明允许用户使用任意名称创建构建项目，但只能在账户`us-east-2`所在区域中创建构建项目，`123456789012`并且只能使用指定的 CodeBuild 服务角色：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

以下示例策略声明允许用户使用任何名称创建构建项目，但只能在账户`us-east-2`所在区域中创建构建项目，`123456789012`并且只能使用指定的 CodeBuild 服务角色。它还强制用户只能将指定的服务角色与任何其他服务一起使用， Amazon CodeBuild 而不能使用任何其他 Amazon 服务。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole",
      "Condition": {
          "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"}
      }
    }
  ]
}
```

------

### 允许用户创建实例集


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中创建实例集：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### 允许用户创建报告组


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中创建报告组：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### 允许用户删除实例集


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中删除实例集：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### 允许用户删除报告组


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中删除报告组：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### 允许用户删除报告


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中删除报告：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReport",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### 允许用户删除构建项目


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中删除任何以名称 `my` 开头的构建项目：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### 允许用户获取构建项目名称的列表


以下示例策略语句允许用户获取同一账户的构建项目名称的列表：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListProjects",
      "Resource": "*"
    }
  ]
}
```

------

### 允许用户更改有关构建项目的信息


以下示例策略语句仅允许用户在 `123456789012` 账户的 `us-east-2` 区域中更改有关使用任何名称的构建项目的信息，并且只能使用指定的 Amazon CodeBuild 服务角色：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

### 允许用户更改实例集


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中更改实例集：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### 允许用户更改报告组


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中更改报告组：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### 允许用户获取有关构建的信息


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取名为 `my-build-project` 和 `my-other-build-project` 的构建项目的信息：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetBuilds",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### 允许用户获取构建 IDs 项目的构建列表


以下示例政策声明允许用户获取该`us-east-2`区域 IDs 中名为`my-build-project`和`123456789012`的构建项目的构建列表`my-other-build-project`：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuildsForProject",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### 允许用户获取版本列表 IDs


以下示例政策声明允许用户获取同一个账户的所有版本 IDs 的列表：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuilds",
      "Resource": "*"
    }
  ]
}
```

------

### 允许用户获取实例集列表


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取有关实例集的列表：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListFleets",
      "Resource": "*"
    }
  ]
}
```

------

### 允许用户获取报告组列表


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取有关报告组的列表：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportGroups",
      "Resource": "*"
    }
  ]
}
```

------

### 允许用户获取报告列表


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取有关报告的列表：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReports",
      "Resource": "*"
    }
  ]
}
```

------

### 允许用户获取报告组的报告列表


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取报告组的报告列表：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportsForReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### 允许用户获取报告的测试用例的列表


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中获取报告的测试用例列表：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DescribeTestCases",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### 允许用户开始运行构建


以下示例策略语句允许用户在 `123456789012` 账户的 `us-east-2` 区域中运行任何以名称 `my` 开头的构建项目：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StartBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### 允许用户尝试停止构建


以下示例策略语句仅允许用户在 `123456789012` 账户的 `us-east-2` 区域中尝试停止任何以名称 `my` 开头的运行中构建项目：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StopBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### 允许用户尝试删除构建


以下示例策略语句仅允许用户在 `123456789012` 账户的 `us-east-2` 区域中尝试为任何以名称 `my` 开头的构建项目删除构建：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchDeleteBuilds",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### 允许用户获取有关由管理的 Docker 镜像的信息 CodeBuild


以下示例策略语句允许用户获取有关由 CodeBuild 管理的所有 Docker 映像的信息：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListCuratedEnvironmentImages",
      "Resource": "*"
    }
  ]
}
```

------

### 允许用户为实例集服务角色添加权限策略


以下示例资源策略语句允许用户为实例集服务角色添加 VPC 权限策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeBuildFleetVpcCreateNI",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                "arn:aws:ec2:us-west-2:111122223333:security-group/security-group-id-1",
                "arn:aws:ec2:us-west-2:111122223333:network-interface/*"
            ]
        },
        {
            "Sid": "CodeBuildFleetVpcPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CodeBuildFleetVpcNIPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1"
                    ]
                }
            }
        }
    ]
}
```

------

以下示例资源策略语句允许用户为实例集服务角色添加自定义 Amazon 托管的映像（AMI）权限策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeImages",
            "Resource": "*"
        } 
    ]
}
```

------

以下示例信任策略语句允许用户为实例集服务角色添加权限策略：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CodeBuildFleetVPCTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "codebuild.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

### 允许 CodeBuild 访问创建 VPC 网络接口所需的 Amazon 服务


以下示例策略声明授予在具有两个子网的 VPC 中创建网络接口的 Amazon CodeBuild 权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:AuthorizedService": "codebuild.amazonaws.com"
                },
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-2"
                    ]
                }
            }
        }
    ]
}
```

------

### 使用 deny 语句防止 Amazon CodeBuild 与源提供商断开连接


 以下示例策略语句使用 Deny 语句阻止 Amazon CodeBuild 与源提供商断开连接。它使用 `codebuild:DeleteOAuthToken`（`codebuild:PersistOAuthToken` 和 `codebuild:ImportSourceCredentials` 的倒数）连接到源提供商。有关更多信息，请参阅 [Amazon CodeBuild 控制台连接源提供商所需的权限](#console-policies)。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "codebuild:DeleteOAuthToken",
      "Resource": "*"
    }
  ]
}
```

------