

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

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

In quanto servizio gestito, è 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 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à.

CodeCommit i repository vengono crittografati automaticamente quando sono inattivi. Non è richiesta alcuna azione del cliente. CodeCommit crittografa anche i dati del repository in transito. È possibile utilizzare il protocollo HTTPS, il protocollo SSH o entrambi con CodeCommit i repository. Per ulteriori informazioni, consulta [Configurazione per AWS CodeCommit](setting-up.md). Puoi anche configurare l'[accesso ai repository da più account](cross-account.md). CodeCommit 

**Topics**
+ [AWS Key Management Service e crittografia per i AWS CodeCommit repository](encryption.md)
+ [Connessione ai AWS CodeCommit repository con credenziali rotanti](temporary-access.md)

# AWS Key Management Service e crittografia per i AWS CodeCommit repository
<a name="encryption"></a>

I dati nei CodeCommit repository vengono crittografati in transito e a riposo. Quando i dati vengono inseriti in un CodeCommit repository (ad esempio, chiamando**git push**), CodeCommit crittografa i dati ricevuti man mano che vengono archiviati nel repository. Quando i dati vengono estratti da un CodeCommit repository (ad esempio, effettuando una chiamata**git pull**), li CodeCommit decripta e quindi li invia al chiamante. Ciò presuppone che l'utente IAM associato alla richiesta push o pull sia stato autenticato da. AWS I dati inviati o ricevuti vengono trasmessi mediante i protocolli di rete crittografati HTTPS o SSH.

Puoi utilizzare una chiave Chiave gestita da AWS o una chiave gestita dal cliente per crittografare e decrittografare i dati nel tuo repository. Per ulteriori informazioni sulle differenze tra le chiavi gestite dal cliente e Chiavi gestite da AWS, consulta [Customer](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt) managed keys e. Chiavi gestite da AWS Se non specifichi una chiave gestita dal cliente, CodeCommit utilizzerà una Chiave gestita da AWS per crittografare e decrittografare i dati nel tuo repository. Questo Chiave gestita da AWS viene creato automaticamente per te nel tuo. Account AWS La prima volta che crei un CodeCommit repository in un nuovo Regione AWS account Amazon Web Services, se non specifichi una chiave gestita dal cliente, CodeCommit crea una Chiave gestita da AWS (la `aws/codecommit` chiave) nello stesso account Regione AWS in AWS Key Management Service (AWS KMS). Questa `aws/codecommit` chiave viene utilizzata solo da CodeCommit. È memorizzato nel tuo account Amazon Web Services. A seconda di ciò che specifichi, CodeCommit utilizza la chiave gestita dal cliente o Chiave gestita da AWS per crittografare e decrittografare i dati nel repository. 

**Importante**  
 CodeCommit esegue le seguenti AWS KMS azioni sulla AWS KMS chiave utilizzata per crittografare e decrittografare i dati in un repository. Se si utilizza un Chiave gestita da AWS, un utente non necessita di autorizzazioni esplicite per queste azioni, ma non deve disporre di politiche allegate che neghino tali azioni per la chiave. `aws/codecommit` Se utilizzi una chiave gestita dal cliente con un Account AWS ID impostato come criterio principale per quella chiave, queste autorizzazioni devono essere impostate esplicitamente su. `allow` In particolare, quando si crea il primo repository e si aggiornano le chiavi per il repository, non è necessario impostare nessuna delle seguenti autorizzazioni `deny` se si utilizza un Chiave gestita da AWS, e devono essere impostate su `allow` se si utilizza una chiave gestita dal cliente con un criterio principale:  
`"kms:Encrypt"`
`"kms:Decrypt"`
`"kms:ReEncrypt"`(a seconda del contesto, ciò potrebbe richiedere, `kms:ReEncryptFrom`   
`kms:ReEncryptTo`, o `kms:ReEncrypt*` non impostato per negare)
`"kms:GenerateDataKey"`
`"kms:GenerateDataKeyWithoutPlaintext"`
`"kms:DescribeKey"`

Se si desidera utilizzare la propria chiave gestita dal cliente, la chiave deve essere disponibile nel luogo in Regione AWS cui si trova l'archivio. CodeCommit supporta l'utilizzo di chiavi gestite dal cliente sia singole che multiregionali. Sebbene siano supportati tutti i principali tipi di origine dei materiali, consigliamo di utilizzare l'opzione **KMS** predefinita. I clienti che utilizzano l'opzione **External Key Store** potrebbero subire ritardi da parte del fornitore del negozio. Inoltre. CodeCommit presenta i seguenti requisiti per le chiavi gestite dal cliente:
+ CodeCommit supporta solo l'utilizzo di chiavi simmetriche.
+ Il tipo di utilizzo della chiave deve essere impostato su Encrypt and **decrypt**.

