

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

# Gestione delle identità e degli accessi in AWS CodeBuild
<a name="auth-and-access-control"></a>

L'accesso a AWS CodeBuild richiede credenziali. Tali credenziali devono disporre delle autorizzazioni per accedere alle AWS risorse, come l'archiviazione e il recupero degli artefatti di build nei bucket S3 e la visualizzazione di Amazon Logs per le build. CloudWatch Le seguenti sezioni descrivono come utilizzare [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)(IAM) e come contribuire a proteggere l'accesso alle risorse: CodeBuild 

# Panoramica della gestione delle autorizzazioni di accesso alle risorse AWS CodeBuild
<a name="auth-and-access-control-iam-access-control-identity-based"></a>

Ogni AWS risorsa è di proprietà di un AWS account e le autorizzazioni per creare o accedere a una risorsa sono regolate dalle politiche di autorizzazione. Un amministratore dell'account è in grado di collegare le policy relative alle autorizzazioni alle identità IAM (ovvero utenti, gruppi e ruoli). 

**Nota**  
Un amministratore account (o un utente amministratore) è un utente con privilegi di amministratore. Per ulteriori informazioni, consulta [Best practice IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

Quando concedi le autorizzazioni, devi specificare gli utenti che le riceveranno, le risorse a cui potranno accedere e le operazioni consentite su tali risorse.

**Topics**
+ [AWS CodeBuild risorse e operazioni](#arn-formats)
+ [Informazioni sulla proprietà delle risorse](#understanding-resource-ownership)
+ [Gestione dell'accesso alle risorse](#managing-access-resources)
+ [Specifica degli elementi delle policy: operazioni, effetti e principali](#actions-effects-principals)

## AWS CodeBuild risorse e operazioni
<a name="arn-formats"></a>

Nel AWS CodeBuild, la risorsa principale è un progetto di compilazione. In una policy, devi utilizzare un Amazon Resource Name (ARN) per identificare la risorsa a cui si applica la policy. Le build sono anche risorse e sono ARNs associate ad esse. Per ulteriori informazioni, consulta [Amazon Resource Names (ARN) e AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) nel. *Riferimenti generali di Amazon Web Services*


| Tipo di risorsa | Formato ARN | 
| --- | --- | 
| Progetto di compilazione |  `arn:aws:codebuild:region-ID:account-ID:project/project-name`  | 
| Creazione |  `arn:aws:codebuild:region-ID:account-ID:build/build-ID`  | 
| Gruppo di report | arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name | 
| Report | arn:aws:codebuild:region-ID:account-ID:report/report-ID | 
| Parco istanze |  `arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID`  | 
|  Tutte le risorse CodeBuild   |  `arn:aws:codebuild:*`  | 
|  Tutte CodeBuild le risorse di proprietà dell'account specificato nella AWS regione specificata  |  `arn:aws:codebuild:region-ID:account-ID:*`  | 

**Importante**  
Quando si utilizza la funzionalità di capacità riservata, i dati memorizzati nella cache delle istanze del parco istanze, inclusi i file di origine, i layer Docker e le directory memorizzate nella cache specificate nella buildspec, possono essere accessibili ad altri progetti all'interno dello stesso account. Questa funzionalità è preimpostata e consente ai progetti all'interno dello stesso account di condividere le istanze del parco istanze.

**Nota**  
La maggior parte dei AWS servizi considera i due punti (:) o una barra (/) come lo stesso carattere in. ARNs Tuttavia, CodeBuild utilizza una corrispondenza esatta nei modelli e nelle regole delle risorse. Assicurati di utilizzare i caratteri ARN corretti durante la creazione di modelli di eventi, facendo in modo che corrispondano alla sintassi ARN nella risorsa.

Ad esempio, puoi indicare uno specifico progetto di build (*myBuildProject*) nella tua dichiarazione utilizzando il relativo ARN come segue:

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

Per specificare tutte le risorse, o se un'azione API non supporta ARNs, utilizzate il carattere jolly (\$1) nell'`Resource`elemento come segue:

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

Alcune azioni CodeBuild API accettano più risorse (ad esempio,`BatchGetProjects`). Per specificare più risorse in una singola istruzione, separale ARNs con virgole, come segue:

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

CodeBuild fornisce una serie di operazioni per utilizzare le CodeBuild risorse. Per un elenco, consulta [AWS CodeBuild riferimento alle autorizzazioni](auth-and-access-control-permissions-reference.md).

## Informazioni sulla proprietà delle risorse
<a name="understanding-resource-ownership"></a>

L' AWS account possiede le risorse create nell'account, indipendentemente da chi ha creato le risorse. In particolare, il proprietario della risorsa è l' AWS account dell'[entità principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) (ovvero l'account root, un utente o un ruolo IAM) che autentica la richiesta di creazione delle risorse. Negli esempi seguenti viene illustrato il funzionamento:
+ Se utilizzi le credenziali dell'account root del tuo AWS account per creare una regola, quest'ultimo AWS è il proprietario della risorsa. CodeBuild 
+ Se crei un utente nel tuo AWS account e concedi le autorizzazioni per creare CodeBuild risorse a quell'utente, l'utente può creare CodeBuild risorse. Tuttavia, il tuo AWS account, a cui appartiene l'utente, possiede le CodeBuild risorse.
+ Se crei un ruolo IAM nel tuo AWS account con le autorizzazioni per creare CodeBuild risorse, chiunque possa assumere il ruolo può creare CodeBuild risorse. Il tuo AWS account, a cui appartiene il ruolo, possiede le CodeBuild risorse.

## Gestione dell'accesso alle risorse
<a name="managing-access-resources"></a>

La policy delle autorizzazioni descrive chi ha accesso a quali risorse. 

**Nota**  
In questa sezione si esamina l'utilizzo di IAM in AWS CodeBuild. Non vengono fornite informazioni dettagliate sul servizio IAM. Per la documentazione di IAM completa, consulta [Che cos'è IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) nella *Guida per l'utente di IAM*. Per informazioni sulla sintassi delle policy IAM e le rispettive descrizioni, consulta [Riferimento alle policy IAM di AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) nella *Guida per l'utente di IAM*.

Le policy collegate a un'identità IAM vengono definite policy basate su identità (policy IAM). Le politiche associate a una risorsa vengono chiamate politiche basate sulle risorse. CodeBuild supporta politiche basate sull'identità e politiche basate sulle risorse, in alcuni casi di sola lettura, ai fini della condivisione delle risorse tra account. APIs 

### Accesso sicuro ai bucket S3
<a name="secure-s3-buckets"></a>

Ti consigliamo vivamente di includere le seguenti autorizzazioni nel tuo ruolo IAM per verificare che il bucket S3 associato al tuo progetto sia di tua proprietà o di qualcuno di cui ti CodeBuild fidi. Queste autorizzazioni non sono incluse nelle politiche e nei ruoli AWS gestiti. Devi aggiungerle da solo. 
+  `s3:GetBucketAcl` 
+  `s3:GetBucketLocation` 

Se il proprietario di un bucket S3 utilizzato dal tuo progetto cambia, devi verificare di essere ancora proprietario del bucket e, in caso contrario, aggiornare le autorizzazioni nel tuo ruolo IAM. Per ulteriori informazioni, consultare [Consenti agli utenti di interagire con CodeBuild](setting-up-service-permissions-group.md) e [Consenti CodeBuild di interagire con altri servizi AWS](setting-up-service-role.md). 

## Specifica degli elementi delle policy: operazioni, effetti e principali
<a name="actions-effects-principals"></a>

Per ogni AWS CodeBuild risorsa, il servizio definisce un set di operazioni API. Per concedere le autorizzazioni per queste operazioni API, CodeBuild definisce una serie di azioni che è possibile specificare in una politica. Alcune operazioni API possono richiedere le autorizzazioni per più di un'azione al fine di eseguire l'operazione API. Per ulteriori informazioni, consultare [AWS CodeBuild risorse e operazioni](#arn-formats) e [AWS CodeBuild riferimento alle autorizzazioni](auth-and-access-control-permissions-reference.md).

Di seguito sono elencati gli elementi di base di una policy:
+ **Risorsa** - Usa un Amazon Resource Name (ARN) per identificare la risorsa a cui si applica la policy.
+ **Azione**: si utilizzano parole chiave di azione per identificare le operazioni sulle risorse che si desidera consentire o negare. Ad esempio, l'autorizzazione `codebuild:CreateProject` fornisce all'utente le autorizzazioni per eseguire l'operazione `CreateProject`.
+ **Effetto**: si specifica l'effetto, che può essere consentito o negato, quando l'utente richiede l'azione. USe non concedi esplicitamente (consenti) l'accesso a una risorsa, l'accesso viene implicitamente rifiutato. È anche possibile negare esplicitamente l'accesso a una risorsa. È possibile eseguire questa operazione per assicurarsi che un utente non possa accedere alla risorsa, anche se l'accesso viene concesso da un'altra policy.
+ **Principio**: nelle politiche basate sull'identità (politiche IAM), l'utente a cui è associata la policy è il principale implicito. Per le policy basate sulle risorse, devi specificare utente, account, servizio o altre entità che desideri ricevano le autorizzazioni.

Per ulteriori informazioni sulla sintassi e le descrizioni delle policy IAM, consulta [AWS Riferimento alle policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) nella *Guida per l'utente di IAM*.

Per una tabella che mostra tutte le azioni CodeBuild API e le risorse a cui si applicano, consulta la. [AWS CodeBuild riferimento alle autorizzazioni](auth-and-access-control-permissions-reference.md)

# Utilizzo di politiche basate sull'identità per AWS CodeBuild
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

Questo argomento fornisce esempi di policy basate su identità che illustrano come un amministratore account può associare policy di autorizzazione a identità IAM (ovvero utenti, gruppi e ruoli) e quindi concedere autorizzazioni per eseguire operazioni su risorse di AWS CodeBuild .

**Importante**  
Ti consigliamo di esaminare innanzitutto gli argomenti introduttivi che spiegano i concetti e le opzioni di base disponibili per gestire l'accesso alle tue risorse. CodeBuild Per ulteriori informazioni, consulta [Panoramica della gestione delle autorizzazioni di accesso alle risorse AWS CodeBuild](auth-and-access-control-iam-access-control-identity-based.md).

**Topics**
+ [Autorizzazioni necessarie per utilizzare la console AWS CodeBuild](#console-permissions)
+ [Autorizzazioni necessarie per connettersi AWS CodeBuild ad Amazon Elastic Container Registry](#ecr-policies)
+ [Autorizzazioni necessarie per consentire alla AWS CodeBuild console di connettersi ai provider di origine](#console-policies)
+ [AWS politiche gestite (predefinite) per AWS CodeBuild](#managed-policies)
+ [CodeBuild politiche e notifiche gestite](#notifications-permissions)
+ [CodeBuild aggiornamenti alle politiche AWS gestite](#security-iam-awsmanpol-updates)
+ [Esempi di policy gestite dal cliente](#customer-managed-policies)

Segue un esempio di una policy di autorizzazioni che permette all'utente di ottenere informazioni sui progetti di compilazione solo nella regione `us-east-2` per l'account `123456789012` per qualsiasi progetto di compilazione che inizia con il nome `my`:

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

****  

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

------

## Autorizzazioni necessarie per utilizzare la console AWS CodeBuild
<a name="console-permissions"></a>

Un utente che utilizza la AWS CodeBuild console deve disporre di un set minimo di autorizzazioni che gli consenta di descrivere altre AWS risorse per l' AWS account. Deve possedere le autorizzazioni dai seguenti servizi:
+ AWS CodeBuild
+ Amazon CloudWatch
+ CodeCommit (se stai archiviando il codice sorgente in un AWS CodeCommit repository)
+ Amazon Elastic Container Registry (Amazon ECR) (se utilizzi un ambiente di compilazione basato su un'immagine Docker in un repository Amazon ECR)
**Nota**  
A partire dal 26 luglio 2022, la policy IAM predefinita è stata aggiornata. Per ulteriori informazioni, consulta [Autorizzazioni necessarie per connettersi AWS CodeBuild ad Amazon Elastic Container Registry](#ecr-policies).
+ Amazon Elastic Container Service (Amazon ECS) (se utilizzi un ambiente di compilazione basato su un'immagine Docker in un repository Amazon ECR)
+ AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Storage Service (Amazon S3)

Se crei una policy IAM più restrittiva delle autorizzazioni minime richieste, la console non funzionerà come previsto.

## Autorizzazioni necessarie per connettersi AWS CodeBuild ad Amazon Elastic Container Registry
<a name="ecr-policies"></a>

Al 26 luglio 2022, AWS CodeBuild ha aggiornato la sua politica IAM predefinita per l'autorizzazione Amazon ECR. Le seguenti autorizzazioni sono state rimosse dalla politica predefinita:

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

Per CodeBuild i progetti creati prima del 26 luglio 2022, ti consigliamo di aggiornare la tua politica con la seguente politica di Amazon ECR:

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

Per ulteriori informazioni sull'aggiornamento della polizza, consulta[Consenti agli utenti di interagire con CodeBuild](setting-up-service-permissions-group.md).

## Autorizzazioni necessarie per consentire alla AWS CodeBuild console di connettersi ai provider di origine
<a name="console-policies"></a>

La AWS CodeBuild console utilizza le seguenti azioni API per connettersi ai provider di origine (ad esempio, gli GitHub archivi).
+ `codebuild:ListConnectedOAuthAccounts`
+ `codebuild:ListRepositories`
+ `codebuild:PersistOAuthToken`
+ `codebuild:ImportSourceCredentials`

Puoi associare i fornitori di sorgenti (come i GitHub repository) ai tuoi progetti di build utilizzando la AWS CodeBuild console. Per fare ciò, devi prima aggiungere le azioni API precedenti alle policy di accesso IAM associate all'utente che utilizzi per accedere alla AWS CodeBuild console.

Le operazioni API `ListConnectedOAuthAccounts`, `ListRepositories` e `PersistOAuthToken` non devono essere chiamate dal codice. Pertanto, queste azioni API non sono incluse in AWS CLI and AWS SDKs.

## AWS politiche gestite (predefinite) per AWS CodeBuild
<a name="managed-policies"></a>

AWS affronta molti casi d'uso comuni fornendo policy IAM autonome create e amministrate da. AWS Queste policy AWS gestite concedono le autorizzazioni necessarie per i casi d'uso comuni, in modo da evitare di dover esaminare quali autorizzazioni sono necessarie. Le policy gestite forniscono CodeBuild anche le autorizzazioni per eseguire operazioni in altri servizi, come IAM, Amazon EC2 AWS CodeCommit, Amazon ECR, Amazon SNS e CloudWatch Amazon Events, come richiesto per le responsabilità degli utenti a cui è stata concessa la politica in questione. Ad esempio, la `AWSCodeBuildAdminAccess` policy è una policy utente di livello amministrativo che consente agli utenti con questa policy di creare e gestire le regole CloudWatch Events per le build di progetti e gli argomenti di Amazon SNS per le notifiche sugli eventi relativi al progetto (argomenti i cui nomi hanno il prefisso`arn:aws:codebuild:`), nonché di amministrare progetti e gruppi di report in. CodeBuild Per ulteriori informazioni, consulta [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) nella *Guida per l'utente di IAM*.

Le seguenti politiche AWS gestite, che puoi allegare agli utenti del tuo account, sono specifiche per. AWS CodeBuild

**AWSCodeBuildAdminAccess**  
Fornisce l'accesso completo all' CodeBuild inclusione delle autorizzazioni per amministrare i progetti di CodeBuild compilazione. 

**AWSCodeBuildDeveloperAccess**  
Fornisce l'accesso CodeBuild ma non consente l'amministrazione dei progetti di compilazione.

**AWSCodeBuildReadOnlyAccess**  
Fornisce accesso in sola lettura a. CodeBuild

Per accedere agli artefatti di output della build CodeBuild creati, è inoltre necessario allegare la policy gestita denominata AWS . `AmazonS3ReadOnlyAccess`

Per creare e gestire i ruoli CodeBuild di servizio, è inoltre necessario allegare la policy AWS gestita denominata. `IAMFullAccess`

È inoltre possibile creare policy IAM personalizzate per concedere le autorizzazioni per operazioni e risorse CodeBuild. Puoi collegare queste policy personalizzate agli utenti o ai gruppi che richiedono le autorizzazioni.

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

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

La `AWSCodeBuildAdminAccess` policy fornisce l'accesso completo CodeBuild, incluse le autorizzazioni per amministrare i progetti di CodeBuild compilazione. Applica questa politica solo agli utenti di livello amministrativo per concedere loro il pieno controllo su CodeBuild progetti, gruppi di report e risorse correlate presenti nel tuo AWS account, inclusa la possibilità di eliminare progetti e gruppi di report.

Per la policy gestita completa, consulta [ AWSCodeBuildAdminAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildAdminAccess.html)il riferimento alla policy gestita di IAM.

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

La `AWSCodeBuildDeveloperAccess` policy consente l'accesso a tutte le funzionalità delle risorse relative a progetti CodeBuild e gruppi di report. Questa politica non consente agli utenti di eliminare CodeBuild progetti o gruppi di report o risorse correlate in altri AWS servizi, come CloudWatch Eventi. È consigliabile applicare questa policy alla maggior parte degli utenti.

Per la policy gestita completa, consulta [ AWSCodeBuildDeveloperAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildDeveloperAccess.html)il riferimento alla policy gestita di IAM.

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

La `AWSCodeBuildReadOnlyAccess` policy garantisce l'accesso in sola lettura CodeBuild e alle relative risorse in altri servizi. AWS Applicare questo criterio agli utenti che possono visualizzare ed eseguire build, visualizzare progetti e visualizzare gruppi di report, ma non possono apportare modifiche. 

Per la policy gestita completa, consulta [ AWSCodeBuildReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildReadOnlyAccess.xml)il riferimento alla policy gestita di IAM.

## CodeBuild politiche e notifiche gestite
<a name="notifications-permissions"></a>

CodeBuild supporta le notifiche, che possono notificare agli utenti modifiche importanti relative alla creazione di progetti. Le politiche gestite CodeBuild includono dichiarazioni politiche per la funzionalità di notifica. Per ulteriori informazioni, vedere [Cosa sono le notifiche?](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html).

### Autorizzazioni correlate alle notifiche nelle policy gestite di sola lettura
<a name="notifications-readonly"></a>

Le policy gestite `AWSCodeBuildReadOnlyAccess` includono le seguenti dichiarazioni per consentire l'accesso in sola lettura alle notifiche. Gli utenti con questa policy gestita applicata possono visualizzare le notifiche per le risorse, ma non possono crearle, gestirle o sottoscriverle. 

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

### Autorizzazioni correlate alle notifiche in altre policy gestite
<a name="notifications-otheraccess"></a>

La policy gestita `AWSCodeBuildDeveloperAccess` include le seguenti istruzioni per consentire agli utenti di creare, modificare e sottoscrivere le notifiche. Gli utenti non possono eliminare le regole di notifica o gestire i tag per le risorse.

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

Per ulteriori informazioni su IAM e le notifiche, consulta [Identity and Access ManagementAWS CodeStarNotifications](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

## CodeBuild aggiornamenti alle politiche AWS gestite
<a name="security-iam-awsmanpol-updates"></a>

Visualizza i dettagli sugli aggiornamenti delle politiche AWS gestite CodeBuild da quando questo servizio ha iniziato a tenere traccia di queste modifiche. Per ricevere avvisi automatici sulle modifiche a questa pagina, iscriviti al feed RSS su. [AWS CodeBuild Cronologia dei documenti della Guida dell'utente](history.md)




| Modifica | Descrizione | Data | 
| --- | --- | --- | 
|  `AWSCodeBuildAdminAccess`e `AWSCodeBuildDeveloperAccess` — Aggiornamento alle politiche esistenti  |  CodeBuild ha aggiunto l'`ssmmessages:OpenDataChannel`autorizzazione a queste politiche per supportare il debug interattivo delle build di Session Manager. Le `AWSCodeBuildDeveloperAccess` politiche `AWSCodeBuildAdminAccess` and ora includono l'`ssmmessages:OpenDataChannel`azione per le risorse di sessione di Session Manager (`arn:aws:ssm:*:*:session/*`) per supportare l'applicazione di SigV4 su questa API. WebSocket   | 1 dicembre 2025 | 
|  `AWSCodeBuildAdminAccess``AWSCodeBuildDeveloperAccess`, e `AWSCodeBuildReadOnlyAccess` — Aggiornamento alle politiche esistenti  |  CodeBuild ha aggiornato una risorsa su queste politiche. Le `AWSCodeBuildReadOnlyAccess` politiche `AWSCodeBuildAdminAccess``AWSCodeBuildDeveloperAccess`, e sono state modificate per aggiornare una risorsa esistente. La risorsa originale `arn:aws:codebuild:*` è stata aggiornata a`arn:aws:codebuild:*:*:project/*`.  | 15 novembre 2024 | 
|  `AWSCodeBuildAdminAccess`,`AWSCodeBuildDeveloperAccess`, e `AWSCodeBuildReadOnlyAccess` — Aggiornamento alle politiche esistenti  |  CodeBuild ha aggiunto una risorsa a queste politiche per supportare il AWS CodeConnections rebranding. Le `AWSCodeBuildReadOnlyAccess` politiche `AWSCodeBuildAdminAccess``AWSCodeBuildDeveloperAccess`, e sono state modificate per aggiungere una risorsa,. `arn:aws:codeconnections:*:*:*`  | 18 aprile 2024 | 
|  `AWSCodeBuildAdminAccess`e `AWSCodeBuildDeveloperAccess` — Aggiornamento alle politiche esistenti  |  CodeBuild ha aggiunto un'autorizzazione a queste politiche per supportare un tipo di notifica aggiuntivo utilizzando Amazon Q Developer nelle applicazioni di chat. Le `AWSCodeBuildDeveloperAccess` politiche `AWSCodeBuildAdminAccess` e sono state modificate per aggiungere un'autorizzazione,`chatbot:ListMicrosoftTeamsChannelConfigurations`.  | 16 maggio 2023 | 
|  CodeBuild ha iniziato a tenere traccia delle modifiche  |  CodeBuild ha iniziato a tenere traccia delle modifiche per le sue politiche AWS gestite.  | 16 maggio 2021 | 

## Esempi di policy gestite dal cliente
<a name="customer-managed-policies"></a>

Questa sezione include policy utente di esempio che concedono autorizzazioni per operazioni AWS CodeBuild . Queste politiche funzionano quando si utilizza l' CodeBuild API AWS SDKs, o. AWS CLI Quando si utilizza la console, devi concedere autorizzazioni specifiche aggiuntive alla console. Per informazioni, consulta [Autorizzazioni necessarie per utilizzare la console AWS CodeBuild](#console-permissions).

Puoi utilizzare i seguenti esempi di policy IAM per limitare CodeBuild l'accesso a utenti e ruoli.

**Topics**
+ [Concessione a un utente di ottenere informazioni sui progetti di compilazione](#customer-managed-policies-example-batch-get-projects)
+ [Consenti a un utente di ottenere informazioni sulle flotte](#customer-managed-policies-get-information-about-fleets)
+ [Concessione a un utente di ottenere informazioni sui gruppi di report](#customer-managed-policies-get-information-about-report-group)
+ [Concessione a un utente di ottenere informazioni sui report](#customer-managed-policies-get-information-about-reports)
+ [Concessione a un utente di creare progetti di compilazione](#customer-managed-policies-example-create-project)
+ [Consenti a un utente di creare una flotta](#customer-managed-policies-example-create-fleet)
+ [Concessione a un utente di creare un gruppo di report](#customer-managed-policies-example-create-report-group)
+ [Consenti a un utente di eliminare una flotta](#customer-managed-policies-example-delete-fleet)
+ [Concessione a un utente di eliminare un gruppo di report](#customer-managed-policies-example-delete-report-group)
+ [Concessione a un utente di eliminare un report](#customer-managed-policies-example-delete-report)
+ [Concessione a un utente di eliminare progetti di compilazione](#customer-managed-policies-example-delete-project)
+ [Concessione a un utente di ottenere un elenco di nomi di progetti di compilazione](#customer-managed-policies-example-list-projects)
+ [Concessione a un utente di modificare informazioni sui progetti di compilazione](#customer-managed-policies-example-update-project)
+ [Consenti a un utente di modificare una flotta](#customer-managed-policies-example-change-fleet)
+ [Concessione a un utente di modificare un gruppo di report](#customer-managed-policies-example-change-report-group)
+ [Concessione a un utente di ottenere informazioni sulle compilazioni](#customer-managed-policies-example-batch-get-builds)
+ [Consenti a un utente di ottenere un elenco di build IDs per un progetto di compilazione](#customer-managed-policies-example-list-builds-for-project)
+ [Consenti a un utente di ottenere un elenco di build IDs](#customer-managed-policies-example-list-builds)
+ [Consenti a un utente di ottenere un elenco di flotte](#customer-managed-policies-example-get-list-of-fleets)
+ [Concessione a un utente di ottenere un elenco dei gruppi di report](#customer-managed-policies-example-get-list-of-report-groups)
+ [Concessione a un utente di ottenere un elenco dei report](#customer-managed-policies-example-get-list-of-reports)
+ [Concessione a un utente di ottenere un elenco dei report riferiti a un gruppo di report](#customer-managed-policies-example-get-list-of-reports-for-report-group)
+ [Concessione a un utente di ottenere un elenco dei casi di test riferiti a un report](#customer-managed-policies-example-get-list-of-test-cases-for-report)
+ [Concessione a un utente di avviare l'esecuzione di compilazioni](#customer-managed-policies-example-start-build)
+ [Concessione a un utente di tentare di interrompere le compilazioni](#customer-managed-policies-example-stop-build)
+ [Concessione a un utente di tentare di eliminare le compilazioni](#customer-managed-policies-example-delete-builds)
+ [Consenti a un utente di ottenere informazioni sulle immagini Docker gestite da CodeBuild](#customer-managed-policies-example-list-curated-environment-images)
+ [Consenti a un utente di aggiungere una politica di autorizzazione per un ruolo di fleet service](#customer-managed-policies-example-permission-policy-fleet-service-role)
+ [Consenti CodeBuild l'accesso ai AWS servizi necessari per creare un'interfaccia di rete VPC](#customer-managed-policies-example-create-vpc-network-interface)
+ [Utilizzate un'istruzione di negazione per impedire la disconnessione dai provider di origine AWS CodeBuild](#customer-managed-policies-example-deny-disconnect)

### Concessione a un utente di ottenere informazioni sui progetti di compilazione
<a name="customer-managed-policies-example-batch-get-projects"></a>

La seguente istruzione di policy di esempio permette all'utente di ottenere informazioni sui progetti di compilazione, nella regione `us-east-2` per l'account `123456789012`, che iniziano con il nome `my`:

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

****  

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

------

### Consenti a un utente di ottenere informazioni sulle flotte
<a name="customer-managed-policies-get-information-about-fleets"></a>

Il seguente esempio di dichiarazione politica consente a un utente di ottenere informazioni sulle flotte nella `us-east-2` regione per conto: `123456789012`

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

****  

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

------

### Concessione a un utente di ottenere informazioni sui gruppi di report
<a name="customer-managed-policies-get-information-about-report-group"></a>

La seguente istruzione di policy esemplificativa permette all'utente di ottenere informazioni sui gruppi di report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di ottenere informazioni sui report
<a name="customer-managed-policies-get-information-about-reports"></a>

La seguente istruzione di policy esemplificativa permette all'utente di ottenere informazioni sui report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di creare progetti di compilazione
<a name="customer-managed-policies-example-create-project"></a>

La seguente dichiarazione politica di esempio consente a un utente di creare progetti di compilazione con qualsiasi nome, ma solo nella `us-east-2` regione per account `123456789012` e utilizzando solo il ruolo di CodeBuild servizio specificato:

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

------

La seguente dichiarazione politica di esempio consente a un utente di creare progetti di compilazione con qualsiasi nome, ma solo nella `us-east-2` regione per account `123456789012` e solo utilizzando il ruolo di CodeBuild servizio specificato. Implica inoltre che l'utente possa utilizzare il ruolo di servizio specificato solo con AWS CodeBuild e non altri AWS servizi.

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

------

### Consenti a un utente di creare una flotta
<a name="customer-managed-policies-example-create-fleet"></a>

Il seguente esempio di dichiarazione politica consente a un utente di creare una flotta nella `us-east-2` regione per l'account`123456789012`:

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

****  

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

------

### Concessione a un utente di creare un gruppo di report
<a name="customer-managed-policies-example-create-report-group"></a>

La seguente istruzione di policy di esempio permette all'utente di creare un gruppo di report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Consenti a un utente di eliminare una flotta
<a name="customer-managed-policies-example-delete-fleet"></a>

Il seguente esempio di dichiarazione politica consente a un utente di eliminare una flotta nella `us-east-2` regione per account`123456789012`:

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

****  

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

------

### Concessione a un utente di eliminare un gruppo di report
<a name="customer-managed-policies-example-delete-report-group"></a>

La seguente istruzione di policy esemplificativa permette all'utente di eliminare un gruppo di report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di eliminare un report
<a name="customer-managed-policies-example-delete-report"></a>

La seguente istruzione di policy esemplificativa permette all'utente di eliminare un report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di eliminare progetti di compilazione
<a name="customer-managed-policies-example-delete-project"></a>

La seguente istruzione di policy esemplificativa permette all'utente di eliminare i progetti di compilazione nella regione `us-east-2` per l'account `123456789012` che iniziano con il nome `my`:

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

****  

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

------

### Concessione a un utente di ottenere un elenco di nomi di progetti di compilazione
<a name="customer-managed-policies-example-list-projects"></a>

La seguente istruzione di policy di esempio permette all'utente di ottenere un elenco dei nomi di progetti di compilazione per lo stesso account.

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

****  

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

------

### Concessione a un utente di modificare informazioni sui progetti di compilazione
<a name="customer-managed-policies-example-update-project"></a>

La seguente istruzione di policy esemplificativa permette all'utente di modificare informazioni sui progetti di compilazione con qualsiasi nome solo nella regione `us-east-2` per l'account `123456789012` e di utilizzare unicamente il ruolo del servizio AWS CodeBuild specificato:

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

------

### Consenti a un utente di modificare una flotta
<a name="customer-managed-policies-example-change-fleet"></a>

Il seguente esempio di dichiarazione politica consente a un utente di modificare una flotta nella `us-east-2` regione per account`123456789012`:

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

****  

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

------

### Concessione a un utente di modificare un gruppo di report
<a name="customer-managed-policies-example-change-report-group"></a>

La seguente istruzione di policy esemplificativa permette all'utente di modificare un gruppo di report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di ottenere informazioni sulle compilazioni
<a name="customer-managed-policies-example-batch-get-builds"></a>

La seguente istruzione di policy esemplificativa permette all'utente di ottenere informazioni sulla compilazione nella regione `us-east-2` per l'account `123456789012`, per i progetti di compilazione denominati `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"
      ]
    }
  ]
}
```

------

### Consenti a un utente di ottenere un elenco di build IDs per un progetto di compilazione
<a name="customer-managed-policies-example-list-builds-for-project"></a>

La seguente dichiarazione politica di esempio consente a un utente di ottenere un elenco di build IDs nella `us-east-2` regione per gli account `123456789012` dei progetti di compilazione denominati `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"
      ]
    }
  ]
}
```

------

### Consenti a un utente di ottenere un elenco di build IDs
<a name="customer-managed-policies-example-list-builds"></a>

Il seguente esempio di dichiarazione politica consente a un utente di ottenere un elenco di tutte le build IDs per lo stesso account:

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

****  

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

------

### Consenti a un utente di ottenere un elenco di flotte
<a name="customer-managed-policies-example-get-list-of-fleets"></a>

La seguente dichiarazione politica di esempio consente a un utente di ottenere un elenco di flotte nella `us-east-2` regione per conto: `123456789012`

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

****  

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

------

### Concessione a un utente di ottenere un elenco dei gruppi di report
<a name="customer-managed-policies-example-get-list-of-report-groups"></a>

La seguente istruzione di policy esemplificativa permette all'utente di ottenere un elenco dei gruppi di report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di ottenere un elenco dei report
<a name="customer-managed-policies-example-get-list-of-reports"></a>

La seguente istruzione di policy esemplificativa permette all'utente di ottenere un elenco dei report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di ottenere un elenco dei report riferiti a un gruppo di report
<a name="customer-managed-policies-example-get-list-of-reports-for-report-group"></a>

La seguente istruzione di policy esemplificativa permette all'utente di ottenere un elenco dei report riferiti a un gruppo di report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di ottenere un elenco dei casi di test riferiti a un report
<a name="customer-managed-policies-example-get-list-of-test-cases-for-report"></a>

La seguente istruzione di policy esemplificativa permette all'utente di ottenere un elenco dei casi di test riferiti a un report nella regione `us-east-2` per l'account `123456789012`:

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

****  

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

------

### Concessione a un utente di avviare l'esecuzione di compilazioni
<a name="customer-managed-policies-example-start-build"></a>

La seguente istruzione di policy esemplificativa permette all'utente di eseguire compilazioni nella regione `us-east-2` per l'account `123456789012`, per qualsiasi progetto di compilazione che inizia con il nome `my`:

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

****  

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

------

### Concessione a un utente di tentare di interrompere le compilazioni
<a name="customer-managed-policies-example-stop-build"></a>

La seguente istruzione di policy di esempio permette a un utente di tentare di interrompere le compilazioni di esecuzione solo nella regione `us-east-2` per l'account `123456789012` per qualsiasi progetto di compilazione che inizia con il nome `my`:

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

****  

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

------

### Concessione a un utente di tentare di eliminare le compilazioni
<a name="customer-managed-policies-example-delete-builds"></a>

La seguente istruzione di policy di esempio permette all'utente di tentare di eliminare le compilazioni solo nella regione `us-east-2` per l'account `123456789012` per qualsiasi progetto di compilazione che inizia con il nome `my`:

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

****  

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

------

### Consenti a un utente di ottenere informazioni sulle immagini Docker gestite da CodeBuild
<a name="customer-managed-policies-example-list-curated-environment-images"></a>

Il seguente un esempio di un'istruzione di policy che permette all'utente di ottenere informazioni su tutte le immagini Docker gestite da CodeBuild.

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

****  

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

------

### Consenti a un utente di aggiungere una politica di autorizzazione per un ruolo di fleet service
<a name="customer-managed-policies-example-permission-policy-fleet-service-role"></a>

L'esempio seguente di dichiarazione sulla politica delle risorse consente a un utente di aggiungere una politica di autorizzazione VPC per un ruolo di fleet service:

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

------

Il seguente esempio di dichiarazione sulla politica delle risorse consente a un utente di aggiungere una politica di autorizzazione Amazon Managed Image (AMI) personalizzata per un ruolo di fleet service:

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

****  

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

------

L'esempio seguente di dichiarazione sulla politica di fiducia consente a un utente di aggiungere una politica di autorizzazione per un ruolo di fleet service:

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

****  

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

------

### Consenti CodeBuild l'accesso ai AWS servizi necessari per creare un'interfaccia di rete VPC
<a name="customer-managed-policies-example-create-vpc-network-interface"></a>

La seguente dichiarazione politica di esempio concede AWS CodeBuild l'autorizzazione a creare un'interfaccia di rete in un VPC con due sottoreti:

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

------

### Utilizzate un'istruzione di negazione per impedire la disconnessione dai provider di origine AWS CodeBuild
<a name="customer-managed-policies-example-deny-disconnect"></a>

 Il seguente esempio di istruzione della policy utilizza un'istruzione di rifiuto per impedire a AWS CodeBuild di disconnettersi dai provider di origine. Utilizza `codebuild:DeleteOAuthToken`, che è l'inverso di `codebuild:PersistOAuthToken` e `codebuild:ImportSourceCredentials`, per connettersi ai provider di origine. Per ulteriori informazioni, consulta [Autorizzazioni necessarie per consentire alla AWS CodeBuild console di connettersi ai provider di origine](#console-policies). 

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

****  

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

------

# AWS CodeBuild riferimento alle autorizzazioni
<a name="auth-and-access-control-permissions-reference"></a>

Puoi utilizzare i tasti AWS-wide condition nelle tue AWS CodeBuild politiche per esprimere condizioni. Per un elenco, consulta [Available Keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) nella *IAM User Guide*.

Puoi specificare le operazioni nel campo `Action` della policy. Per specificare un'operazione, utilizza il prefisso `codebuild:` seguito dal nome dell'operazione API (ad esempio, `codebuild:CreateProject` and `codebuild:StartBuild`). Per specificare più operazioni in una sola istruzione, separa ciascuna di esse con una virgola (ad esempio, `"Action": [ "codebuild:CreateProject", "codebuild:StartBuild" ]`).

**Utilizzo di caratteri jolly**

Puoi specificare un ARN, con o senza un carattere jolly (\$1), come valore della risorsa nel campo `Resource` della policy. È possibile utilizzare un carattere jolly per specificare più operazioni o risorse. Ad esempio, `codebuild:*` specifica tutte le CodeBuild azioni e `codebuild:Batch*` specifica tutte le CodeBuild azioni che iniziano con la parola. `Batch` L'esempio seguente concede l'accesso completo a tutti i progetti di compilazione con nomi che iniziano con `my`: 

```
arn:aws:codebuild:us-east-2:123456789012:project/my*
```<a name="actions-related-to-objects-table"></a>CodeBuild Operazioni API e autorizzazioni richieste per le azioni

BatchDeleteBuilds  
 **Operazione:** `codebuild:BatchDeleteBuilds`   
Necessario per eliminare compilazioni.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetBuilds  
 **Operazione:** `codebuild:BatchGetBuilds`   
Necessario per ottenere informazioni sulle compilazioni.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetProjects  
 **Operazione:** `codebuild:BatchGetProjects`   
Necessario per ottenere informazioni sui progetti di compilazione.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetReportGroups  
 **Operazione:** `codebuild:BatchGetReportGroups`   
Necessario per ottenere informazioni sui gruppi di report.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchGetReports  
 **Operazione:** `codebuild:BatchGetReports`   
Necessario per ottenere informazioni sui report.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchPutTestCases¹  
 **Operazione:** `codebuild:BatchPutTestCases`   
Necessario per creare o aggiornare un report di test.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateProject  
 **Operazioni:** `codebuild:CreateProject`, `iam:PassRole`   
Necessario per creare i progetti di compilazione.  
 **Risorse:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

CreateReport¹  
 **Operazione:** `codebuild:CreateReport`   
Obbligatorio per creare un report di test.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateReportGroup  
 **Operazione:** `codebuild:CreateReportGroup`   
Necessario per creare un gruppo di report.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateWebhook  
 **Operazione:** `codebuild:CreateWebhook`   
Obbligatoria per creare un webhook.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteProject  
 **Operazione:** `codebuild:DeleteProject`   
Necessario per eliminare un CodeBuild progetto.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteReport  
 **Operazione:** `codebuild:DeleteReport`   
Necessario per eliminare un report.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteReportGroup  
 **Operazione:** `codebuild:DeleteReportGroup`   
Necessario per eliminare un gruppo di report.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteSourceCredentials  
 **Operazione:** `codebuild:DeleteSourceCredentials`   
Necessario per eliminare un set di `SourceCredentialsInfo` oggetti che contengono informazioni sulle credenziali per un GitHub repository GitHub Enterprise Server o Bitbucket.   
 **Risorsa:** `*` 

DeleteWebhook  
 **Operazione:** `codebuild:DeleteWebhook`   
Obbligatoria per creare un webhook.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DescribeTestCases  
 **Operazione:** `codebuild:DescribeTestCases`   
Necessario per la restituzione di un elenco impaginato dei casi di test.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

ImportSourceCredentials  
 **Operazione:** `codebuild:ImportSourceCredentials`   
Necessario per importare un set di `SourceCredentialsInfo` oggetti che contengono informazioni sulle credenziali per un repository GitHub Enterprise Server o GitHub Bitbucket.   
 **Risorsa:** `*` 

InvalidateProjectCache  
 **Operazione:** `codebuild:InvalidateProjectCache`   
Necessario per reimpostare la cache per un progetto.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListBuildBatches  
 **Operazione:** `codebuild:ListBuildBatches`   
Necessario per ottenere un elenco dei batch di build. IDs  
 **Risorsa:** `*` 

ListBuildBatchesForProject  
 **Operazione:** `codebuild:ListBuildBatchesForProject`   
Necessario per ottenere un elenco dei batch di build IDs per un progetto specifico.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name` 

ListBuilds  
 **Operazione:** `codebuild:ListBuilds`   
Necessario per ottenere un elenco delle build IDs.  
 **Risorsa:** `*` 

ListBuildsForProject  
 **Operazione:** `codebuild:ListBuildsForProject`   
Necessario per ottenere un elenco delle build IDs per un progetto di compilazione.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListCuratedEnvironmentImages  
 **Operazione:** `codebuild:ListCuratedEnvironmentImages`   
Necessario per permettere di ottenere informazioni sulle immagini Docker gestite da AWS CodeBuild.   
 **Risorsa:** `*` (necessario, ma non si riferisce a una risorsa AWS indirizzabile) 

ListProjects  
 **Operazione:** `codebuild:ListProjects`   
Necessario per ottenere un elenco di nomi di progetti di compilazione.  
 **Risorsa:** `*` 

ListReportGroups  
 **Operazione:** `codebuild:ListReportGroups`   
Necessario per ottenere un elenco dei gruppi di report.  
 **Risorsa:** `*` 

ListReports  
 **Operazione:** `codebuild:ListReports`   
Necessario per ottenere un elenco di report.  
 **Risorsa:** `*` 

ListReportsForReportGroup  
 **Operazione:** `codebuild:ListReportsForReportGroup`   
Necessario per ottenere un elenco dei report riferiti a un gruppo di report.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

RetryBuild  
**Operazione:** `codebuild:RetryBuild`   
Necessario per riprovare le build.  
**Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name `

StartBuild  
 **Operazione:** `codebuild:StartBuild`   
Necessario per avviare progetti di compilazione.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

StopBuild  
 **Operazione:** `codebuild:StopBuild`   
Necessario per tentare di interrompere le compilazioni in esecuzione.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

UpdateProject  
 **Operazioni:** `codebuild:UpdateProject`, `iam:PassRole`   
Necessario per modificare informazioni sulle compilazioni.  
 **Risorse:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateProjectVisibility  <a name="UpdateProjectVisibility"></a>
 **Operazioni:** `codebuild:UpdateProjectVisibility`, `iam:PassRole`   
Necessario per modificare la visibilità pubblica delle build di un progetto.  
 **Risorse:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateReport¹  
 **Operazione:** `codebuild:UpdateReport`   
Necessario per creare o aggiornare un report di test.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateReportGroup  
 **Operazione:** `codebuild:UpdateReportGroup`   
Necessario per l'aggiornamento di un gruppo di report.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateWebhook  
 **Operazione:** `codebuild:UpdateWebhook`   
Necessario per aggiornare un webhook.  
 **Risorsa:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

¹ Utilizzato solo a scopo di autorizzazione. Non esiste alcuna API per questa azione.

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

Le condizioni nelle dichiarazioni 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 azioni sui progetti in base ai tag associati a tali progetti e quindi applicare tali policy ai gruppi IAM configurati per la gestione degli utenti. Per informazioni sull'applicazione di 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 utilizzando 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'utilizzo 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 layer Docker e le directory memorizzate nella cache specificate nelle specifiche di costruzione, possono essere accessibili ad altri progetti all'interno dello stesso account. Questa funzionalità è preimpostata e consente ai progetti all'interno dello stesso account di condividere le istanze del parco 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 policy IAM oltre alla policy utente gestita 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 policy IAM oltre alla policy utente gestita agli utenti che non sono autorizzati a eseguire queste azioni. La chiave `aws:RequestTag` condition 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**  
Puoi creare una policy che consenta o neghi azioni sulle CodeBuild risorse (progetti e gruppi di report) in base ai AWS tag associati a tali risorse e quindi applicare tali policy 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 AWS tag `Status` e il valore chiave di`Secret`, e quindi applicare tale policy al gruppo IAM che hai creato per sviluppatori generici ()*Developers*. Devi quindi assicurarti che gli sviluppatori che lavorano su quei gruppi di report con tag 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 AWSCode BuildDeveloperAccess base ai tag delle risorse**  
Puoi creare politiche che consentano CodeBuild azioni su tutti i gruppi di report e i progetti che non sono etichettati 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"
            }
         }
      }
   ]
}
```

# Visualizzazione di risorse nella console
<a name="console-resources"></a>

La AWS CodeBuild console richiede l'`ListRepositories`autorizzazione per visualizzare un elenco di repository per il tuo AWS account nella AWS regione in cui hai effettuato l'accesso. La console, inoltre, include a funzione **Go to resource (Vai alla risorsa)** per eseguire rapidamente una ricerca di risorse senza distinzione tra maiuscole e minuscole. Questa ricerca viene eseguita nel tuo AWS account nella AWS regione in cui hai effettuato l'accesso. Le seguenti risorse sono visualizzate per i seguenti servizi:
+ AWS CodeBuild: progetti di compilazione
+ AWS CodeCommit: repository
+ AWS CodeDeploy: applicazioni
+ AWS CodePipeline: pipeline

Per eseguire la ricerca nelle risorse di tutti i servizi, è necessario disporre delle autorizzazioni seguenti:
+ CodeBuild: `ListProjects`
+ CodeCommit: `ListRepositories`
+ CodeDeploy: `ListApplications`
+ CodePipeline: `ListPipelines`

I risultati non vengono restituiti per le risorse di un servizio se non hai le autorizzazioni per quel servizio. Anche se hai le autorizzazioni per la visualizzazione delle risorse, alcune risorse non verranno restituite se c'è un esplicito `Deny` a visualizzare tali risorse.