

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo dei tag per controllare l'accesso a AWS CodeBuild risorse
<a name="auth-and-access-control-using-tags"></a>

Le condizioni nelle dichiarazioni delle politiche IAM fanno parte della sintassi che puoi utilizzare per specificare le autorizzazioni per le azioni basate sul CodeBuild progetto. Puoi creare una policy che consenta o neghi le azioni sui progetti in base ai tag associati a tali progetti e quindi applicare tali policy ai gruppi IAM che configuri per la gestione degli utenti. Per informazioni sull'applicazione dei tag a un progetto utilizzando la console o AWS CLI, consulta[Crea un progetto di compilazione in AWS CodeBuild](create-project.md). Per informazioni sull'applicazione dei tag tramite l' CodeBuild SDK, consulta [ CreateProject ](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_RequestSyntax) e [ Tag ](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) nell'*CodeBuildAPI Reference*. Per informazioni sull'uso dei tag per controllare l'accesso alle AWS risorse, consulta [ Controlling Access to AWS Resources Using Resource Tags ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) nella * IAM User Guide*.

**Importante**  
Quando si utilizza la funzionalità di capacità riservata, i dati memorizzati nella cache delle istanze della flotta, inclusi i file sorgente, i livelli Docker e le directory memorizzate nella cache specificati in buildspec, possono essere accessibili ad altri progetti all'interno dello stesso account. Questa funzionalità è stata progettata e consente ai progetti all'interno dello stesso account di condividere flotte di istanze.

**Example Esempio 1: Limita le azioni CodeBuild del progetto in base ai tag delle risorse**  
 L'esempio seguente nega tutte le operazioni `BatchGetProjects` sui progetti contenenti tag con la chiave `Environment` e il valore della chiave `Production`. L'amministratore di un utente deve allegare questa politica IAM in aggiunta alla politica degli utenti gestiti agli utenti non autorizzati. La chiave della condizione `aws:ResourceTag` viene utilizzata per controllare l'accesso alle risorse in base ai tag.     
****  

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

**Example Esempio 2: Limita le azioni CodeBuild del progetto in base ai tag di richiesta**  
La policy seguente nega agli utenti l'autorizzazione all'operazione `CreateProject` se la richiesta contiene un tag con la chiave `Environment` e il valore della chiave `Production`. Inoltre, la policy impedisce a questi utenti non autorizzati di modificare i progetti utilizzando la chiave di condizione `aws:TagKeys` per non consentire `UpdateProject` se la richiesta contiene un tag con la chiave `Environment`. Un amministratore deve allegare questa politica IAM in aggiunta alla politica degli utenti gestiti agli utenti che non sono autorizzati a eseguire queste azioni. La chiave di `aws:RequestTag` condizione viene utilizzata per controllare quali tag possono essere passati in una richiesta 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 Esempio 3: negare o consentire azioni sui gruppi di report in base ai tag delle risorse**  
È possibile creare una policy che consenta o neghi le azioni sulle CodeBuild risorse (progetti e gruppi di report) in base ai AWS tag associati a tali risorse e quindi applicare tali politiche ai gruppi IAM configurati per la gestione degli utenti. Ad esempio, puoi creare una policy che neghi tutte le CodeBuild azioni su qualsiasi gruppo di report con la chiave del AWS tag `Status` e il valore della chiave di`Secret`, e quindi applicare tale policy al gruppo IAM che hai creato per gli sviluppatori generici (){{Developers}}. Devi quindi assicurarti che gli sviluppatori che lavorano su quei gruppi di report taggati non siano membri di quel {{Developers}} gruppo generale, ma appartengano invece a un gruppo IAM diverso a cui non è applicata la politica restrittiva ()`SecretDevelopers`.  
L'esempio seguente nega tutte le CodeBuild azioni sui gruppi di report contrassegnati con la chiave `Status` e il valore chiave di: `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 Esempio 4: Limita CodeBuild le azioni in AWSCodeBuildDeveloperAccess base ai tag delle risorse**  
È possibile creare politiche che consentano CodeBuild azioni su tutti i gruppi di report e i progetti che non sono contrassegnati con tag specifici. Ad esempio, la policy seguente consente l'equivalente delle autorizzazioni [AWSCodeBuildDeveloperAccess](auth-and-access-control-iam-identity-based-access-control.md#developer-access-policy) per tutti i gruppi di report e progetti tranne quelli contrassegnati con i tag specificati:    
****  

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