

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á.

# Usando tags para controlar o acesso aos AWS CodeBuild recursos


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