

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gerenciamento de identidade e acesso em AWS CodeBuild
<a name="auth-and-access-control"></a>

O acesso a AWS CodeBuild requer credenciais. Essas credenciais devem ter permissões para acessar AWS recursos, como armazenar e recuperar artefatos de construção em buckets do S3 e visualizar Amazon CloudWatch Logs para compilações. As seções a seguir descrevem como você pode usar o [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)(IAM) e como ajudar CodeBuild a proteger o acesso aos seus recursos:

# Visão geral do gerenciamento de permissões de acesso aos seus AWS CodeBuild recursos
<a name="auth-and-access-control-iam-access-control-identity-based"></a>

Cada AWS recurso pertence a uma AWS conta, e as permissões para criar ou acessar um recurso são regidas por políticas de permissões. Um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções). 

**nota**  
Um administrador da conta (ou usuário administrador) é um usuário com privilégios de administrador. Para obter mais informações, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

Ao conceder permissões, você decide quem receberá as permissões, os recursos que poderão acessar e as ações que poderão ser executadas nesses recursos.

**Topics**
+ [AWS CodeBuild recursos e operações](#arn-formats)
+ [Informações sobre propriedade de recursos](#understanding-resource-ownership)
+ [Gerenciar acesso aos recursos da](#managing-access-resources)
+ [Especificar elementos da política: ações, efeitos e entidades principais](#actions-effects-principals)

## AWS CodeBuild recursos e operações
<a name="arn-formats"></a>

Em AWS CodeBuild, o recurso principal é um projeto de construção. Em uma política, você usa um Amazon Resource Name (ARN) para identificar o recurso a que a política se aplica. As construções também são recursos e estão ARNs associadas a elas. Para obter mais informações, consulte [Amazon Resource Names (ARN) e AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) no. *Referência geral da Amazon Web Services*


| Tipo de atributo | Formato ARN | 
| --- | --- | 
| Projeto de compilação |  `arn:aws:codebuild:region-ID:account-ID:project/project-name`  | 
| Criar |  `arn:aws:codebuild:region-ID:account-ID:build/build-ID`  | 
| Grupo de relatórios | arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name | 
| Relatório | arn:aws:codebuild:region-ID:account-ID:report/report-ID | 
| Frota |  `arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID`  | 
|  Todos os CodeBuild recursos  |  `arn:aws:codebuild:*`  | 
|  Todos os CodeBuild recursos pertencentes à conta especificada na AWS região especificada  |  `arn:aws:codebuild:region-ID:account-ID:*`  | 

**Importante**  
Ao usar o recurso de capacidade reservada, os dados armazenados em cache nas instâncias da frota, incluindo arquivos de origem, camadas do Docker e diretórios em cache especificados no buildspec, podem ser acessados por outros projetos na mesma conta. Isso ocorre por design e permite que projetos dentro da mesma conta compartilhem instâncias de frota.

**nota**  
A maioria dos AWS serviços trata dois pontos (:) ou uma barra invertida (/) como o mesmo caractere em. ARNs No entanto, CodeBuild usa uma correspondência exata nos padrões e regras dos recursos. Certifique-se de usar os caracteres corretos ao criar padrões de evento, de modo que eles correspondam à sintaxe ARN no recurso.

Por exemplo, você pode indicar um projeto de construção específico (*myBuildProject*) em sua declaração usando seu ARN da seguinte forma:

```
"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"
```

Para especificar todos os recursos, ou se uma ação de API não for compatível ARNs, use o caractere curinga (\$1) no `Resource` elemento da seguinte forma:

```
"Resource": "*"
```

Algumas ações CodeBuild da API aceitam vários recursos (por exemplo,`BatchGetProjects`). Para especificar vários recursos em uma única instrução, separe-os ARNs com vírgulas, da seguinte forma:

```
"Resource": [
  "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject",
  "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject"
]
```

CodeBuild fornece um conjunto de operações para trabalhar com os CodeBuild recursos. Para ver uma lista, consulte [AWS CodeBuild referência de permissões](auth-and-access-control-permissions-reference.md).

## Informações sobre propriedade de recursos
<a name="understanding-resource-ownership"></a>

A AWS conta é proprietária dos recursos criados na conta, independentemente de quem criou os recursos. Especificamente, o proprietário do recurso é a AWS conta da [entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) (ou seja, a conta raiz, um usuário ou uma função do IAM) que autentica a solicitação de criação do recurso. Os seguintes exemplos mostram como isso funciona:
+ Se você usar as credenciais da conta raiz da sua AWS conta para criar uma regra, sua AWS conta é a proprietária do CodeBuild recurso.
+ Se você criar um usuário em sua AWS conta e conceder permissões para criar CodeBuild recursos para esse usuário, o usuário poderá criar CodeBuild recursos. No entanto, sua AWS conta, à qual o usuário pertence, possui os CodeBuild recursos.
+ Se você criar uma função do IAM em sua AWS conta com permissões para criar CodeBuild recursos, qualquer pessoa que possa assumir a função poderá criar CodeBuild recursos. Sua AWS conta, à qual a função pertence, é proprietária dos CodeBuild recursos.

## Gerenciar acesso aos recursos da
<a name="managing-access-resources"></a>

A política de permissões descreve quem possui acesso a quais recursos. 

**nota**  
Esta seção aborda o uso do IAM no AWS CodeBuild. Não são fornecidas informações detalhadas sobre o serviço IAM. Para obter a documentação completa do IAM, consulte [O que é o IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) no *Guia do usuário do IAM*. Para obter mais informações sobre a sintaxe e as descrições da política do IAM, consulte a [Referência de políticas do AWS IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) no *Guia do usuário do IAM*.

As políticas anexadas a uma identidade do IAM são conhecidas como políticas baseadas em identidade (políticas do IAM). As políticas anexadas a um recurso são chamadas de políticas baseadas em recursos. CodeBuild suporta políticas baseadas em identidade e políticas baseadas em recursos para determinadas leituras somente APIs para fins de compartilhamento de recursos entre contas.

### Acesso seguro aos buckets do S3
<a name="secure-s3-buckets"></a>

É altamente recomendável que você inclua as seguintes permissões em sua função do IAM para verificar se o bucket do S3 associado ao seu CodeBuild projeto pertence a você ou a alguém em quem você confia. Essas permissões não estão incluídas nas políticas e funções AWS gerenciadas. Você mesmo deve adicioná-las. 
+  `s3:GetBucketAcl` 
+  `s3:GetBucketLocation` 

Se o proprietário de um bucket do S3 usado no projeto for alterado, você deverá verificar se o bucket ainda é de sua propriedade e, caso contrário, atualizar o perfil do IAM. Para obter mais informações, consulte [Permita que os usuários interajam com CodeBuild](setting-up-service-permissions-group.md) e [CodeBuild Permitir interagir com outros AWS serviços](setting-up-service-role.md). 

## Especificar elementos da política: ações, efeitos e entidades principais
<a name="actions-effects-principals"></a>

Para cada AWS CodeBuild recurso, o serviço define um conjunto de operações de API. Para conceder permissões para essas operações de API, CodeBuild defina um conjunto de ações que você pode especificar em uma política. Algumas operações da API podem exigir permissões para mais de uma ação a fim de realizar a operação da API. Para obter mais informações, consulte [AWS CodeBuild recursos e operações](#arn-formats) e [AWS CodeBuild referência de permissões](auth-and-access-control-permissions-reference.md).

Estes são os elementos de política básicos:
+ **Recurso**: use um nome de recurso da Amazon (ARN) para identificar o recurso ao qual a política se aplica.
+ **Ação**: use palavras-chave de ações para identificar operações de recursos que deseja permitir ou negar. Por exemplo, a permissão `codebuild:CreateProject` permite que o usuário execute a operação `CreateProject`.
+ **Efeito**: especifique o efeito, permitir ou negar, quando o usuário solicita a ação. Se você não conceder (permitir) explicitamente acesso a um recurso, o acesso estará implicitamente negado. Você também pode negar acesso explicitamente a um recurso. Você poderia fazer isso para garantir que um usuário não possa acessar um recurso, mesmo quando uma política diferente concede o acesso.
+ **Entidade principal**: em políticas baseadas em identidade (políticas do IAM), o usuário ao qual a política é anexada é a entidade principal implícita. Para as políticas baseadas em recursos, você especifica o usuário, conta, serviço ou outra entidade a receber permissões.

Para saber mais sobre a sintaxe e as descrições da política do IAM, consulte a [Referência de política do AWS IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) no *Guia do usuário do IAM*.

Para ver uma tabela mostrando todas as ações da CodeBuild API e os recursos aos quais elas se aplicam, consulte [AWS CodeBuild referência de permissões](auth-and-access-control-permissions-reference.md) o.

# Usando políticas baseadas em identidade para AWS CodeBuild
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

Este tópico fornece exemplos de políticas baseadas em identidade que demonstram como um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções) e, assim, conceder permissões para realizar operações em recursos do AWS CodeBuild .

**Importante**  
Recomendamos que você primeiro analise os tópicos introdutórios que explicam os conceitos básicos e as opções disponíveis para gerenciar o acesso aos seus CodeBuild recursos. Para obter mais informações, consulte [Visão geral do gerenciamento de permissões de acesso aos seus AWS CodeBuild recursos](auth-and-access-control-iam-access-control-identity-based.md).

**Topics**
+ [Permissões necessárias para usar o AWS CodeBuild console](#console-permissions)
+ [Permissões necessárias para se conectar AWS CodeBuild ao Amazon Elastic Container Registry](#ecr-policies)
+ [Permissões necessárias para que o AWS CodeBuild console se conecte aos provedores de origem](#console-policies)
+ [AWS políticas gerenciadas (predefinidas) para AWS CodeBuild](#managed-policies)
+ [CodeBuild políticas e notificações gerenciadas](#notifications-permissions)
+ [CodeBuild atualizações nas políticas AWS gerenciadas](#security-iam-awsmanpol-updates)
+ [Exemplos de política gerenciada pelo cliente](#customer-managed-policies)

O exemplo a seguir mostra uma política de permissões que permite que um usuário obtenha informações sobre projetos de build somente na região `us-east-2`, para a conta `123456789012`, para qualquer projeto de build que comece com o nome `my`:

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

****  

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

------

## Permissões necessárias para usar o AWS CodeBuild console
<a name="console-permissions"></a>

Um usuário que usa o AWS CodeBuild console deve ter um conjunto mínimo de permissões que permita ao usuário descrever outros AWS recursos da AWS conta. Você deve ter permissões dos seguintes serviços:
+ AWS CodeBuild
+ Amazon CloudWatch
+ CodeCommit (se você estiver armazenando seu código-fonte em um AWS CodeCommit repositório)
+ Amazon Elastic Container Registry (Amazon ECR) (se você estiver usando um ambiente de compilação que dependa de uma imagem do Docker em um repositório do Amazon ECR)
**nota**  
Desde 26 de julho de 2022, a política padrão do IAM vem sendo atualizada. Para obter mais informações, consulte [Permissões necessárias para se conectar AWS CodeBuild ao Amazon Elastic Container Registry](#ecr-policies).
+ Amazon Elastic Container Service (Amazon ECS) (se você estiver usando um ambiente de compilação que dependa de uma imagem do Docker em um repositório do Amazon ECR)
+ AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Storage Service (Amazon S3)

Se você criar uma política do IAM mais restritiva do que as permissões mínimas necessárias, o console não funcionará como pretendido.

## Permissões necessárias para se conectar AWS CodeBuild ao Amazon Elastic Container Registry
<a name="ecr-policies"></a>

Em 26 de julho de 2022, AWS CodeBuild atualizou sua política padrão do IAM para a permissão Amazon ECR. As seguintes permissões foram removidas da política padrão:

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

Para CodeBuild projetos criados antes de 26 de julho de 2022, recomendamos que você atualize sua política com a seguinte política do Amazon ECR:

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

Para obter mais informações sobre a atualização da política, consulte [Permita que os usuários interajam com CodeBuild](setting-up-service-permissions-group.md).

## Permissões necessárias para que o AWS CodeBuild console se conecte aos provedores de origem
<a name="console-policies"></a>

O AWS CodeBuild console usa as seguintes ações de API para se conectar aos provedores de origem (por exemplo, GitHub repositórios).
+ `codebuild:ListConnectedOAuthAccounts`
+ `codebuild:ListRepositories`
+ `codebuild:PersistOAuthToken`
+ `codebuild:ImportSourceCredentials`

Você pode associar provedores de origem (como GitHub repositórios) aos seus projetos de compilação usando o AWS CodeBuild console. Para fazer isso, primeiro você deve adicionar as ações de API anteriores às políticas de acesso do IAM associadas ao usuário que você usa para acessar o AWS CodeBuild console.

As ações de API `ListConnectedOAuthAccounts`, `ListRepositories` e `PersistOAuthToken` não devem ser chamadas pelo código. Portanto, essas ações de API não estão incluídas no AWS CLI AWS SDKs e.

## AWS políticas gerenciadas (predefinidas) para AWS CodeBuild
<a name="managed-policies"></a>

AWS aborda muitos casos de uso comuns fornecendo políticas autônomas do IAM que são criadas e administradas pela AWS. Essas políticas AWS gerenciadas concedem as permissões necessárias para casos de uso comuns, para que você não precise investigar quais permissões são necessárias. As políticas gerenciadas CodeBuild também fornecem permissões para realizar operações em outros serviços, como IAM AWS CodeCommit, Amazon EC2, Amazon ECR, Amazon SNS e CloudWatch Amazon Events, conforme exigido para as responsabilidades dos usuários que receberam a política em questão. Por exemplo, a `AWSCodeBuildAdminAccess` política é uma política de usuário de nível administrativo que permite aos usuários com essa política criar e gerenciar regras de CloudWatch eventos para compilações de projetos e tópicos do Amazon SNS para notificações sobre eventos relacionados a projetos (tópicos cujos nomes são prefixados com`arn:aws:codebuild:`), bem como administrar projetos e grupos de relatórios em. CodeBuild Para obter mais informações, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) no *Guia do usuário do IAM*.

As políticas AWS gerenciadas a seguir, que você pode anexar aos usuários em sua conta, são específicas de AWS CodeBuild.

**AWSCodeBuildAdminAccess**  
Fornece acesso total à CodeBuild inclusão de permissões para administrar projetos de CodeBuild compilação. 

**AWSCodeBuildDeveloperAccess**  
Fornece acesso CodeBuild , mas não permite, a administração do projeto de compilação.

**AWSCodeBuildReadOnlyAccess**  
Fornece acesso somente para leitura a. CodeBuild

Para acessar os artefatos de saída de compilação CodeBuild criados, você também deve anexar a política AWS gerenciada chamada`AmazonS3ReadOnlyAccess`.

Para criar e gerenciar funções CodeBuild de serviço, você também deve anexar a política AWS gerenciada chamada`IAMFullAccess`.

Você também pode criar as próprias políticas do IAM personalizadas a fim de conceder permissões para ações e recursos do CodeBuild. Você pode anexar essas políticas personalizadas a usuários ou grupos do que exijam essas permissões.

**Topics**
+ [AWSCodeBuildAdminAccess](#admin-access-policy)
+ [AWSCodeBuildDeveloperAccess](#developer-access-policy)
+ [AWSCodeBuildReadOnlyAccess](#read-only-access-policy)

### AWSCodeBuildAdminAccess
<a name="admin-access-policy"></a>

A `AWSCodeBuildAdminAccess` política fornece acesso total a CodeBuild, incluindo permissões para administrar projetos de CodeBuild compilação. Aplique essa política somente a usuários de nível administrativo para conceder a eles controle total sobre CodeBuild projetos, grupos de relatórios e recursos relacionados em sua AWS conta, incluindo a capacidade de excluir projetos e grupos de relatórios.

Para ver a política gerenciada completa, consulte [ AWSCodeBuildAdminAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildAdminAccess.html)a referência da política gerenciada do IAM.

### AWSCodeBuildDeveloperAccess
<a name="developer-access-policy"></a>

A `AWSCodeBuildDeveloperAccess` política permite acesso a todas as funcionalidades e recursos relacionados ao projeto CodeBuild e ao grupo de relatórios. Essa política não permite que os usuários excluam CodeBuild projetos, grupos de relatórios ou recursos relacionados em outros AWS serviços, como CloudWatch Eventos. Recomendamos que você aplique essa política à maioria dos usuários.

Para ver a política gerenciada completa, consulte [ AWSCodeBuildDeveloperAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildDeveloperAccess.html)a referência da política gerenciada do IAM.

### AWSCodeBuildReadOnlyAccess
<a name="read-only-access-policy"></a>

A `AWSCodeBuildReadOnlyAccess` política concede acesso somente para leitura CodeBuild e recursos relacionados em outros AWS serviços. Aplique esta política a usuários que possam visualizar e executar compilações, visualizar projetos e grupos de relatórios, mas que não possam fazer alterações neles. 

Para ver a política gerenciada completa, consulte [ AWSCodeBuildReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildReadOnlyAccess.xml)a referência da política gerenciada do IAM.

## CodeBuild políticas e notificações gerenciadas
<a name="notifications-permissions"></a>

CodeBuild suporta notificações, que podem notificar os usuários sobre mudanças importantes na criação de projetos. Políticas gerenciadas para CodeBuild incluir declarações de política para funcionalidade de notificação. Para obter mais informações, consulte [O que são notificações?](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html).

### Permissões relacionadas a notificações em políticas gerenciadas somente leitura
<a name="notifications-readonly"></a>

A política gerenciada `AWSCodeBuildReadOnlyAccess` inclui as instruções a seguir para permitir acesso somente leitura às notificações. Os usuários com essa política gerenciada aplicada podem visualizar notificações de recursos, mas não podem criá-los, gerenciá-los ou assiná-los. 

```
   {
        "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": "*"
    }
```

### Permissões relacionadas a notificações em outras políticas gerenciadas
<a name="notifications-otheraccess"></a>

A política gerenciada `AWSCodeBuildDeveloperAccess` inclui as instruções a seguir para permitir que os usuários criem, editem e assinem notificações. Os usuários não podem excluir regras de notificação nem gerenciar tags de recursos.

```
    {
        "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": "*"
    }
```

Para obter mais informações sobre o IAM e notificações, consulte [Identity and Access Management for AWS CodeStar Notifications](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

## CodeBuild atualizações nas políticas AWS gerenciadas
<a name="security-iam-awsmanpol-updates"></a>

Veja detalhes sobre as atualizações das políticas AWS gerenciadas CodeBuild desde que esse serviço começou a rastrear essas alterações. Para obter alertas automáticos sobre alterações feitas nesta página, assine o feed RSS em [AWS CodeBuild Histórico do documento do Guia do Usuário](history.md).




| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  `AWSCodeBuildAdminAccess` e `AWSCodeBuildDeveloperAccess`: atualização em políticas existentes  |  CodeBuild adicionou a `ssmmessages:OpenDataChannel` permissão a essas políticas para oferecer suporte à depuração interativa de compilações do Session Manager. As `AWSCodeBuildDeveloperAccess` políticas `AWSCodeBuildAdminAccess` e agora incluem a `ssmmessages:OpenDataChannel` ação dos recursos de sessão do Gerenciador de Sessões (`arn:aws:ssm:*:*:session/*`) para apoiar a aplicação do SigV4 nessa WebSocket API.  | 1 de dezembro de 2025 | 
|  `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` e `AWSCodeBuildReadOnlyAccess`: atualização de políticas existentes  |  CodeBuild atualizou um recurso para essas políticas. As políticas `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` e `AWSCodeBuildReadOnlyAccess` foram alteradas para atualizar um recurso existente. O recurso original `arn:aws:codebuild:*` foi atualizado para `arn:aws:codebuild:*:*:project/*`.  | 15 de novembro de 2024 | 
|  `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` e `AWSCodeBuildReadOnlyAccess`: atualização de políticas existentes  |  CodeBuild adicionou um recurso a essas políticas para apoiar o Conexões de código da AWS rebranding. As políticas `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` e `AWSCodeBuildReadOnlyAccess` foram alteradas para adicionar um recurso, `arn:aws:codeconnections:*:*:*`.  | 18 de abril de 2024 | 
|  `AWSCodeBuildAdminAccess` e `AWSCodeBuildDeveloperAccess`: atualização em políticas existentes  |  CodeBuild adicionou uma permissão a essas políticas para oferecer suporte a um tipo adicional de notificação usando o Amazon Q Developer em aplicativos de bate-papo. As políticas `AWSCodeBuildAdminAccess` e `AWSCodeBuildDeveloperAccess` foram alteradas para adicionar uma permissão, `chatbot:ListMicrosoftTeamsChannelConfigurations`.  | 16 de maio de 2023 | 
|  CodeBuild começou a rastrear as alterações  |  CodeBuild começou a rastrear as mudanças em suas políticas AWS gerenciadas.  | 16 de maio de 2021 | 

## Exemplos de política gerenciada pelo cliente
<a name="customer-managed-policies"></a>

Nesta seção, você pode encontrar exemplos de políticas de usuário que concedem permissões para ações do AWS CodeBuild . Essas políticas funcionam quando você está usando a CodeBuild API, AWS SDKs, ou AWS CLI. Ao usar o console, é necessário conceder permissões adicionais específicas e ele. Para mais informações, consulte [Permissões necessárias para usar o AWS CodeBuild console](#console-permissions).

Você pode usar os seguintes exemplos de políticas do IAM para limitar o CodeBuild acesso de seus usuários e funções.

**Topics**
+ [Permitir que um usuário obtenha informações sobre projetos de compilação](#customer-managed-policies-example-batch-get-projects)
+ [Permitir que um usuário obtenha informações sobre frotas](#customer-managed-policies-get-information-about-fleets)
+ [Permitir que um usuário obtenha informações sobre grupos de relatórios](#customer-managed-policies-get-information-about-report-group)
+ [Permitir que um usuário obtenha informações sobre relatórios](#customer-managed-policies-get-information-about-reports)
+ [Permitir que um usuário crie projetos de compilação](#customer-managed-policies-example-create-project)
+ [Permitir que um usuário crie uma frota](#customer-managed-policies-example-create-fleet)
+ [Permitir que um usuário crie um grupo de relatórios](#customer-managed-policies-example-create-report-group)
+ [Permitir que um usuário exclua uma frota](#customer-managed-policies-example-delete-fleet)
+ [Permitir que um usuário exclua um grupo de relatórios](#customer-managed-policies-example-delete-report-group)
+ [Permitir que um usuário exclua um relatório](#customer-managed-policies-example-delete-report)
+ [Permitir que um usuário exclua projetos de compilação](#customer-managed-policies-example-delete-project)
+ [Permitir que um usuário obtenha uma lista de nomes de projetos de compilação](#customer-managed-policies-example-list-projects)
+ [Permitir que um usuário altere informações sobre projetos de compilação](#customer-managed-policies-example-update-project)
+ [Permitir que um usuário altere uma frota](#customer-managed-policies-example-change-fleet)
+ [Permitir que um usuário altere um grupo de relatórios](#customer-managed-policies-example-change-report-group)
+ [Permitir que um usuário obtenha informações sobre compilações](#customer-managed-policies-example-batch-get-builds)
+ [Permitir que um usuário obtenha uma lista de compilações IDs para um projeto de construção](#customer-managed-policies-example-list-builds-for-project)
+ [Permitir que um usuário obtenha uma lista de construções IDs](#customer-managed-policies-example-list-builds)
+ [Permitir que um usuário obtenha uma lista de frotas](#customer-managed-policies-example-get-list-of-fleets)
+ [Permitir que um usuário obtenha uma lista de grupos de relatórios](#customer-managed-policies-example-get-list-of-report-groups)
+ [Permitir que um usuário obtenha uma lista de relatórios](#customer-managed-policies-example-get-list-of-reports)
+ [Permitir que um usuário obtenha uma lista de relatórios para um grupo de relatórios](#customer-managed-policies-example-get-list-of-reports-for-report-group)
+ [Permitir que um usuário obtenha uma lista de casos de teste para um relatório](#customer-managed-policies-example-get-list-of-test-cases-for-report)
+ [Permitir que um usuário comece a executar compilações](#customer-managed-policies-example-start-build)
+ [Permitir que um usuário tente parar compilações](#customer-managed-policies-example-stop-build)
+ [Permitir que um usuário tente excluir compilações](#customer-managed-policies-example-delete-builds)
+ [Permitir que um usuário obtenha informações sobre imagens do Docker que são gerenciadas pelo CodeBuild](#customer-managed-policies-example-list-curated-environment-images)
+ [Permitir que um usuário adicione uma política de permissão para um perfil de serviço de frota](#customer-managed-policies-example-permission-policy-fleet-service-role)
+ [Permitir CodeBuild acesso aos AWS serviços necessários para criar uma interface de rede VPC](#customer-managed-policies-example-create-vpc-network-interface)
+ [Use uma declaração de negação para AWS CodeBuild evitar a desconexão dos provedores de origem](#customer-managed-policies-example-deny-disconnect)

### Permitir que um usuário obtenha informações sobre projetos de compilação
<a name="customer-managed-policies-example-batch-get-projects"></a>

O seguinte exemplo de declaração de política permite que um usuário obtenha informações sobre projetos de compilação na região `us-east-2`, para a conta `123456789012`, para qualquer projeto de compilação que comece com o nome `my`:

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

****  

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

------

### Permitir que um usuário obtenha informações sobre frotas
<a name="customer-managed-policies-get-information-about-fleets"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre frotas na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário obtenha informações sobre grupos de relatórios
<a name="customer-managed-policies-get-information-about-report-group"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre grupos de relatórios na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário obtenha informações sobre relatórios
<a name="customer-managed-policies-get-information-about-reports"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre relatórios na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário crie projetos de compilação
<a name="customer-managed-policies-example-create-project"></a>

O exemplo de declaração de política a seguir permite que um usuário crie projetos de construção com qualquer nome, mas somente na `us-east-2` Região para a conta `123456789012` e usando somente a função CodeBuild de serviço especificada:

------
#### [ 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"
    }
  ]
}
```

------

O exemplo de declaração de política a seguir permite que um usuário crie projetos de construção com qualquer nome, mas somente na `us-east-2` Região para a conta `123456789012` e usando somente a função CodeBuild de serviço especificada. Também impõe que o usuário só possa usar a função de serviço especificada com AWS CodeBuild e não com nenhum outro AWS serviço.

------
#### [ 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"}
      }
    }
  ]
}
```

------

### Permitir que um usuário crie uma frota
<a name="customer-managed-policies-example-create-fleet"></a>

O seguinte exemplo de declaração de políticas permite que um usuário crie uma frota na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário crie um grupo de relatórios
<a name="customer-managed-policies-example-create-report-group"></a>

O exemplo de declaração de política a seguir permite que um usuário crie um grupo de relatórios na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário exclua uma frota
<a name="customer-managed-policies-example-delete-fleet"></a>

O seguinte exemplo de declaração de políticas permite que um usuário exclua uma frota na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário exclua um grupo de relatórios
<a name="customer-managed-policies-example-delete-report-group"></a>

O seguinte exemplo de declaração de políticas permite que um usuário exclua um grupo de relatórios na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário exclua um relatório
<a name="customer-managed-policies-example-delete-report"></a>

O seguinte exemplo de declaração de políticas permite que um usuário exclua um relatório na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário exclua projetos de compilação
<a name="customer-managed-policies-example-delete-project"></a>

O seguinte exemplo de declaração de política permite que um usuário exclua projetos de compilação na região `us-east-2`, para a conta `123456789012`, para qualquer projeto de compilação que comece com o nome `my`:

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

****  

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

------

### Permitir que um usuário obtenha uma lista de nomes de projetos de compilação
<a name="customer-managed-policies-example-list-projects"></a>

O seguinte exemplo de declaração de política permite que um usuário obtenha uma lista de nomes de projeto de build para a mesma conta:

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

****  

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

------

### Permitir que um usuário altere informações sobre projetos de compilação
<a name="customer-managed-policies-example-update-project"></a>

O seguinte exemplo de declaração de política permite que um usuário altere informações sobre projetos de compilação com qualquer nome, porém somente na região `us-east-2`, para a conta `123456789012`, e somente para a função de serviço AWS CodeBuild especificada:

------
#### [ 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"
    }
  ]
}
```

------

### Permitir que um usuário altere uma frota
<a name="customer-managed-policies-example-change-fleet"></a>

O seguinte exemplo de declaração de políticas permite que um usuário altere uma frota na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário altere um grupo de relatórios
<a name="customer-managed-policies-example-change-report-group"></a>

O seguinte exemplo de declaração de políticas permite que um usuário altere um grupo de relatórios na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário obtenha informações sobre compilações
<a name="customer-managed-policies-example-batch-get-builds"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre compilações na região `us-east-2`, para a conta `123456789012`, para projetos de compilação denominados `my-build-project` e `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"
      ]
    }
  ]
}
```

------

### Permitir que um usuário obtenha uma lista de compilações IDs para um projeto de construção
<a name="customer-managed-policies-example-list-builds-for-project"></a>

O exemplo de declaração de política a seguir permite que um usuário obtenha uma lista de construções IDs na `us-east-2` região `123456789012` para considerar os projetos de construção chamados `my-build-project` e`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"
      ]
    }
  ]
}
```

------

### Permitir que um usuário obtenha uma lista de construções IDs
<a name="customer-managed-policies-example-list-builds"></a>

O exemplo de declaração de política a seguir permite que um usuário obtenha uma lista de todas IDs as versões da mesma conta:

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

****  

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

------

### Permitir que um usuário obtenha uma lista de frotas
<a name="customer-managed-policies-example-get-list-of-fleets"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de frotas na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário obtenha uma lista de grupos de relatórios
<a name="customer-managed-policies-example-get-list-of-report-groups"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de grupos de relatórios na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário obtenha uma lista de relatórios
<a name="customer-managed-policies-example-get-list-of-reports"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de relatórios na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário obtenha uma lista de relatórios para um grupo de relatórios
<a name="customer-managed-policies-example-get-list-of-reports-for-report-group"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de relatórios para um grupo de relatórios na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário obtenha uma lista de casos de teste para um relatório
<a name="customer-managed-policies-example-get-list-of-test-cases-for-report"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de casos de teste para um relatório na região `us-east-2`, para a conta `123456789012`:

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

****  

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

------

### Permitir que um usuário comece a executar compilações
<a name="customer-managed-policies-example-start-build"></a>

O seguinte exemplo de declaração de políticas permite que um usuário execute compilações na região `us-east-2`, para a conta `123456789012` para um projeto de compilação que comece com o nome `my`:

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

****  

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

------

### Permitir que um usuário tente parar compilações
<a name="customer-managed-policies-example-stop-build"></a>

O seguinte exemplo de declaração de política permite que um usuário tente parar a execução de builds somente na região `us-east-2`, para a conta `123456789012`, para qualquer projeto de build que comece com o nome `my`:

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

****  

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

------

### Permitir que um usuário tente excluir compilações
<a name="customer-managed-policies-example-delete-builds"></a>

Ao seguinte exemplo de declaração de política permite que um usuário tente excluir compilações somente na região `us-east-2` da conta `123456789012` de qualquer projeto de compilação que comece com o nome `my`:

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

****  

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

------

### Permitir que um usuário obtenha informações sobre imagens do Docker que são gerenciadas pelo CodeBuild
<a name="customer-managed-policies-example-list-curated-environment-images"></a>

O seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre todas as imagens Docker que são gerenciadas pelo CodeBuild:

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

****  

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

------

### Permitir que um usuário adicione uma política de permissão para um perfil de serviço de frota
<a name="customer-managed-policies-example-permission-policy-fleet-service-role"></a>

O exemplo de declaração de política de recursos a seguir permite que um usuário adicione uma política de permissão da VPC para um perfil de serviço de frota:

------
#### [ 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"
                    ]
                }
            }
        }
    ]
}
```

------

O exemplo de declaração de política de recursos a seguir permite que um usuário adicione uma política de permissão personalizada da Amazon Managed Image (AMI) para um perfil de serviço de frota:

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

****  

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

------

O exemplo de declaração de política de confiança a seguir permite a um usuário adicionar uma política de permissão para um perfil de serviço de frota:

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

****  

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

------

### Permitir CodeBuild acesso aos AWS serviços necessários para criar uma interface de rede VPC
<a name="customer-managed-policies-example-create-vpc-network-interface"></a>

O exemplo de declaração de política a seguir concede AWS CodeBuild permissão para criar uma interface de rede em uma VPC com duas sub-redes:

------
#### [ 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"
                    ]
                }
            }
        }
    ]
}
```

------

### Use uma declaração de negação para AWS CodeBuild evitar a desconexão dos provedores de origem
<a name="customer-managed-policies-example-deny-disconnect"></a>

 O exemplo de declaração de política a seguir usa uma instrução de negação para impedir que o AWS CodeBuild se desconecte dos provedores de origem. Ele usa `codebuild:DeleteOAuthToken`, que é o inverso de `codebuild:PersistOAuthToken` e `codebuild:ImportSourceCredentials`, para se conectar com os provedores de origem. Para obter mais informações, consulte [Permissões necessárias para que o AWS CodeBuild console se conecte aos provedores de origem](#console-policies). 

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

****  

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

------

# AWS CodeBuild referência de permissões
<a name="auth-and-access-control-permissions-reference"></a>

Você pode usar chaves AWS de condição abrangentes em suas AWS CodeBuild políticas para expressar condições. Para obter uma lista, consulte [Available Keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) no *Guia do usuário do IAM*.

Você especifica as ações no campo `Action` das políticas. Para especificar uma ação, use o prefixo `codebuild:` seguido pelo nome da operação API (por exemplo, `codebuild:CreateProject` e `codebuild:StartBuild`). Para especificar várias ações em uma única declaração, separe-as com vírgulas (por exemplo, `"Action": [ "codebuild:CreateProject", "codebuild:StartBuild" ]`).

**Usando caracteres curinga**

Você especifica um ARN, com ou sem um caractere curinga (\$1), como o valor do recurso no campo `Resource` das políticas. Você pode usar um curinga para especificar várias ações ou recursos. Por exemplo, `codebuild:*` especifica todas as CodeBuild ações e `codebuild:Batch*` especifica todas as CodeBuild ações que começam com a palavra. `Batch` O seguinte exemplo concede acesso a qualquer projeto de build com nomes que comecem com `my`: 

```
arn:aws:codebuild:us-east-2:123456789012:project/my*
```<a name="actions-related-to-objects-table"></a>CodeBuild Operações de API e permissões necessárias para ações

BatchDeleteBuilds  
 **Ação:** `codebuild:BatchDeleteBuilds`   
Necessários para excluir compilações.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetBuilds  
 **Ação:** `codebuild:BatchGetBuilds`   
Exigido para obter informações sobre builds.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetProjects  
 **Ação:** `codebuild:BatchGetProjects`   
Exigido para obter informações sobre projetos de build.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetReportGroups  
 **Ação:** `codebuild:BatchGetReportGroups`   
Necessário para obter informações sobre grupos de relatórios.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchGetReports  
 **Ação:** `codebuild:BatchGetReports`   
Necessário para obter informações sobre relatórios.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchPutTestCases¹  
 **Ação:** `codebuild:BatchPutTestCases`   
Necessário para criar ou atualizar um relatório de teste.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateProject  
 **Ações:** `codebuild:CreateProject`, `iam:PassRole`   
Exigido para criar projetos de build.  
 **Recursos:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

CreateReport¹  
 **Ação:** `codebuild:CreateReport`   
Necessário para criar um relatório de teste.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateReportGroup  
 **Ação:** `codebuild:CreateReportGroup`   
Necessário para criar um grupo de relatórios.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateWebhook  
 **Ação:** `codebuild:CreateWebhook`   
Necessário para criar um webhook.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteProject  
 **Ação:** `codebuild:DeleteProject`   
Necessário para excluir um CodeBuild projeto.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteReport  
 **Ação:** `codebuild:DeleteReport`   
Necessário para excluir um relatório.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteReportGroup  
 **Ação:** `codebuild:DeleteReportGroup`   
Necessário para excluir um grupo de relatórios.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteSourceCredentials  
 **Ação:** `codebuild:DeleteSourceCredentials`   
Necessário para excluir um conjunto de `SourceCredentialsInfo` objetos que contêm informações sobre credenciais para um repositório GitHub, GitHub Enterprise Server ou Bitbucket.   
 **Recurso**: `*` 

DeleteWebhook  
 **Ação:** `codebuild:DeleteWebhook`   
Necessário para criar um webhook.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DescribeTestCases  
 **Ação:** `codebuild:DescribeTestCases`   
Necessário para retornar uma lista paginada de casos de teste.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

ImportSourceCredentials  
 **Ação:** `codebuild:ImportSourceCredentials`   
Necessário para importar um conjunto de `SourceCredentialsInfo` objetos que contêm informações sobre credenciais para um repositório GitHub, GitHub Enterprise Server ou Bitbucket.   
 **Recurso**: `*` 

InvalidateProjectCache  
 **Ação:** `codebuild:InvalidateProjectCache`   
Necessário para redefinir o cache para um projeto.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListBuildBatches  
 **Ação:** `codebuild:ListBuildBatches`   
Necessário para obter uma lista do lote de compilação IDs.  
 **Recurso**: `*` 

ListBuildBatchesForProject  
 **Ação:** `codebuild:ListBuildBatchesForProject`   
Necessário para obter uma lista de lotes de compilação IDs para um projeto específico.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name` 

ListBuilds  
 **Ação:** `codebuild:ListBuilds`   
Necessário para obter uma lista de construções IDs.  
 **Recurso**: `*` 

ListBuildsForProject  
 **Ação:** `codebuild:ListBuildsForProject`   
Necessário para obter uma lista de IDs compilações para um projeto de construção.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListCuratedEnvironmentImages  
 **Ação:** `codebuild:ListCuratedEnvironmentImages`   
Exigido para obter informações sobre todas as imagens Docker que são gerenciadas pelo AWS CodeBuild.   
 **Recurso:** `*` (necessário, mas não se refere a um recurso da AWS endereçável) 

ListProjects  
 **Ação:** `codebuild:ListProjects`   
Exigido para obter uma lista de nomes de projeto de build.  
 **Recurso**: `*` 

ListReportGroups  
 **Ação:** `codebuild:ListReportGroups`   
Necessário para obter uma lista de grupos de relatórios.  
 **Recurso**: `*` 

ListReports  
 **Ação:** `codebuild:ListReports`   
Necessário para obter uma lista de relatórios.  
 **Recurso**: `*` 

ListReportsForReportGroup  
 **Ação:** `codebuild:ListReportsForReportGroup`   
Necessário para obter uma lista de relatórios para um grupo de relatórios.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

RetryBuild  
**Ação:** `codebuild:RetryBuild`   
Necessário para repetir as compilações.  
**Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name `

StartBuild  
 **Ação:** `codebuild:StartBuild`   
Exigido para começar a executar builds.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

StopBuild  
 **Ação:** `codebuild:StopBuild`   
Exigido para tentar parar de executar builds.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

UpdateProject  
 **Ações:** `codebuild:UpdateProject`, `iam:PassRole`   
Exigido para alterar informações sobre builds.  
 **Recursos:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateProjectVisibility  <a name="UpdateProjectVisibility"></a>
 **Ações:** `codebuild:UpdateProjectVisibility`, `iam:PassRole`   
Necessário para alterar a visibilidade pública das compilações de um projeto.  
 **Recursos:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateReport¹  
 **Ação:** `codebuild:UpdateReport`   
Necessário para criar ou atualizar um relatório de teste.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateReportGroup  
 **Ação:** `codebuild:UpdateReportGroup`   
Necessário para atualizar um grupo de relatórios.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateWebhook  
 **Ação:** `codebuild:UpdateWebhook`   
Necessário para atualizar um webhook.  
 **Recurso**: `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

¹ Usado apenas para permissão. Não há API para esta ação.

# Usando tags para controlar o acesso aos AWS CodeBuild recursos
<a name="auth-and-access-control-using-tags"></a>

As condições nas declarações de política do IAM fazem parte da sintaxe que você pode usar para especificar permissões para ações baseadas em CodeBuild projetos. É possível criar uma política que permita ou negue ações em projetos com base nas tags associadas a esses projetos e aplicar essas políticas aos grupos do IAM que você configura para gerenciar usuários. Para obter informações sobre como aplicar tags a um projeto usando o console ou AWS CLI, consulte[Criar um projeto de compilação no AWS CodeBuild](create-project.md). Para obter informações sobre como aplicar tags usando o CodeBuild SDK, consulte [CreateProject ](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_RequestSyntax)[Tags](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) na *Referência da CodeBuild API*. Para obter informações sobre o uso de tags para controlar o acesso aos AWS recursos, consulte Como [controlar o acesso aos AWS recursos usando tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) de recursos no *Guia do usuário do IAM*.

**Importante**  
Ao usar o recurso de capacidade reservada, os dados armazenados em cache nas instâncias da frota, incluindo arquivos de origem, camadas do Docker e diretórios em cache especificados no buildspec, podem ser acessados por outros projetos na mesma conta. Isso ocorre por design e permite que projetos dentro da mesma conta compartilhem instâncias de frota.

**Example Exemplo 1: limitar as ações CodeBuild do projeto com base nas tags de recursos**  
 O exemplo a seguir nega todas as ações `BatchGetProjects` em projetos marcados com a chave `Environment` com o valor de chave de `Production`. O administrador de um usuário deve anexar essa política do IAM, além de uma política gerenciada pelo usuário, a usuários não autorizados. A chave de condição `aws:ResourceTag` é usada para controlar o acesso a recursos com base em suas tags.     
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetProjects"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:ResourceTag/Environment": "Production"
        }
      }
    }
  ]
}
```

**Example Exemplo 2: limitar as ações CodeBuild do projeto com base nas tags de solicitação**  
A política a seguir negará a permissão dos usuários para a ação `CreateProject` se a solicitação tiver uma tag com a chave `Environment` e o valor de chave `Production`. Além disso, a política impede que esses usuários não autorizados modifiquem projetos usando a chave de condição `aws:TagKeys` para não permitir `UpdateProject` se a solicitação tiver uma tag com a chave `Environment`. Um administrador deve anexar essa política do IAM, além da política gerenciada pelo usuário, a usuários que não estão autorizados a executar essas ações. A chave de condição `aws:RequestTag` é usada para controlar quais tags podem ser transmitidas em uma solicitação do IAM.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:CreateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:RequestTag/Environment": "Production"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:UpdateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": ["Environment"]
        }
      }
    }
  ]
}
```

**Example Exemplo 3: Negar ou permitir ações em grupos de relatórios com base em tags de recursos**  
Você pode criar uma política que permita ou negue ações em CodeBuild recursos (projetos e grupos de relatórios) com base nas AWS tags associadas a esses recursos e, em seguida, aplicar essas políticas aos grupos do IAM que você configura para gerenciar usuários. Por exemplo, você pode criar uma política que negue todas as CodeBuild ações em qualquer grupo de relatórios com a chave de AWS tag `Status` e o valor da chave de e`Secret`, em seguida, aplicar essa política ao grupo do IAM que você criou para desenvolvedores gerais (*Developers*). Em seguida, você precisa garantir que os desenvolvedores que trabalham nesses grupos de relatórios marcados não sejam membros desse *Developers* grupo geral, mas pertençam a um grupo diferente do IAM que não tenha a política restritiva aplicada (`SecretDevelopers`).  
O exemplo a seguir nega todas as CodeBuild ações em grupos de relatórios marcados com a chave `Status` e o valor-chave de`Secret`:    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetReportGroups",
        "codebuild:CreateReportGroup",
        "codebuild:DeleteReportGroup",
        "codebuild:ListReportGroups",
        "codebuild:ListReportsForReportGroup",
        "codebuild:UpdateReportGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:RequestedRegion": "us-east-1"
        }
      }
    }
  ]
}
```

**Example Exemplo 4: limitar CodeBuild ações AWSCode BuildDeveloperAccess com base em tags de recursos**  
Você pode criar políticas que permitam CodeBuild ações em todos os grupos de relatórios e projetos que não estejam marcados com tags específicas. Por exemplo, a política a seguir permite o equivalente de permissões [AWSCodeBuildDeveloperAccess](auth-and-access-control-iam-identity-based-access-control.md#developer-access-policy) para todos os grupos de relatórios e projetos, exceto os marcados com as tags especificadas:    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codebuild:StartBuild",
            "codebuild:StopBuild",
            "codebuild:BatchGet*",
            "codebuild:GetResourcePolicy",
            "codebuild:DescribeTestCases",
            "codebuild:List*",
            "codecommit:GetBranch",
            "codecommit:GetCommit",
            "codecommit:GetRepository",
            "codecommit:ListBranches",
            "cloudwatch:GetMetricStatistics",
            "events:DescribeRule",
            "events:ListTargetsByRule",
            "events:ListRuleNamesByTarget",
            "logs:GetLogEvents",
            "s3:GetBucketLocation",
            "s3:ListAllMyBuckets"
         ],
         "Resource": "*",
         "Condition": {
            "StringNotEquals": {
               "aws:ResourceTag/Status": "Secret",
               "aws:ResourceTag/Team": "Saanvi"
            }
         }
      }
   ]
}
```

# Visualizar recursos no console
<a name="console-resources"></a>

O AWS CodeBuild console exige a `ListRepositories` permissão para exibir uma lista de repositórios para sua AWS conta na AWS região em que você está conectado. O console também inclui uma função **Go to resource (Acessar recurso)** para realizar uma pesquisa por recursos que diferencia letras maiúsculas de minúsculas. Essa pesquisa é realizada em sua AWS conta na AWS região em que você está conectado. Os seguintes recursos são exibidos nos seguintes serviços:
+ AWS CodeBuild: projetos de compilação
+ AWS CodeCommit: repositórios
+ AWS CodeDeploy: aplicativos
+ AWS CodePipeline: pipelines

Para realizar essa pesquisa nos recursos em todos os serviços, você deve ter as seguintes permissões:
+ CodeBuild: `ListProjects`
+ CodeCommit: `ListRepositories`
+ CodeDeploy: `ListApplications`
+ CodePipeline: `ListPipelines`

Os resultados não serão retornados para os recursos de um serviço se você não tiver permissões para esse serviço. Mesmo se você tiver permissões para visualizar recursos, alguns recursos não serão retornados se houver um `Deny` explícito para visualizar esses recursos.