

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

# Sicurezza in AWS CodeBuild
<a name="security"></a>

La sicurezza del cloud AWS è la massima priorità. In qualità di AWS cliente, puoi beneficiare di data center e architetture di rete progettati per soddisfare i requisiti delle organizzazioni più sensibili alla sicurezza.

La sicurezza è una responsabilità condivisa tra te e te. AWS Il [modello di responsabilità condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/) descrive questo come sicurezza *del* cloud e sicurezza *nel* cloud:
+ **Sicurezza del cloud**: AWS è responsabile della protezione dell'infrastruttura che gestisce AWS i servizi in Cloud AWS. AWS fornisce inoltre servizi che è possibile utilizzare in modo sicuro. I revisori di terze parti testano e verificano regolarmente l'efficacia della sicurezza come parte dei [programmi di conformitàAWS](https://aws.amazon.com/compliance/programs/). Per ulteriori informazioni sui programmi di conformità applicabili AWS CodeBuild, consulta [AWS Services in Scope by Compliance Program](https://aws.amazon.com/compliance/services-in-scope/).
+ **Sicurezza nel cloud**: la tua responsabilità è determinata dal AWS servizio che utilizzi. Inoltre, sei responsabile anche di altri fattori, tra cui la riservatezza dei dati, i requisiti dell’azienda e le leggi e le normative applicabili.

Questa documentazione ti aiuta a capire come applicare il modello di responsabilità condivisa durante l'utilizzo CodeBuild. Negli argomenti seguenti viene illustrato come eseguire la configurazione CodeBuild per soddisfare gli obiettivi di sicurezza e conformità. Imparerai anche a utilizzare altri AWS servizi che ti aiutano a monitorare e proteggere CodeBuild le tue risorse.

**Topics**
+ [

# Protezione dei dati in AWS CodeBuild
](data-protection.md)
+ [

# Gestione delle identità e degli accessi in AWS CodeBuild
](auth-and-access-control.md)
+ [

# Convalida della conformità per AWS CodeBuild
](compliance-validation.md)
+ [

# Resilienza in AWS CodeBuild
](codebuild-disaster-recovery-resiliency.md)
+ [

# Sicurezza dell'infrastruttura in AWS CodeBuild
](infrastructure-security.md)
+ [

# Accedi al tuo provider di origine in CodeBuild
](access-tokens.md)
+ [

# Prevenzione del confused deputy tra servizi
](cross-service-confused-deputy-prevention.md)

# Protezione dei dati in AWS CodeBuild
<a name="data-protection"></a>

Il [modello di responsabilità AWS condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/) di si applica alla protezione dei dati in AWS CodeBuild. Come descritto in questo modello, AWS è responsabile della protezione dell'infrastruttura globale che gestisce tutti i Cloud AWS. L’utente è responsabile del controllo dei contenuti ospitati su questa infrastruttura. L’utente è inoltre responsabile della configurazione della protezione e delle attività di gestione per i Servizi AWS utilizzati. Per maggiori informazioni sulla privacy dei dati, consulta le [Domande frequenti sulla privacy dei dati](https://aws.amazon.com/compliance/data-privacy-faq/). Per informazioni sulla protezione dei dati in Europa, consulta il post del blog relativo al [AWS Modello di responsabilità condivisa e GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) nel *AWS Blog sulla sicurezza*.

Ai fini della protezione dei dati, consigliamo di proteggere Account AWS le credenziali e configurare i singoli utenti con AWS IAM Identity Center or AWS Identity and Access Management (IAM). In tal modo, a ogni utente verranno assegnate solo le autorizzazioni necessarie per svolgere i suoi compiti. Suggeriamo, inoltre, di proteggere i dati nei seguenti modi:
+ Utilizza l’autenticazione a più fattori (MFA) con ogni account.
+  SSL/TLS Da utilizzare per comunicare con AWS le risorse. È richiesto TLS 1.2 ed è consigliato TLS 1.3.
+ Configura l'API e la registrazione delle attività degli utenti con AWS CloudTrail. Per informazioni sull'utilizzo dei CloudTrail percorsi per acquisire AWS le attività, consulta [Lavorare con i CloudTrail percorsi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) nella *Guida per l'AWS CloudTrail utente*.
+ Utilizza soluzioni di AWS crittografia, insieme a tutti i controlli di sicurezza predefiniti all'interno Servizi AWS.
+ Utilizza i servizi di sicurezza gestiti avanzati, come Amazon Macie, che aiutano a individuare e proteggere i dati sensibili archiviati in Amazon S3.
+ Se hai bisogno di moduli crittografici convalidati FIPS 140-3 per accedere AWS tramite un'interfaccia a riga di comando o un'API, usa un endpoint FIPS. Per ulteriori informazioni sugli endpoint FIPS disponibili, consulta il [Federal Information Processing Standard (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Ti consigliamo di non inserire mai informazioni riservate o sensibili, ad esempio gli indirizzi e-mail dei clienti, nei tag o nei campi di testo in formato libero, ad esempio nel campo **Nome**. Ciò include quando lavori CodeBuild o Servizi AWS utilizzi la console, l'API o. AWS CLI AWS SDKs I dati inseriti nei tag o nei campi di testo in formato libero utilizzati per i nomi possono essere utilizzati per i la fatturazione o i log di diagnostica. Quando si fornisce un URL a un server esterno, suggeriamo vivamente di non includere informazioni sulle credenziali nell’URL per convalidare la richiesta al server.

 Per proteggere le informazioni sensibili, nei CodeBuild log sono nascoste le seguenti informazioni: 
+  Stringhe specificate utilizzando il Parameter Store nelle variabili di ambiente CodeBuild del progetto o nella sezione `env/parameter-store` buildspec. Per ulteriori informazioni, consulta la [procedura dettagliata della console [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) e Systems Manager Parameter Store nella Guida](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) per l'utente di *Amazon EC2 Systems* Manager. 
+  Stringhe specificate utilizzando Gestione dei segreti AWS le variabili di ambiente CodeBuild del progetto o la sezione buildspec. `env/secrets-manager` Per ulteriori informazioni, consulta [Gestione delle chiavi](security-key-management.md). 

Per ulteriori informazioni sulla protezione dei dati, consulta il post del blog relativo al [modello di responsabilità condivisa AWS e GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) in *AWS Security Blog*.

**Topics**
+ [

# Crittografia dei dati
](security-encryption.md)
+ [

# Gestione delle chiavi
](security-key-management.md)
+ [

# Privacy del traffico
](security-traffic-privacy.md)

# Crittografia dei dati
<a name="security-encryption"></a>

La crittografia è una parte importante della sicurezza. CodeBuild Alcuni tipi di crittografia, ad esempio quella per i dati in transito, vengono forniti per impostazione predefinita e l’utente non deve fare nulla. Altri tipi di crittografia, come quella per i dati inattivi, sono configurabili quando si crea un progetto o una compilazione. 
+ **Crittografia dei dati inattivi**: gli elementi della build, come la cache, i log, i file di dati non elaborati esportati nei report dei test e i risultati della build, vengono crittografati per impostazione predefinita utilizzando. Chiavi gestite da AWS Se non desideri utilizzare queste chiavi KMS, devi creare e configurare una chiave gestita dal cliente. Per ulteriori informazioni, consulta [Creazione delle chiavi KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) e [Concetti di AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) nella *Guida per l'utente di AWS Key Management Service *. 
  + È possibile memorizzare l'identificatore della chiave AWS KMS CodeBuild utilizzata per crittografare l'elemento di output della build nella variabile di ambiente. `CODEBUILD_KMS_KEY_ID` Per ulteriori informazioni, consulta [Variabili di ambiente degli ambienti di compilazione](build-env-ref-env-vars.md) 
  + È possibile specificare una chiave gestita dal cliente quando si crea un progetto di compilazione. Per ulteriori informazioni, consulta [Set the Encryption Key Using the Console](create-project.md#encryptionkey-console) e [Imposta la chiave di crittografia utilizzando la CLI](create-project.md#cli.encryptionkey). 

  I volumi Amazon Elastic Block Store della tua flotta di build sono crittografati per impostazione predefinita utilizzando Chiavi gestite da AWS. 
+ **Crittografia dei dati in transito**: tutte le comunicazioni tra i clienti CodeBuild CodeBuild e tra le relative dipendenze a valle sono protette mediante connessioni TLS firmate utilizzando il processo di firma Signature versione 4. Tutti gli CodeBuild endpoint utilizzano certificati SHA-256 gestiti da. AWS Autorità di certificazione privata Per ulteriori informazioni consulta la pagina relativa al [processo di firma Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) e la pagina [Che cos'è ACM PCA](https://docs.aws.amazon.com/privateca/latest/userguide/). 
+ **Crittografia degli artefatti di compilazione**: il ruolo di CodeBuild servizio associato al progetto di compilazione richiede l'accesso a una chiave KMS per crittografare gli artefatti di output della build. Per impostazione predefinita, CodeBuild utilizza un Chiave gestita da AWS per Amazon S3 nel tuo AWS account. Se non desideri utilizzarlo Chiave gestita da AWS, devi creare e configurare una chiave gestita dal cliente. Per ulteriori informazioni, consulta [Crittografa gli output di compilazione](setting-up-kms.md) [Creazione delle chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) nella *Guida per gli AWS KMS sviluppatori*.

# Gestione delle chiavi
<a name="security-key-management"></a>

Puoi proteggere i tuoi contenuti da un uso non autorizzato tramite la crittografia. Archivia le tue chiavi di crittografia Gestione dei segreti AWS, quindi concedi al ruolo di CodeBuild servizio associato al progetto di compilazione l'autorizzazione a ottenere le chiavi di crittografia dal tuo account Secrets Manager. Per ulteriori informazioni, consulta [Crittografa gli output della build utilizzando una chiave gestita dal cliente](setting-up-kms.md), [Crea un progetto di compilazione in AWS CodeBuild](create-project.md), [Esegui AWS CodeBuild le build manualmente](run-build.md) e [Tutorial: archiviazione e recupero di un segreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html). 

Usa la variabile di `CODEBUILD_KMS_KEY_ID` ambiente in un comando build per ottenere l'identificatore della AWS KMS chiave. Per ulteriori informazioni, consulta [Variabili di ambiente degli ambienti di compilazione](build-env-ref-env-vars.md). 

Puoi usare Secrets Manager per proteggere le credenziali di un registro privato che memorizza un'immagine Docker utilizzata per il tuo ambiente di runtime. Per ulteriori informazioni, consulta [Registro privato con Gestione dei segreti AWS esempio per CodeBuild](sample-private-registry.md). 

# Privacy del traffico
<a name="security-traffic-privacy"></a>

Puoi migliorare la sicurezza delle tue build configurando l'uso di un CodeBuild endpoint VPC di interfaccia. Per far ciò, non hai bisogno di un gateway Internet, di un dispositivo NAT o di un gateway privato virtuale. Inoltre, non è necessaria la configurazione PrivateLink, sebbene sia consigliata. Per ulteriori informazioni, consulta [Utilizzo degli endpoint VPC](use-vpc-endpoints-with-codebuild.md). Per ulteriori informazioni sugli PrivateLink endpoint VPC, consulta [AWS PrivateLink](https://aws.amazon.com/privatelink/)e [Accesso ai AWS](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink) servizi tramite. PrivateLink 

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

# Convalida della conformità per AWS CodeBuild
<a name="compliance-validation"></a>

Per sapere se un Servizio AWS programma rientra nell'ambito di specifici programmi di conformità, consulta Servizi AWS la sezione [Scope by Compliance Program Servizi AWS](https://aws.amazon.com/compliance/services-in-scope/) e scegli il programma di conformità che ti interessa. Per informazioni generali, consulta Programmi di [AWS conformità Programmi](https://aws.amazon.com/compliance/programs/) di di .

È possibile scaricare report di audit di terze parti utilizzando AWS Artifact. Per ulteriori informazioni, consulta [Scaricamento dei report in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

La vostra responsabilità di conformità durante l'utilizzo Servizi AWS è determinata dalla sensibilità dei dati, dagli obiettivi di conformità dell'azienda e dalle leggi e dai regolamenti applicabili. Per ulteriori informazioni sulla responsabilità di conformità durante l'utilizzo Servizi AWS, consulta la [Documentazione AWS sulla sicurezza](https://docs.aws.amazon.com/security/).

# Resilienza in AWS CodeBuild
<a name="codebuild-disaster-recovery-resiliency"></a>

L'infrastruttura AWS globale è costruita attorno a AWS regioni e zone di disponibilità. AWS Le regioni forniscono più zone di disponibilità fisicamente separate e isolate, collegate con reti a bassa latenza, ad alto throughput e altamente ridondanti. Con le zone di disponibilità, è possibile progettare e gestire applicazioni e database che eseguono il failover automatico tra zone di disponibilità senza interruzioni. Le zone di disponibilità sono più disponibili, tolleranti ai guasti e scalabili rispetto alle infrastrutture tradizionali a data center singolo o multiplo. 

[Per ulteriori informazioni su AWS regioni e zone di disponibilità, consulta infrastruttura globale.AWS](https://aws.amazon.com/about-aws/global-infrastructure/)

# Sicurezza dell'infrastruttura in AWS CodeBuild
<a name="infrastructure-security"></a>

In quanto servizio gestito, AWS CodeBuild è protetto dalla sicurezza di rete AWS globale. Per informazioni sui servizi AWS di sicurezza e su come AWS protegge l'infrastruttura, consulta [AWS Cloud Security](https://aws.amazon.com/security/). Per progettare il tuo AWS ambiente utilizzando le migliori pratiche per la sicurezza dell'infrastruttura, vedi [Infrastructure Protection](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) in *Security Pillar AWS Well‐Architected* Framework.

Utilizzate chiamate API AWS pubblicate per accedere CodeBuild attraverso la rete. I client devono supportare quanto segue:
+ Transport Layer Security (TLS). È richiesto TLS 1.2 ed è consigliato TLS 1.3.
+ Suite di cifratura con Perfect Forward Secrecy (PFS), ad esempio Ephemeral Diffie-Hellman (DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La maggior parte dei sistemi moderni, come Java 7 e versioni successive, supporta tali modalità.

# Accedi al tuo provider di origine in CodeBuild
<a name="access-tokens"></a>

Per il GitHub nostro GitHub Enterprise Server, si utilizza un token di accesso personale, un segreto di Secrets Manager, una connessione o un' OAuth app per accedere al provider di origine. Per Bitbucket, utilizzi un token di accesso, una password dell'app, un segreto di Secrets Manager, una connessione o un' OAuth app per accedere al provider di origine. 

**Topics**
+ [

# Crea e archivia un token in un segreto di Secrets Manager
](asm-create-secret.md)
+ [

# GitHub e l'accesso a GitHub Enterprise Server in CodeBuild
](access-tokens-github-overview.md)
+ [

# Accesso a Bitbucket in CodeBuild
](access-tokens-bitbucket-overview.md)
+ [

# GitLab accesso in CodeBuild
](access-tokens-gitlab-overview.md)

# Crea e archivia un token in un segreto di Secrets Manager
<a name="asm-create-secret"></a>

Se si sceglie di archiviare il token di accesso utilizzando Secrets Manager, è possibile utilizzare una connessione segreta esistente o creare un nuovo segreto. Per creare un nuovo segreto, procedi come segue:

------
#### [ Console di gestione AWS ]

**Per creare un segreto di Secrets Manager nel Console di gestione AWS**

1. **Come **provider di origine**, scegli **Bitbucket** o **GitHub**GitHub Enterprise.**

1. Per **Credential**, esegui una delle seguenti operazioni:
   + Scegli **Credenziale di origine predefinita** per utilizzare la credenziale di origine predefinita del tuo account da applicare a tutti i progetti.

     1. Se non sei connesso al tuo provider di origine, scegli **Gestisci credenziali di origine predefinite**.

     1. Per Tipo di **credenziale, scegli un tipo** di credenziale diverso da. **CodeConnections**

     1. Per **Service**, scegli **Secrets Manager** e per **Secrets** scegli **New secret**.

     1. In **Nome segreto**, inserisci il nome del tuo segreto.

     1. In **Descrizione segreta, facoltativa**, inserisci una descrizione per il tuo segreto.

     1. A seconda del provider di origine che hai scelto, inserisci il token o il nome utente e la password dell'app e scegli **Salva**.
   + Scegli **Credenziale di origine personalizzata** per utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni predefinite del tuo account.

     1. Per Tipo di **credenziale, scegli un tipo di** credenziale diverso da. **CodeConnections**

     1. In **Connessione**, scegli **Crea un segreto**.

     1. In **Nome segreto**, inserisci il nome del tuo segreto.

     1. In **Descrizione segreta, facoltativa**, inserisci una descrizione per il tuo segreto.

     1. A seconda del provider di origine che hai scelto, inserisci il token o il nome utente e la password dell'app e scegli **Crea**.

------
#### [ AWS CLI ]

**Per creare un segreto di Secrets Manager nel AWS CLI**
+ Apri un terminale (Linux, macOS o Unix) o prompt dei comandi (Windows). Utilizzare il AWS CLI per eseguire il **create-secret** comando Secrets Manager.

  ```
  aws secretsmanager create-secret --region <aws-region> \
              --name '<secret-name>' \
              --description '<secret-description>' \
              --secret-string '{
                  "ServerType":"<server-type>",
                  "AuthType":"<auth-type>",
                  "Token":"<token>"
                  }' \
              --tags Key=codebuild:source,Value='' \
                  Key=codebuild:source:type,Value=<type> \
                  Key=codebuild:source:provider,Value=<provider>
  ```

  I segreti di Secrets Manager CodeBuild accettati devono trovarsi nello stesso account e AWS nella stessa regione del CodeBuild progetto e devono essere nel seguente formato JSON:

  ```
  {
              "ServerType": ServerType,
              "AuthType: AuthType,
              "Token": string,
              "Username": string // Optional and is only used for Bitbucket app password
          }
  ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/asm-create-secret.html)

  Inoltre, CodeBuild utilizza i seguenti tag di risorsa sul segreto per garantire che i segreti siano facilmente selezionabili durante la creazione o la modifica di progetti.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/asm-create-secret.html)

------

# GitHub e l'accesso a GitHub Enterprise Server in CodeBuild
<a name="access-tokens-github-overview"></a>

Infatti GitHub, puoi utilizzare un token di accesso personale, un' OAuth app, un segreto di Secrets Manager o una connessione all' GitHub app per accedere al provider di origine. Per GitHub Enterprise Server, è possibile utilizzare un token di accesso personale, un segreto di Secrets Manager o una connessione GitHub App per accedere al provider di origine.

**Topics**
+ [

# GitHub Connessioni all'app per GitHub GitHub Enterprise Server
](connections-github-app.md)
+ [

# GitHub e token di accesso a GitHub Enterprise Server
](access-tokens-github.md)
+ [

# GitHub OAuth app
](oauth-app-github.md)

# GitHub Connessioni all'app per GitHub GitHub Enterprise Server
<a name="connections-github-app"></a>

Puoi usare l' GitHub app per connetterti con CodeBuild. GitHub Le connessioni alle app sono supportate tramite [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

L'accesso al provider di origine consente di attivare una build [ CreateWebhook](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateWebhook.html)sottoscrivendo o [GitHub eventi webhook](github-webhook.md) utilizzando [Tutorial: configura un GitHub Actions CodeBuild runner ospitato](action-runner.md) in CodeBuild.

**Nota**  
CodeConnections è disponibile in un numero di regioni inferiore a. CodeBuild È possibile utilizzare connessioni interregionali in CodeBuild. Le connessioni create nelle regioni opzionali non possono essere utilizzate in altre regioni. Per ulteriori informazioni, consulta [Endpoint e quote per AWS CodeConnections](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [

## Passaggio 1: creare una connessione all' GitHub app (console)
](#connections-github-console)
+ [

## Fase 2: concedere al CodeBuild progetto l'accesso al ruolo IAM per utilizzare la connessione
](#connections-github-role-access)
+ [

## Fase 3: Configurazione CodeBuild per l'utilizzo della nuova connessione
](#connections-github-account-credential)
+ [Risoluzione dei problemi relativi all' GitHub app](#connections-github-troubleshooting)

## Passaggio 1: creare una connessione all' GitHub app (console)
<a name="connections-github-console"></a>

Segui questi passaggi per utilizzare la CodeBuild console in cui aggiungere una connessione per il tuo progetto GitHub.

**Per creare una connessione a GitHub**
+ Segui le istruzioni nella *Guida per l'utente degli strumenti per sviluppatori* per [creare una connessione a GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).

**Nota**  
Invece di creare o utilizzare una connessione esistente nel tuo account, puoi utilizzare una connessione condivisa da un altro AWS account. Per ulteriori informazioni, consulta [Condividere le connessioni con AWS gli account](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Fase 2: concedere al CodeBuild progetto l'accesso al ruolo IAM per utilizzare la connessione
<a name="connections-github-role-access"></a>

Puoi concedere l'accesso al ruolo IAM del CodeBuild progetto per utilizzare GitHub i token forniti dalla tua connessione.

**Per concedere l'accesso al CodeBuild ruolo IAM del progetto**

1. Crea un ruolo IAM per il tuo CodeBuild progetto seguendo le istruzioni [Consenti CodeBuild di interagire con altri servizi AWS](setting-up-service-role.md) relative al tuo CodeBuild progetto.

1. Seguendo le istruzioni, aggiungi la seguente politica IAM al ruolo CodeBuild del tuo progetto per concedere l'accesso alla connessione.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Fase 3: Configurazione CodeBuild per l'utilizzo della nuova connessione
<a name="connections-github-account-credential"></a>

È possibile configurare una connessione come credenziale a livello di account e utilizzarla in un progetto.

------
#### [ Console di gestione AWS ]

**Per configurare una connessione come credenziale a livello di account in Console di gestione AWS**

1. Per **Provider di origine**, scegli **GitHub**. 

1. Per **Credential**, effettuate una delle seguenti operazioni:
   + Scegli **Credenziale di origine predefinita** per utilizzare la credenziale di origine predefinita del tuo account da applicare a tutti i progetti.

     1. Se non sei connesso a GitHub, scegli **Gestisci credenziali di origine predefinite**.

     1. **Per il **tipo di credenziale**, scegli GitHub App.**

     1. In **Connessione**, scegli di utilizzare una connessione esistente o crearne una nuova.
   + Scegli **Credenziale di origine personalizzata** per utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni predefinite del tuo account.

     1. **Per **Tipo di credenziale**, scegli App. GitHub **

     1. In **Connessione**, scegli di utilizzare una connessione esistente o crearne una nuova.

------
#### [ AWS CLI ]

**Per configurare una connessione come credenziale a livello di account in AWS CLI**
+ Apri un terminale (Linux, macOS o Unix) o prompt dei comandi (Windows). Utilizzate il AWS CLI per eseguire il **import-source-credentials** comando, specificando il `--auth-type``--server-type`, e `--token` per la connessione.

  Utilizza il seguente comando:

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type GITHUB --token <connection-arn>
  ```

------

Puoi anche impostare più token per i tuoi CodeBuild progetti. Per ulteriori informazioni, consulta [Configura più token come credenziali a livello di origine](multiple-access-tokens.md#asm-source-credential).

## Risoluzione dei problemi con l'app GitHub
<a name="connections-github-troubleshooting"></a>

Le seguenti informazioni possono aiutarti a risolvere i problemi più comuni relativi all' GitHub App.

**Topics**
+ [

### Installa il AWS Connector per GitHub l'app in una regione indesiderata
](#connections-github-troubleshooting.undesired-region)
+ [

### La connessione all' GitHub app non ha accesso agli archivi
](#connections-github-troubleshooting.repo-access)
+ [

### Al ruolo IAM del AWS servizio mancano le autorizzazioni IAM necessarie.
](#connections-github-troubleshooting.iam-permissions)

### Installa il AWS Connector per GitHub l'app in una regione indesiderata
<a name="connections-github-troubleshooting.undesired-region"></a>

**Problema:** hai installato il AWS Connector for GitHub dal GitHub Marketplace, ma la connessione è stata creata in un'area indesiderata. Se tenti di riconfigurare l'app sul GitHub sito Web, non funzionerà perché l'app è già installata sul tuo GitHub account.

**Possibile causa:** l'app è già installata nel tuo GitHub account, quindi puoi solo riconfigurare le autorizzazioni dell'app.

**Soluzione consigliata:** è possibile creare una nuova connessione con l'ID di installazione nella regione desiderata.

1. Apri la CodeConnections console in [https://console.aws.amazon.com/codesuite/impostazioni/connessioni](https://console.aws.amazon.com/codesuite/settings/connections) e accedi alla regione desiderata utilizzando il selettore di regione nella barra di navigazione della AWS console.

1. Segui le istruzioni nella *Guida per l'utente degli strumenti per sviluppatori* per [creare una](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html) connessione a. GitHub
**Nota**  
Poiché hai già installato l' GitHub app AWS Connector for, puoi sceglierlo invece di installare una nuova app.

### La connessione all' GitHub app non ha accesso agli archivi
<a name="connections-github-troubleshooting.repo-access"></a>

**Problema:** un AWS servizio che utilizza la connessione, ad esempio CodeBuild o CodePipeline, segnala di non avere accesso al repository o che il repository non esiste. Alcuni possibili messaggi di errore includono:
+ `Authentication required for primary source.`
+ `Unable to create webhook at this time. Please try again later.`
+ `Failed to create webhook. GitHub API limit reached. Please try again later.`

***Possibile causa:** potresti aver utilizzato l' GitHub app e non aver concesso l'ambito di autorizzazione del webhook.*  
**Soluzione consigliata:** per concedere l'ambito di autorizzazione richiesto, segui le istruzioni in [Navigazione verso l' GitHub app che desideri esaminare o modificare](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps#navigating-to-the-github-app-you-want-to-review-or-modify) per configurare l'app installata. Nella sezione Autorizzazioni, vedrai che l'app non dispone dell'autorizzazione per i webhook e che c'è un'opzione per rivedere le nuove autorizzazioni richieste. Rivedi e accetta le nuove autorizzazioni. Per ulteriori informazioni, consulta [Approvazione delle autorizzazioni aggiornate per un'app](https://docs.github.com/en/apps/using-github-apps/approving-updated-permissions-for-a-github-app). GitHub 

***Possibile causa:** la connessione funzionava come previsto, ma all'improvviso non ha accesso ai repository.*  
**Soluzione possibile:** inizia esaminando [le autorizzazioni e le](https://docs.github.com/en/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps) [installazioni](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps), quindi verifica che l' GitHub App sia autorizzata e installata. Se l'installazione dell' GitHub App è sospesa, è necessario annullarla. Se l' GitHub App non è autorizzata per una connessione [UAT (User Access Token)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user) o non è installata per una connessione [IAT (Installation Access Token)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation), la connessione esistente non è più utilizzabile e sarà necessario creare una nuova connessione. Tieni presente che la reinstallazione dell' GitHub app non ripristinerà la connessione precedente associata alla vecchia installazione.  
**Soluzione possibile:** se la connessione è una connessione UAT, assicurati che la connessione non venga utilizzata contemporaneamente, ad esempio in più esecuzioni CodeBuild simultanee di build. Questo perché invalida GitHub immediatamente un UAT emesso in precedenza se un token in scadenza viene aggiornato dalla connessione. Se è necessario utilizzare la connessione UAT per più CodeBuild build simultanee, è possibile creare più connessioni e utilizzare ciascuna connessione in modo indipendente.  
**Soluzione possibile:** se la connessione UAT non è stata utilizzata negli ultimi 6 mesi, la connessione verrà invalidata da. GitHub Per risolvere questo problema, crea una nuova connessione.

***Possibile causa:** potresti aver utilizzato una connessione UAT senza installare l'app.*  
**Soluzione consigliata:** sebbene la creazione di una connessione UAT non richieda l'associazione della connessione a un'installazione GitHub dell'app, è necessaria un'installazione per rendere accessibile l'archivio. Segui le istruzioni per [rivedere le installazioni](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) e assicurarti che l' GitHub app sia installata. Se non è installata, vai alla [pagina dell'GitHub app](https://github.com/marketplace/aws-connector-for-github) per installarla. Per ulteriori informazioni sull'accesso di UAT, consulta [Informazioni sui token di accesso degli utenti](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app#about-user-access-tokens).

### Al ruolo IAM del AWS servizio mancano le autorizzazioni IAM necessarie.
<a name="connections-github-troubleshooting.iam-permissions"></a>

**Problema:** viene visualizzato uno dei seguenti messaggi di errore:
+ `Access denied to connection <connection-arn>`
+ `Failed to get access token from <connection-arn>`

**Soluzione consigliata:** in genere si utilizza una connessione con un AWS servizio, ad esempio CodePipeline o CodeBuild. Quando assegnate al AWS servizio un ruolo IAM, il AWS servizio può utilizzare l'autorizzazione del ruolo per agire per vostro conto. Assicurati che il ruolo IAM disponga delle autorizzazioni necessarie. Per ulteriori informazioni sull'autorizzazione IAM necessaria, consulta [Concedere al CodeBuild progetto l'accesso al ruolo IAM per utilizzare la connessione e la](#connections-github-role-access) [gestione delle identità e degli accessi per AWS CodeStar le notifiche e CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html) nella *Guida per l'utente della console Developer Tools*.

# GitHub e token di accesso a GitHub Enterprise Server
<a name="access-tokens-github"></a>

## Prerequisiti del token di accesso
<a name="access-tokens-github-prereqs"></a>

Prima di iniziare, è necessario aggiungere gli ambiti di autorizzazione appropriati al token di GitHub accesso. 

Infatti GitHub, il token di accesso personale deve avere i seguenti ambiti. 
+ **repo**: concede il controllo completo dei repository privati. 
+ **repo:status:** concede l' read/write accesso agli stati di commit dei repository pubblici e privati.
+ **admin:repo\$1hook**: concede il controllo completo degli hook di repository. Questo ambito non è necessario se il token ha l'ambito `repo`. 
+ **admin:org\$1hook**: Garantisce il pieno controllo degli hook organizzativi. Questo ambito è necessario solo se si utilizza la funzionalità webhook dell'organizzazione.

Per ulteriori informazioni, consulta [Comprendere gli ambiti OAuth delle app](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) sul GitHub sito Web.

Se utilizzi token di accesso personali dettagliati, a seconda del caso d'uso, il token di accesso personale potrebbe richiedere le seguenti autorizzazioni:
+ **Contenuto: Sola lettura: concede l'accesso agli archivi privati**. Questa autorizzazione è necessaria se si utilizzano repository privati come fonte.
+ **Stati di commit: Lettura e scrittura: concede l'autorizzazione a creare stati** di commit. Questa autorizzazione è necessaria se nel progetto è configurato un webhook o se è abilitata la funzione di report sullo stato della compilazione.
+ **Webhook: Lettura e scrittura:** concede l'autorizzazione a gestire i webhook. Questa autorizzazione è necessaria se nel progetto è configurato un webhook.
+ **Richieste pull: Sola lettura:** concede l'autorizzazione ad accedere alle richieste pull. Questa autorizzazione è necessaria se il webhook ha un `FILE_PATH` filtro sugli eventi di pull request.
+ **Amministrazione: Lettura e scrittura**: questa autorizzazione è richiesta se si utilizza la funzionalità self-hosted GitHub Actions runner con. CodeBuild Per maggiori dettagli, consulta [Creare un token di registrazione per un repository](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository) e. [Tutorial: configura un GitHub Actions CodeBuild runner ospitato](action-runner.md)

**Nota**  
Se desideri accedere agli archivi dell'organizzazione, assicurati di specificare l'organizzazione come proprietaria della risorsa del token di accesso.

Per ulteriori informazioni, consulta [Autorizzazioni richieste per i token di accesso personali dettagliati sul](https://docs.github.com/en/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28) sito Web. GitHub 

## Connect GitHub con un token di accesso (console)
<a name="access-tokens-github-console"></a>

Per utilizzare la console per connettere il progetto all' GitHub utilizzo di un token di accesso, procedi come segue quando crei un progetto. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console). 

1. Per **Provider di origine**, scegli **GitHub**. 

1. Per **Credential**, effettuate una delle seguenti operazioni:
   + Scegli di utilizzare le credenziali dell'account per applicare le credenziali di origine predefinite dell'account a tutti i progetti.

     1. Se non sei connesso a GitHub, scegli **Gestisci le credenziali dell'account**.

     1. Per il **tipo di credenziale**, scegli Token di **accesso personale**.
   + Se hai scelto di utilizzare credenziali a livello di account per il **Servizio**, scegli quale servizio desideri utilizzare per archiviare il token e procedi come segue:

     1. Se scegli di utilizzare **Secrets Manager**, puoi scegliere di utilizzare una connessione segreta esistente o crearne una nuova, quindi scegliere **Salva**. Per ulteriori informazioni su come creare un nuovo segreto, consulta[Crea e archivia un token in un segreto di Secrets Manager](asm-create-secret.md).

     1. Se scegli di utilizzarlo **CodeBuild**, inserisci il tuo token di accesso GitHub personale, quindi scegli **Salva**.
   + Seleziona **Usa le credenziali di sostituzione solo per questo progetto** per utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni delle credenziali del tuo account.

     1. **Dall'elenco di credenziali compilato, scegli una delle opzioni in Token di accesso personale.**

     1. Puoi anche creare un nuovo token di accesso personale selezionando **Crea una nuova connessione con token di accesso personale** nella descrizione.

## Connect GitHub con un token di accesso (CLI)
<a name="access-tokens-github-cli"></a>

Segui questi passaggi per collegare il tuo progetto AWS CLI all' GitHub utilizzo di un token di accesso. Per informazioni sull'utilizzo di AWS CLI with AWS CodeBuild, consulta[Guida di riferimento alla riga di comando](cmd-ref.md). 

1. Eseguire il comando **import-source-credentials**: 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   Nell'output vengono visualizzati dati in formato JSON. Copiare i dati in un file (ad esempio,`import-source-credentials.json`) in una posizione del computer o dell'istanza locale in cui AWS CLI è installato. Modificare i dati copiati come segue, quindi salvare i risultati. 

   ```
   {
       "serverType": "server-type",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Sostituisci quanto segue: 
   + *server-type*: Valore richiesto. Il provider di origine utilizzato per queste credenziali. I valori validi sono GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB e GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: Valore richiesto. Il tipo di autenticazione utilizzato per connettersi a un repository. I valori validi sono OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS e SECRETS\$1MANAGER. Perché, è consentito solo GitHub PERSONAL\$1ACCESS\$1TOKEN. BASIC\$1AUTH è consentito solo con la password dell'app Bitbucket.
   + *should-overwrite*: Valore opzionale. Imposta su `false` per evitare di sovrascrivere le credenziali di origine del repository. Imposta su `true` per sovrascrivere le credenziali di origine del repository. Il valore predefinito è `true`.
   + *token*: valore obbligatorio. Per il GitHub nostro GitHub Enterprise Server, questo è il token di accesso personale. Per Bitbucket, si tratta del token di accesso personale o della password dell'app. Per il tipo di autenticazione CODECONNECTIONS, questo è l'ARN della connessione. Per il tipo di autenticazione SECRETS\$1MANAGER, questo è l'ARN segreto.
   + *username*: Valore opzionale. Questo parametro viene ignorato per i provider GitHub di origine di GitHub Enterprise Server. 

1. Per collegare l'account con un token di accesso, passare alla directory che contiene il file `import-source-credentials.json` salvato nel passaggio 1 ed eseguire nuovamente il comando **import-source-credentials**. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   I dati in formato JSON sono presenti nell'output con un Amazon Resource Name (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**Nota**  
Se si esegue il comando **import-source-credentials** con lo stesso server-type e auth-type una seconda volta, il token di accesso archiviato viene aggiornato. 

   Dopo aver collegato l'account con un token di accesso, è possibile utilizzarlo `create-project` per creare il CodeBuild progetto. Per ulteriori informazioni, consulta [Creazione di un progetto di compilazione (AWS CLI)](create-project.md#create-project-cli). 

1. Per visualizzare i token di accesso connessi, eseguire il comando **list-source-credentials**. 

   ```
   aws codebuild list-source-credentials
   ```

   Un oggetto `sourceCredentialsInfos` in formato JSON è presente nell'output: 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "server-type", 
                   "arn": "arn"
               }
           ]
       }
   ```

   L'elemento `sourceCredentialsObject` contiene un elenco di informazioni sulle credenziali di origine connesse: 
   + L'elemento `authType` è il tipo di autenticazione utilizzato dalle credenziali. Può essere`OAUTH`,`BASIC_AUTH`, `PERSONAL_ACCESS_TOKEN``CODECONNECTIONS`, o`SECRETS_MANAGER`. 
   + L'elemento `serverType` è il tipo di provider di origine. Questo può essere `GITHUB``GITHUB_ENTERPRISE`,`BITBUCKET`,`GITLAB`, o`GITLAB_SELF_MANAGED`. 
   + L'elemento `arn` è l'ARN del token. 

1. Per disconnettersi da un provider di origine e rimuovere i token di accesso, eseguire il comando **delete-source-credentials** con l'ARN. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Vengono restituiti dati in formato JSON con l'ARN delle credenziali eliminate. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# GitHub OAuth app
<a name="oauth-app-github"></a>

## Connect GitHub tramite OAuth (console)
<a name="oauth-app-github-console"></a>

Per utilizzare la console per connettere il progetto all' GitHub utilizzo di un' OAuth app, esegui le seguenti operazioni quando crei un progetto. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console). 

1. Per **Provider di origine**, scegli **GitHub**. 

1. Per **Credential**, effettuate una delle seguenti operazioni:
   + Scegli di utilizzare le credenziali dell'account per applicare le credenziali di origine predefinite dell'account a tutti i progetti.

     1. Se non sei connesso a GitHub, scegli **Gestisci le credenziali dell'account**.

     1. **Per il **tipo di credenziale**, scegli OAuth l'app.**
   + Se hai scelto di utilizzare le credenziali a livello di account per il **Servizio**, scegli quale servizio desideri utilizzare per archiviare il token e procedi come segue:

     1. Se scegli di utilizzare **Secrets Manager**, puoi scegliere di utilizzare una connessione segreta esistente o crearne una nuova, quindi scegliere **Salva**. Per ulteriori informazioni su come creare un nuovo segreto, consulta[Crea e archivia un token in un segreto di Secrets Manager](asm-create-secret.md).

     1. Se scegli di utilizzare, **CodeBuild**quindi scegli **Salva**.
   + Seleziona **Usa le credenziali di sostituzione solo per questo progetto** per utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni delle credenziali del tuo account.

     1. **Dall'elenco di credenziali compilato, scegli una delle opzioni in app. OAuth **

     1. Puoi anche creare un nuovo token per OAuth l'app selezionando **Crea una nuova connessione con il token dell'app Oauth** nella descrizione.

Per esaminare le OAuth app autorizzate, accedi a [Applicazioni](https://github.com/settings/applications) su GitHub e verifica che sia presente nell'elenco un'applicazione denominata `AWS CodeBuild (region)` di proprietà di [aws-codesuite](https://github.com/aws-codesuite).

# Accesso a Bitbucket in CodeBuild
<a name="access-tokens-bitbucket-overview"></a>

Per Bitbucket, utilizzi un token di accesso, una password per l'app, un'app o una connessione Bitbucket per accedere al provider di origine. OAuth 

**Topics**
+ [

# Connessioni all'app Bitbucket
](connections-bitbucket-app.md)
+ [

# Password o token di accesso dell'app Bitbucket
](access-tokens-bitbucket.md)
+ [

# App Bitbucket OAuth
](oauth-app-bitbucket.md)

# Connessioni all'app Bitbucket
<a name="connections-bitbucket-app"></a>

Puoi usare Bitbucket per connetterti con. CodeBuild Le connessioni all'app Bitbucket sono supportate tramite. [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)

**Nota**  
CodeConnections è disponibile in meno aree geografiche di. CodeBuild È possibile utilizzare connessioni interregionali in CodeBuild. Le connessioni create nelle regioni opzionali non possono essere utilizzate in altre regioni. Per ulteriori informazioni, consulta [Endpoint e quote per AWS CodeConnections](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [

## Passaggio 1: crea una connessione a Bitbucket (console)
](#connections-bitbucket-console)
+ [

## Fase 2: concedere al CodeBuild progetto l'accesso al ruolo IAM per utilizzare la connessione
](#connections-bitbucket-role-access)
+ [

## Fase 3: Configurazione CodeBuild per l'utilizzo della nuova connessione
](#connections-bitbucket-account-credential)

## Passaggio 1: crea una connessione a Bitbucket (console)
<a name="connections-bitbucket-console"></a>

Utilizza questi passaggi per utilizzare la CodeBuild console per aggiungere una connessione per il tuo progetto in Bitbucket.

**Per creare una connessione a Bitbucket**
+ Segui le istruzioni nella *Guida per l'utente di Developer Tools* per [creare una connessione a](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-bitbucket.html) Bitbucket.

**Nota**  
Invece di creare o utilizzare una connessione esistente nel tuo account, puoi utilizzare una connessione condivisa da un altro AWS account. Per ulteriori informazioni, consulta [Condividere le connessioni con AWS gli account](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Fase 2: concedere al CodeBuild progetto l'accesso al ruolo IAM per utilizzare la connessione
<a name="connections-bitbucket-role-access"></a>

Puoi concedere l'accesso al ruolo IAM del CodeBuild progetto per utilizzare i token Bitbucket forniti dalla tua connessione.

**Per concedere CodeBuild l'accesso al ruolo IAM del progetto**

1. Crea un ruolo IAM per il tuo CodeBuild progetto seguendo le istruzioni [Consenti CodeBuild di interagire con altri servizi AWS](setting-up-service-role.md) relative al tuo CodeBuild progetto.

1. Seguendo le istruzioni, aggiungi la seguente politica IAM al ruolo CodeBuild del tuo progetto per concedere l'accesso alla connessione.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Fase 3: Configurazione CodeBuild per l'utilizzo della nuova connessione
<a name="connections-bitbucket-account-credential"></a>

È possibile configurare una connessione come credenziale a livello di account e utilizzarla in un progetto.

------
#### [ Console di gestione AWS ]

**Per configurare una connessione come credenziale a livello di account in Console di gestione AWS**

1. In **Source provider (Provider origine)** selezionare **Bitbucket**. 

1. Per **Credential**, esegui una delle seguenti operazioni:
   + Scegli **Credenziale di origine predefinita** per utilizzare la credenziale di origine predefinita del tuo account da applicare a tutti i progetti.

     1. Se non sei connesso a Bitbucket, scegli **Gestisci** credenziali di origine predefinite.

     1. Per Tipo di **credenziale**, scegli. **CodeConnections**

     1. In **Connessione**, scegli di utilizzare una connessione esistente o crearne una nuova.
   + Scegli **Credenziale di origine personalizzata** per utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni predefinite del tuo account.

     1. Per Tipo di **credenziale**, scegli. **CodeConnections**

     1. In **Connessione**, scegli di utilizzare una connessione esistente o crearne una nuova.

------
#### [ AWS CLI ]

**Per configurare una connessione come credenziale a livello di account in AWS CLI**
+ Apri un terminale (Linux, macOS o Unix) o prompt dei comandi (Windows). Utilizzate il AWS CLI per eseguire il **import-source-credentials** comando, specificando il `--auth-type``--server-type`, e `--token` per la connessione.

  Utilizza il seguente comando:

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type BITBUCKET --token <connection-arn>
  ```

------

Per ulteriori informazioni sulla configurazione di più token nel CodeBuild progetto, consulta. [Configura più token come credenziali a livello di origine](multiple-access-tokens.md#asm-source-credential)

# Password o token di accesso dell'app Bitbucket
<a name="access-tokens-bitbucket"></a>

## Prerequisiti
<a name="access-tokens-bitbucket-prerequisites"></a>

Prima di iniziare, devi aggiungere gli ambiti di autorizzazione appropriati alla password o al token di accesso dell'app Bitbucket. 

Per Bitbucket, la password o il token di accesso dell'app devono avere i seguenti ambiti. 
+ **repository:read**: concede l'accesso in lettura a tutti i repository a cui ha accesso l'utente che fornisce l'autorizzazione. 
+ **pullrequest:read**: concede l'accesso in lettura alle richieste di pull. Se il tuo progetto ha un webhook Bitbucket, la password o il token di accesso dell'app devono avere questo ambito. 
+ **webhook**: concede l'accesso ai webhook. Se il progetto prevede un'operazione webhook, la password o il token di accesso dell'app devono avere questo ambito. 
+ **account**: consente l'accesso in lettura alle informazioni dell'account dell'utente.

Per ulteriori informazioni, consulta l'[API REST di Scopes for Bitbucket Cloud](https://developer.atlassian.com/cloud/bitbucket/bitbucket-cloud-rest-api-scopes/) e [OAuth su Bitbucket Cloud sul sito Web di Bitbucket](https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html).

## Connect Bitbucket con una password per l'app (console)
<a name="access-tokens-bitbucket-password-console"></a>

Per utilizzare la console per connettere il tuo progetto a Bitbucket utilizzando una password per l'app, esegui le seguenti operazioni quando crei un progetto. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console). 

1. In **Source provider (Provider origine)** selezionare **Bitbucket**. 

1. Per **Credential**, esegui una delle seguenti operazioni:
   + Scegli di utilizzare le credenziali dell'account per applicare le credenziali di origine predefinite dell'account a tutti i progetti.

     1. **Se non sei connesso a Bitbucket, scegli Gestisci le credenziali dell'account.**

     1. **Per il **tipo di credenziale**, scegli la password dell'app.**
   + Se hai scelto di utilizzare le credenziali a livello di account per il **Servizio**, scegli quale servizio desideri utilizzare per archiviare il token e procedi come segue:

     1. Se scegli di utilizzare **Secrets Manager**, puoi scegliere di utilizzare una connessione segreta esistente o crearne una nuova, quindi scegliere **Salva**. Per ulteriori informazioni su come creare un nuovo segreto, consulta[Crea e archivia un token in un segreto di Secrets Manager](asm-create-secret.md).

     1. **Se scegli di utilizzarlo **CodeBuild**, inserisci il nome utente e la password dell'app Bitbucket, quindi scegli Salva.**
   + Seleziona **Usa le credenziali di sostituzione solo per questo progetto per** utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni delle credenziali del tuo account.

     1. **Dall'elenco di credenziali compilato, scegli una delle opzioni in Password dell'app.**

     1. Puoi anche creare un nuovo token per la password dell'app selezionando **Crea una nuova connessione con password per l'app** nella descrizione.

## Connect Bitbucket con un token di accesso (console)
<a name="access-tokens-bitbucket-console"></a>

Per utilizzare la console per connettere il tuo progetto a Bitbucket utilizzando un token di accesso, esegui le seguenti operazioni quando crei un progetto. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console). 

1. In **Source provider (Provider origine)** selezionare **Bitbucket**. 

1. Per **Credential**, esegui una delle seguenti operazioni:
   + Scegli di utilizzare le credenziali dell'account per applicare le credenziali di origine predefinite dell'account a tutti i progetti.

     1. **Se non sei connesso a Bitbucket, scegli Gestisci le credenziali dell'account.**

     1. **Per il **tipo di credenziale**, scegli Token di accesso personale.**
   + Se hai scelto di utilizzare credenziali a livello di account per il **Servizio**, scegli quale servizio desideri utilizzare per archiviare il token e procedi come segue:

     1. Se scegli di utilizzare **Secrets Manager**, puoi scegliere di utilizzare una connessione segreta esistente o crearne una nuova, quindi scegliere **Salva**. Per ulteriori informazioni su come creare un nuovo segreto, consulta[Crea e archivia un token in un segreto di Secrets Manager](asm-create-secret.md).

     1. **Se scegli di utilizzarlo **CodeBuild**, inserisci il token di accesso personale di Bitbucket, quindi scegli Salva.**
   + Seleziona **Usa le credenziali di sostituzione solo per questo progetto per** utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni delle credenziali del tuo account.

     1. **Dall'elenco di credenziali compilato, scegli una delle opzioni in Token di accesso personale.**

     1. Puoi anche creare un nuovo token di accesso personale selezionando **Crea una nuova connessione con token di accesso personale** nella descrizione.

## Connect Bitbucket con una password dell'app o un token di accesso (CLI)
<a name="access-tokens-bitbucket-cli"></a>

Segui questi passaggi per utilizzare per connettere il tuo progetto AWS CLI a Bitbucket utilizzando una password o un token di accesso per l'app. Per informazioni sull'utilizzo di AWS CLI with AWS CodeBuild, consulta. [Guida di riferimento alla riga di comando](cmd-ref.md) 

1. Eseguire il comando **import-source-credentials**: 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   Nell'output vengono visualizzati dati in formato JSON. Copiare i dati in un file (ad esempio,`import-source-credentials.json`) in una posizione del computer o dell'istanza locale in cui AWS CLI è installato. Modificare i dati copiati come segue, quindi salvare i risultati. 

   ```
   {
       "serverType": "BITBUCKET",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Sostituisci quanto segue: 
   + *server-type*: Valore richiesto. Il provider di origine utilizzato per queste credenziali. I valori validi sono GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB e GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: Valore richiesto. Il tipo di autenticazione utilizzato per connettersi a un repository. I valori validi sono OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS e SECRETS\$1MANAGER. Perché, è consentito solo GitHub PERSONAL\$1ACCESS\$1TOKEN. BASIC\$1AUTH è consentito solo con la password dell'app Bitbucket.
   + *should-overwrite*: Valore opzionale. Imposta su `false` per evitare di sovrascrivere le credenziali di origine del repository. Imposta su `true` per sovrascrivere le credenziali di origine del repository. Il valore predefinito è `true`.
   + *token*: valore obbligatorio. Per il GitHub nostro GitHub Enterprise Server, questo è il token di accesso personale. Per Bitbucket, si tratta del token di accesso personale o della password dell'app. Per il tipo di autenticazione CODECONNECTIONS, questo è l'ARN della connessione. Per il tipo di autenticazione SECRETS\$1MANAGER, questo è l'ARN segreto.
   + *username*: Valore opzionale. Questo parametro viene ignorato per i provider GitHub di origine di GitHub Enterprise Server. 

1. Per connettere il tuo account con una password dell'app o un token di accesso, passa alla directory che contiene il `import-source-credentials.json` file salvato nel passaggio 1 ed esegui nuovamente il **import-source-credentials** comando. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   I dati in formato JSON sono presenti nell'output con un Amazon Resource Name (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**Nota**  
Se si esegue il comando **import-source-credentials** con lo stesso server-type e auth-type una seconda volta, il token di accesso archiviato viene aggiornato. 

   Dopo aver collegato l'account con una password per l'app, puoi utilizzarla `create-project` per creare il tuo CodeBuild progetto. Per ulteriori informazioni, consulta [Creazione di un progetto di compilazione (AWS CLI)](create-project.md#create-project-cli). 

1. Per visualizzare le password o i token di accesso delle app connesse, esegui il **list-source-credentials** comando. 

   ```
   aws codebuild list-source-credentials
   ```

   Un oggetto `sourceCredentialsInfos` in formato JSON è presente nell'output: 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "BITBUCKET", 
                   "arn": "arn"
               }
           ]
       }
   ```

   L'elemento `sourceCredentialsObject` contiene un elenco di informazioni sulle credenziali di origine connesse: 
   + L'elemento `authType` è il tipo di autenticazione utilizzato dalle credenziali. Può essere`OAUTH`,, `BASIC_AUTH` `PERSONAL_ACCESS_TOKEN``CODECONNECTIONS`, o. `SECRETS_MANAGER` 
   + L'elemento `serverType` è il tipo di provider di origine. Questo può essere `GITHUB``GITHUB_ENTERPRISE`,`BITBUCKET`,`GITLAB`, o`GITLAB_SELF_MANAGED`. 
   + L'elemento `arn` è l'ARN del token. 

1. Per disconnetterti da un provider di origine e rimuovere la password dell'app o i token di accesso, esegui il **delete-source-credentials** comando con il relativo ARN. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Vengono restituiti dati in formato JSON con l'ARN delle credenziali eliminate. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# App Bitbucket OAuth
<a name="oauth-app-bitbucket"></a>

## Connect Bitbucket tramite OAuth (console)
<a name="oauth-app-bitbucket-console"></a>

Per utilizzare la console per connettere il tuo progetto a Bitbucket tramite un' OAuth app, esegui le seguenti operazioni quando crei un progetto. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console). 

1. In **Source provider (Provider origine)** selezionare **Bitbucket**. 

1. Per **Credential**, esegui una delle seguenti operazioni:
   + Scegli di utilizzare le credenziali dell'account per applicare le credenziali di origine predefinite dell'account a tutti i progetti.

     1. **Se non sei connesso a Bitbucket, scegli Gestisci le credenziali dell'account.**

     1. **Per il **tipo di credenziale**, scegli l'app. OAuth **
   + Se hai scelto di utilizzare le credenziali a livello di account per il **Servizio**, scegli quale servizio desideri utilizzare per archiviare il token e procedi come segue:

     1. Se scegli di utilizzare **Secrets Manager**, puoi scegliere di utilizzare una connessione segreta esistente o crearne una nuova, quindi scegliere **Salva**. Per ulteriori informazioni su come creare un nuovo segreto, consulta[Crea e archivia un token in un segreto di Secrets Manager](asm-create-secret.md).

     1. Se scegli di utilizzare, **CodeBuild**quindi scegli **Salva**.
   + Seleziona **Usa le credenziali di sostituzione solo per questo progetto** per utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni delle credenziali del tuo account.

     1. **Dall'elenco di credenziali compilato, scegli una delle opzioni in app. OAuth **

     1. Puoi anche creare un nuovo token per OAuth l'app selezionando **Crea una nuova connessione con il token dell'app Oauth** nella descrizione.

Per esaminare le OAuth app autorizzate, accedi a [Autorizzazioni dell'applicazione](https://bitbucket.org/account/settings/app-authorizations/) su Bitbucket e verifica che nell'elenco sia presente un'applicazione denominata. `AWS CodeBuild (region)` 

# GitLab accesso in CodeBuild
<a name="access-tokens-gitlab-overview"></a>

Infatti GitLab, si utilizza una GitLab connessione per accedere al provider di origine.

**Topics**
+ [

## Connect CodeBuild a GitLab
](#connections-gitlab)

## Connect CodeBuild a GitLab
<a name="connections-gitlab"></a>

Le connessioni consentono di autorizzare e stabilire configurazioni che associano il provider di terze parti all'utilizzo AWS delle risorse da parte dell'utente. AWS CodeConnections Per associare il tuo repository di terze parti come fonte per il tuo progetto di build, usi una connessione. 

Per aggiungere un provider GitLab di sorgenti gestito GitLab CodeBuild autonomamente, puoi scegliere tra: 
+ Utilizza la CodeBuild console, la procedura guidata di **creazione e compilazione del progetto** o la pagina **Modifica sorgente** per scegliere l'opzione **GitLab**o il provider **GitLab Self Managed**. Vedi [Crea una connessione a GitLab (console)](#connections-gitlab-console) per aggiungere il provider di origine. La console ti aiuta a creare una risorsa di connessioni.
+ Usa la CLI per creare le tue risorse di connessione, vedi [Creare una connessione a GitLab (CLI)](#connections-gitlab-cli) per creare una risorsa di connessioni con la CLI.

**Nota**  
**Puoi anche creare una connessione utilizzando la console Developer Tools in Impostazioni.** Vedi [Creare una connessione](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html).

**Nota**  
Autorizzando l'installazione di questa connessione in GitLab, concedi al nostro servizio le autorizzazioni per elaborare i tuoi dati accedendo al tuo account e puoi revocare le autorizzazioni in qualsiasi momento disinstallando l'applicazione.

### Crea una connessione a GitLab
<a name="connections-gitlab-create"></a>

Questa sezione descrive come connettersi GitLab a CodeBuild. Per ulteriori informazioni sulle connessioni GitLab , consulta [Connect CodeBuild a GitLab](#connections-gitlab).

Prima di iniziare:
+ Devi aver già creato un account con GitLab.
**Nota**  
Le connessioni forniscono l'accesso solo ai repository di proprietà dell'account utilizzato per creare e autorizzare la connessione. 
**Nota**  
È possibile creare connessioni a un repository in cui si ricopre il ruolo di **proprietario** e quindi la connessione può essere utilizzata con il repository con risorse come. GitLab CodeBuild Per i repository nei gruppi, non è necessario essere il proprietario del gruppo.
+ Per specificare una fonte per il progetto di compilazione, devi aver già creato un repository su. GitLab

**Topics**
+ [

#### Crea una connessione a GitLab (console)
](#connections-gitlab-console)
+ [

#### Creare una connessione a GitLab (CLI)
](#connections-gitlab-cli)

#### Crea una connessione a GitLab (console)
<a name="connections-gitlab-console"></a>

Segui questi passaggi per utilizzare la CodeBuild console e aggiungere una connessione per il tuo progetto (repository) in GitLab.

**Nota**  
Invece di creare o utilizzare una connessione esistente nel tuo account, puoi utilizzare una connessione condivisa da un altro AWS account. Per ulteriori informazioni, consulta [Condividere le connessioni con AWS gli account](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

**Per creare o modificare il tuo progetto di compilazione**

1. Accedi alla CodeBuild console.

1. Scegliere una delle seguenti opzioni.
   + Scegli di creare un progetto di compilazione. Segui i passaggi [Creare un progetto di compilazione (console)](create-project.md#create-project-console) per completare la prima schermata e nella sezione **Sorgente**, in **Source Provider**, scegli **GitLab**.
   + Scegli di modificare un progetto di build esistente. Scegliete **Modifica**, quindi scegliete **Fonte**. Nella pagina **Modifica sorgente**, in **Provider di origine**, scegli **GitLab**.

1. Seleziona una delle seguenti opzioni:
   + In **Connessione**, scegli **Connessione predefinita**. La connessione predefinita applica una GitLab connessione predefinita a tutti i progetti.
   + In **Connessione**, scegli **Connessione personalizzata**. La connessione personalizzata applica una GitLab connessione personalizzata che sostituisce le impostazioni predefinite dell'account.

1. Esegui una delle seguenti operazioni:
   + In **Connessione predefinita** o **Connessione personalizzata**, se non hai già creato una connessione al tuo provider, scegli **Crea una nuova GitLab** connessione. Procedi al passaggio 5 per creare la connessione.
   + In **Connessione**, se hai già creato una connessione al tuo provider, scegli la connessione. Procedi al passaggio 10.
**Nota**  
Se si chiude la finestra pop-up prima di creare una GitLab connessione, è necessario aggiornare la pagina.

1. Per creare una connessione a un GitLab repository, in **Seleziona un provider**, scegli. **GitLab** In **Connection name** (Nome connessione), immetti il nome della connessione che desideri creare. Scegliere **Connect to GitLab (Connetti ad Amazon Aurora)**.  
![\[Schermata della console che mostra l'opzione di connessione selezionata per. GitLab\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/connections-create-gitlab.png)

1. **Quando viene GitLab visualizzata la pagina di accesso, accedi con le tue credenziali, quindi scegli Accedi.**

1. Se è la prima volta che autorizzi la connessione, viene visualizzata una pagina di autorizzazione con un messaggio che richiede l'autorizzazione per la connessione per accedere al tuo account. GitLab 

   Seleziona **Authorize** (Autorizza).  
![\[Schermata che mostra il messaggio per autorizzare la connessione per il tuo account. GitLab\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/gitlab-authorization.png)

1. Il browser torna alla pagina della console delle connessioni. **Nelle impostazioni di GitLab connessione**, la nuova connessione viene mostrata in Nome **connessione.**

1. Scegli **Connetti**.

   Dopo che una GitLab connessione è stata creata con successo, nella parte superiore verrà visualizzato un banner di successo. 

1. Nella pagina **Crea progetto di compilazione**, nell'elenco a discesa **Connessione predefinita** o **Connessione personalizzata**, assicurati che l'ARN della connessione sia elencato. In caso contrario, scegli il pulsante di aggiornamento per farlo apparire.

1. In **Repository**, scegli il nome del tuo progetto in GitLab specificando il percorso del progetto con lo spazio dei nomi. Ad esempio, per un repository a livello di gruppo, inserisci il nome del repository nel seguente formato:. `group-name/repository-name` [Per ulteriori informazioni sul percorso e sullo spazio dei nomi, consultate il campo in api/projects.html\$1. `path_with_namespace` https://docs.gitlab.com/ee/ get-single-project](https://docs.gitlab.com/ee/api/projects.html#get-single-project) [Per ulteriori informazioni sullo spazio dei nomi in, vedi user/namespace/. GitLab https://docs.gitlab.com/ee/](https://docs.gitlab.com/ee/user/namespace/)
**Nota**  
Per i gruppi in GitLab, è necessario specificare manualmente il percorso del progetto con lo spazio dei nomi. Ad esempio, per un repository denominato `myrepo` in un gruppo`mygroup`, inserisci quanto segue:. `mygroup/myrepo` Puoi trovare il percorso del progetto con lo spazio dei nomi nell'URL in. GitLab

   

1. Nella **versione sorgente, facoltativa**, inserisci un ID di pull request, branch, commit ID, tag o riferimento e un ID di commit. Per ulteriori informazioni, consulta [Esempio di versione sorgente con AWS CodeBuild](sample-source-version.md).
**Nota**  
Ti consigliamo di scegliere nomi di branch Git che non assomiglino a commit IDs, come `811dd1ba1aba14473856cee38308caed7190c0d` o`5392f7`. Questo ti aiuta a evitare le collisioni tra i checkout di Git e i commit effettivi.

   

1. In **Git clone depth, opzionale**, puoi creare un clone poco profondo con una cronologia troncata al numero di commit specificato. Se si desidera un clone completo, selezionare **Full (Completo)**.

1. In **Build Status - opzionale**, seleziona **Segnala lo stato della build al fornitore di origine all'inizio e alla fine delle build se desideri che lo stato dell'inizio e del completamento** della build venga segnalato al tuo fornitore di origine.

   Per poter segnalare lo stato della build al provider di origine, l'utente associato al provider di origine deve avere accesso in scrittura al repository. Se l'utente non dispone dell'accesso in scrittura, lo stato della build non può essere aggiornato. Per ulteriori informazioni, consulta [Accesso al provider di origine](access-tokens.md).

#### Creare una connessione a GitLab (CLI)
<a name="connections-gitlab-cli"></a>

È possibile utilizzare AWS Command Line Interface (AWS CLI) per creare una connessione. 

Per farlo, utilizzare il comando **create-connection**. 

**Importante**  
Per impostazione predefinita, una connessione creata tramite AWS CLI o AWS CloudFormation è in `PENDING` stato. Dopo aver creato una connessione con la CLI o CloudFormation, utilizza la console per modificare la connessione e definirne lo stato. `AVAILABLE`

**Come creare una connessione**
+ Segui le istruzioni nella *Guida per l'utente della console Developer Tools* per [creare una connessione a GitLab (CLI](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-gitlab.html#connections-create-gitlab-cli)).

# Prevenzione del confused deputy tra servizi
<a name="cross-service-confused-deputy-prevention"></a>

Il problema confused deputy è un problema di sicurezza in cui un’entità che non dispone dell’autorizzazione per eseguire un’azione può costringere un’entità maggiormente privilegiata a eseguire l’azione. Nel frattempo AWS, l'impersonificazione tra servizi può portare alla confusione del vicesceriffo. La rappresentazione tra servizi può verificarsi quando un servizio (il *servizio chiamante*) effettua una chiamata a un altro servizio (il *servizio chiamato*). Il servizio chiamante può essere manipolato per utilizzare le proprie autorizzazioni e agire sulle risorse di un altro cliente, a cui normalmente non avrebbe accesso. Per evitare ciò, AWS fornisce strumenti per poterti a proteggere i tuoi dati per tutti i servizi con entità di servizio a cui è stato concesso l’accesso alle risorse del tuo account. 

Si consiglia di utilizzare [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)le chiavi di contesto della condizione [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globale nelle politiche delle risorse per limitare le autorizzazioni che AWS CodeBuild forniscono un altro servizio alla risorsa. Utilizzare `aws:SourceArn` se si desidera consentire l’associazione di una sola risorsa all’accesso tra servizi. Utilizzare `aws:SourceAccount` se si desidera consentire l’associazione di qualsiasi risorsa in tale account all’uso tra servizi.

Il modo più efficace per proteggersi dal problema “confused deputy” è quello di utilizzare la chiave di contesto della condizione globale `aws:SourceArn` con l’ARN completo della risorsa. Se non si conosce l’ARN completo della risorsa o si scelgono più risorse, utilizzare la chiave di contesto della condizione globale `aws:SourceArn` con caratteri jolly (`*`) per le parti sconosciute dell’ARN. Ad esempio, `arn:aws:codebuild:*:123456789012:*`. 

Se il valore `aws:SourceArn` non contiene l’ID account, ad esempio un ARN di un bucket Amazon S3, è necessario utilizzare entrambe le chiavi di contesto delle condizioni globali per limitare le autorizzazioni. 

Il valore di `aws:SourceArn` deve essere l' CodeBuild ARN del progetto.

L'esempio seguente mostra come utilizzare le chiavi di contesto `aws:SourceArn` e `aws:SourceAccount` global condition CodeBuild per evitare il confuso problema del vice.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "codebuild.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:codebuild:us-east-1:111122223333:project/MyProject"
                }
            }
        }
    ]
}
```

------