[Per ulteriori informazioni sulla creazione di chiavi gestite dal cliente, consulta [Concetti](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt) e creazione di chiavi.](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)

Per visualizzare le informazioni sul file Chiave gestita da AWS generato da CodeCommit, procedi come segue:

1. Accedi a Console di gestione AWS e apri la console AWS Key Management Service (AWS KMS) in [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Per modificare il Regione AWS, usa il selettore della regione nell'angolo in alto a destra della pagina.

1. Nel riquadro di navigazione del servizio, scegli. **Chiavi gestite da AWS** Assicurati di aver effettuato l'accesso al sito in Regione AWS cui desideri rivedere le chiavi. 

1. Nell'elenco delle chiavi di crittografia, scegli Chiave gestita da AWS con l'alias **aws/codecommit**. Vengono visualizzate le informazioni di base su. Chiave di proprietà di AWS 

Non è possibile modificarlo o eliminarlo Chiave gestita da AWS. 

## Come vengono utilizzati gli algoritmi di crittografia per crittografare i dati del repository
<a name="encryption-algorithms"></a>

CodeCommit utilizza due approcci diversi per la crittografia dei dati. I singoli oggetti Git sotto 6 MB vengono crittografati utilizzando AES-GCM-256, che fornisce la convalida dell'integrità dei dati. Gli oggetti tra 6 MB e un massimo di 2 GB per un singolo blob vengono crittografati utilizzando AES-CBC-256. CodeCommit convalida sempre il contesto di crittografia.

## Contesto di crittografia
<a name="encryption-context"></a>

Ogni servizio integrato con AWS KMS specifica un contesto di crittografia per le operazioni di crittografia e decrittografia. Il contesto di crittografia rappresenta informazioni autenticate supplementari utilizzate da AWS KMS per verificare l'integrità dei dati. Se specificato per l'operazione di crittografia, deve anche essere specificato nell'operazione di decrittografia. In caso contrario, la decrittografia non riesce. CodeCommit utilizza l'ID del CodeCommit repository per il contesto di crittografia. È possibile utilizzare il **get-repository** comando o la CodeCommit console per trovare l'ID del repository. Cerca l'ID del CodeCommit repository nei AWS CloudTrail log per capire quali operazioni di crittografia sono state eseguite su quale chiave per crittografare o AWS KMS decrittografare i dati nel repository. CodeCommit 

[Per ulteriori informazioni in merito, consulta la Guida per gli sviluppatori AWS KMS.AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/)

# Connessione ai AWS CodeCommit repository con credenziali rotanti
<a name="temporary-access"></a>

Puoi consentire agli utenti di accedere ai tuoi AWS CodeCommit repository senza configurare gli utenti IAM per loro o utilizzare una chiave di accesso e una chiave segreta. Per assegnare le autorizzazioni a un'identità federata, crei un ruolo e definisci le autorizzazioni per il ruolo. Quando un’identità federata viene autenticata, l’identità viene associata al ruolo e ottiene le autorizzazioni da esso definite. Per ulteriori informazioni sulla federazione dei ruoli, consulta [ Creare un ruolo per un provider di identità di terze parti (federazione)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) nella *Guida per l'utente IAM*. Se si utilizza IAM Identity Center, configurare un set di autorizzazioni. IAM Identity Center mette in correlazione il set di autorizzazioni con un ruolo in IAM per controllare a cosa possono accedere le identità dopo l’autenticazione. Per informazioni sui set di autorizzazioni, consulta [Set di autorizzazioni](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) nella *Guida per l’utente di AWS IAM Identity Center *. Puoi anche configurare l'accesso basato sui ruoli per consentire agli utenti IAM di accedere ai CodeCommit repository in account Amazon Web Services separati (una tecnica nota come accesso *tra* account). Per una panoramica della configurazione dell'accesso tra account a un repository, consulta [Configura l'accesso tra account a un AWS CodeCommit repository utilizzando i ruoli](cross-account.md). 

Puoi anche configurare l'accesso per gli utenti che desiderano o devono effettuare l'autenticazione tramite metodi quali:
+ Security Assertion Markup Language (SAML)
+ Autenticazione a più fattori (MFA)
+ Federazione
+ Login with Amazon
+ Amazon Cognito
+ Facebook
+ Google
+ Provider di identità compatibile con OpenID Connect (OIDC)

**Nota**  
Le seguenti informazioni si applicano solo all'uso **git-remote-codecommit** o all'helper delle AWS CLI credenziali per la connessione ai repository. CodeCommit Poiché l'approccio consigliato per l'accesso temporaneo o federato CodeCommit è l'impostazione**git-remote-codecommit**, questo argomento fornisce esempi di utilizzo di tale utilità. Per ulteriori informazioni, consulta [Passaggi di configurazione per le connessioni HTTPS a AWS CodeCommit con git-remote-codecommit](setting-up-git-remote-codecommit.md).   
Non è possibile utilizzare credenziali SSH o Git e HTTPS per connettersi ai CodeCommit repository con credenziali di accesso rotanti o temporanee. 

Non è necessario completare queste fasi se sono soddisfatti tutti i seguenti requisiti:
+ Hai effettuato l'accesso a un'istanza Amazon EC2.
+ Stai utilizzando Git e HTTPS con l'helper delle AWS CLI credenziali per connetterti dall'istanza Amazon EC2 ai repository. CodeCommit 
+ L'istanza Amazon EC2 ha un profilo di istanza IAM collegato che contiene le autorizzazioni di accesso descritte in o. [Per connessioni HTTPS su Linux, macOS o Unix con l'helper delle credenziali AWS CLI ](setting-up-https-unixes.md) [Per le connessioni HTTPS su Windows con l'helper per le credenziali AWS CLI ](setting-up-https-windows.md)
+ Hai installato e configurato l'helper per le credenziali Git sull'istanza Amazon EC2, come descritto in o. [Per connessioni HTTPS su Linux, macOS o Unix con l'helper delle credenziali AWS CLI ](setting-up-https-unixes.md) [Per le connessioni HTTPS su Windows con l'helper per le credenziali AWS CLI ](setting-up-https-windows.md)

Le istanze Amazon EC2 che soddisfano i requisiti precedenti sono già configurate per comunicare credenziali di accesso temporanee per tuo conto. CodeCommit 

**Nota**  
Puoi configurare e utilizzare **git-remote-codecommit** su istanze Amazon EC2.

Per consentire agli utenti l'accesso temporaneo ai tuoi CodeCommit repository, completa i seguenti passaggi.



## Fase 1: completamento dei prerequisiti
<a name="temporary-access-prerequisites"></a>

Completa i passaggi di configurazione per fornire a un utente l'accesso ai tuoi CodeCommit repository utilizzando credenziali rotanti: 
+ Per l'accesso su più account, consulta [Procedura dettagliata: delega dell'accesso tra account Amazon Web Services utilizzando](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-walkthrough-crossacct.html) ruoli IAM e. [Configura l'accesso tra account a un AWS CodeCommit repository utilizzando i ruoli](cross-account.md)
+ [Per SAML e federazione, consulta [Utilizzo del sistema di autenticazione dell'organizzazione per concedere l'accesso alle AWS risorse](https://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#IdentityBrokerApplication) e Informazioni sulla federazione basata su SAML 2.0. AWS STS](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html)
+ Per l'MFA, consulta [Utilizzo di dispositivi Multi-Factor Authentication (MFA) AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingMFA.html) con [e creazione di credenziali di sicurezza temporanee](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSessionTokens.html) per abilitare l'accesso per gli utenti IAM.
+ [Per Login with Amazon, Amazon Cognito, Facebook, Google o qualsiasi provider di identità compatibile con OIDC, consulta Informazioni su Web Identity Federation. AWS STS](https://docs.aws.amazon.com/STS/latest/UsingSTS/web-identity-federation.html)

Utilizza le informazioni in [Autenticazione e controllo degli accessi per AWS CodeCommit](auth-and-access-control.md) per specificare le CodeCommit autorizzazioni che desideri concedere all'utente.

## Fase 2: Ottenere il nome del ruolo o le credenziali di accesso
<a name="temporary-access-get-credentials"></a>

Se desideri che gli utenti accedano ai repository assumendo un ruolo, fornisci agli utenti l'Amazon Resource Name (ARN) del ruolo. In caso contrario, a seconda del modo in cui hai configurato l'accesso, l'utente può ottenere la rotazione delle credenziali in uno dei seguenti modi:
+ Per l'accesso su più account, chiama il comando AWS CLI [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) o chiama l'API. AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
+ [Per SAML, chiama il AWS CLI[assume-role-with-saml](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html)comando o l'API SAML. AWS STS AssumeRoleWith](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)
+ Per la federazione, chiama AWS CLI [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) o commands o o [get-federation-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html). AWS STS [AssumeRole[GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) APIs
+ Per l'MFA, chiama il AWS CLI [get-session-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html)comando o l' AWS STS [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html)API.
+ Per Login with Amazon, Amazon Cognito, Facebook, Google o qualsiasi provider di identità compatibile con OIDC, chiama il comando AWS CLI [assume-role-with-web-identity](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) o l'API. AWS STS [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)



## Passaggio 3: installa e configura git-remote-codecommit AWS CLI
<a name="temporary-access-configure-credentials"></a>

È necessario configurare il computer locale per utilizzare le credenziali di accesso installando [https://pypi.org/project/git-remote-codecommit/](https://pypi.org/project/git-remote-codecommit/) e configurando un profilo nell' AWS CLI.

1. Segui le istruzioni in [Configurazione ](setting-up.md) per configurare la AWS CLI. Utilizza il comando **aws configure** per configurare uno o più profili. Prendi in considerazione la creazione di un profilo denominato da utilizzare quando ti connetti ai CodeCommit repository utilizzando credenziali rotanti.

1. È possibile associare le credenziali al profilo AWS CLI denominato dell'utente in uno dei seguenti modi. 
   + Se stai assumendo un ruolo per accedere CodeCommit, configura un profilo denominato con le informazioni necessarie per assumere quel ruolo. Ad esempio, se desideri assumere un ruolo denominato *CodeCommitAccess* nell'account Amazon Web Services 1111, puoi configurare un profilo predefinito da utilizzare quando lavori con altre AWS risorse e un profilo denominato da utilizzare quando assumi quel ruolo. I seguenti comandi creano un profilo denominato *CodeAccess* che assume un ruolo denominato. *CodeCommitAccess* Il nome utente *Maria\$1Garcia* è associato alla sessione e il profilo predefinito è impostato come origine delle relative AWS credenziali:

     ```
     aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess
     aws configure set source_profile default --profile CodeAccess
     aws configure set role_session_name "Maria_Garcia" --profile CodeAccess
     ```

     Per verificare le modifiche, visualizza o modifica manualmente il file `~/.aws/config` (per Linux) o il file `%UserProfile%.aws\config` (per Windows) e rivedi le informazioni sotto il profilo con nome. Il file ad esempio potrebbe essere simile al seguente.

     ```
     [default]
     region = us-east-1
     output = json
     
     [profile CodeAccess]
     source_profile = default
     role_session_name = Maria_Garcia
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     ```

      Dopo aver configurato il profilo con nome, è possibile clonare i repository CodeCommit con l'utilità **git-remote-codecommit** utilizzando il profilo con nome. Ad esempio, per clonare un repository con nome *MyDemoRepo*: 

     ```
     git clone codecommit://CodeAccess@MyDemoRepo
     ```
   + Se utilizzi la federazione delle identità web e OpenID Connect (OIDC), configura un profilo denominato che effettui la chiamata `AssumeRoleWithWebIdentity` API AWS Security Token Service (AWS STS) per tuo conto per aggiornare le credenziali temporanee. Utilizzate il **aws configure set** comando o modificate manualmente il `~/.aws/credentials` file (per Linux) o il `%UserProfile%.aws\credentials` file (per Windows) per aggiungere un profilo AWS CLI denominato con i valori di impostazione richiesti. Ad esempio, per creare un profilo che assuma il *CodeCommitAccess* ruolo e utilizzi un file di token di identità Web *my-credentials* */my-token-file* \$1/:

     ```
     [CodeCommitWebIdentity]
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     web_identity_token_file=~/my-credentials/my-token-file
     role_session_name = Maria_Garcia
     ```

   *Per ulteriori informazioni, consulta [Configurazione AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) e [utilizzo di un ruolo IAM nella Guida per l' AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)utente.AWS Command Line Interface *

## Fase 4: Accedere ai repository CodeCommit
<a name="temporary-access-use-credentials"></a>

Supponendo che l'utente abbia seguito le istruzioni per connettersi [Connessione a un repository](how-to-connect.md) ai CodeCommit repository, l'utente utilizza quindi le funzionalità estese fornite da e **git-remote-codecommit** Git per chiamare **git clone** e **git pull** clonare, inviare ed estrarre i CodeCommit repository a cui ha accesso. **git push** Ad esempio, per clonare un repository:

```
git clone codecommit://CodeAccess@MyDemoRepo
```

I comandi Git commit, push e pull utilizzano la sintassi Git regolare. 

Quando l'utente utilizza AWS CLI e specifica il profilo AWS CLI denominato associato alle credenziali di accesso rotanti, vengono restituiti i risultati relativi a quel profilo.

