AWS CodeCommit non è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Scopri di più»
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à.
Autenticazione e controllo degli accessi per AWS CodeCommit
L'accesso a AWS CodeCommit richiede credenziali. Queste credenziali devono avere le autorizzazioni per accedere alle AWS risorse, come i CodeCommit repository, e al tuo utente IAM, che usi per gestire le tue credenziali Git o la chiave pubblica SSH che usi per creare connessioni Git. Le seguenti sezioni forniscono dettagli su come utilizzare AWS Identity and Access Management (IAM) e su come proteggere l' CodeCommit accesso alle risorse:
Autenticazione
Poiché i CodeCommit repository sono basati su Git e supportano le funzionalità di base di Git, incluse le credenziali Git, ti consigliamo di utilizzare un utente IAM quando lavori con. CodeCommit Puoi accedere CodeCommit con altri tipi di identità, ma gli altri tipi di identità sono soggetti a limitazioni, come descritto di seguito.
Tipi di identità:
-
Utente IAM: un utente IAM è un'identità all'interno del tuo account Amazon Web Services che dispone di autorizzazioni personalizzate specifiche. Ad esempio, un utente IAM può disporre delle autorizzazioni per creare e gestire le credenziali Git per l'accesso ai CodeCommit repository. Questo è il tipo di utente consigliato con cui lavorare. CodeCommit Puoi utilizzare un nome utente e una password IAM per accedere a AWS pagine Web sicure come AWS Discussion Forums
o Supporto AWS Center . AWS Management Console Puoi generare credenziali Git o associare chiavi pubbliche SSH al tuo utente IAM, oppure puoi installare e configurare. git-remote-codecommit Questi sono i modi più semplici per configurare Git in modo che funzioni con i tuoi CodeCommit repository. Con le credenziali Git, generi un nome utente e una password statici in IAM. Potrai quindi utilizzare queste credenziali per le connessioni HTTPS con Git e con qualsiasi strumento di terze parti che supporti l'autenticazione di nome utente e password Git. Con le connessioni SSH, crei file di chiave pubblici e privati sulla tua macchina locale che Git e Git CodeCommit utilizzano per l'autenticazione SSH. Associate la chiave pubblica al vostro utente IAM e memorizzate la chiave privata sul computer locale. git-remote-codecommitestende Git stesso e non richiede l'impostazione delle credenziali Git per l'utente.
Inoltre, puoi generare chiavi di accesso per ogni utente. Utilizza le chiavi di accesso quando accedi ai AWS servizi a livello di codice, tramite uno dei AWS SDKs o utilizzando il
AWS Command Line Interface ().AWS CLI L'SDK e gli strumenti CLI utilizzano le chiavi di accesso per firmare crittograficamente le tue richieste. Se non utilizzi gli AWS strumenti, devi firmare tu stesso le richieste. CodeCommit supporta Signature Version 4, un protocollo per l'autenticazione delle richieste API in entrata. Per ulteriori informazioni sulle richieste di autenticazione, consulta la pagina relativa al processo di firma Signature Version 4 nella Riferimenti generali di AWS. -
Utente root dell'account Amazon Web Services: quando ti registri AWS, fornisci un indirizzo e-mail e una password associati al tuo account Amazon Web Services. Si tratta delle tue credenziali root, che forniscono accesso completo a tutte le risorse AWS . Alcune CodeCommit funzionalità non sono disponibili per gli utenti con account root. Inoltre, l'unico modo per usare Git con il tuo account root è installare e configurare git-remote-codecommit (consigliato) o configurare l'helper per AWS le credenziali, incluso in. AWS CLI Non puoi usare credenziali Git o coppie di chiavi SSH pubbliche-private con il tuo utente dell'account root. Per questi motivi, non è consigliabile utilizzare l'utente dell'account root per interagire con. CodeCommit
Importante
Per ragioni di sicurezza, consigliamo di utilizzare le credenziali root solo per creare un utente amministratore, ovvero un utente IAM con autorizzazioni complete per il tuo account AWS . Potrai quindi utilizzare questo utente amministratore per creare altri utenti e ruoli IAM con autorizzazioni limitate. Per ulteriori informazioni consulta Best practice IAM e l'argomento relativo alla creazione di un gruppo e un utente admin nella Guida per l'utente IAM.
-
IAM Identity Center e utenti in IAM Identity Center: AWS IAM Identity Center amplia le funzionalità di AWS Identity and Access Management per fornire una posizione centrale che riunisce l'amministrazione degli utenti e il loro accesso alle applicazioni Account AWS cloud. Sebbene sia consigliata come best practice per la maggior parte degli utenti con cui lavora AWS, IAM Identity Center attualmente non fornisce meccanismi per credenziali Git o coppie di chiavi SSH. Questi utenti possono installare e configurare gli CodeCommit archivi per git-remote-codecommit clonare localmente, ma non tutti gli ambienti di sviluppo integrati (IDEs) supportano la clonazione, il push o il pulling with. git-remote-codecommit
Come best practice, richiedi agli utenti umani di utilizzare la federazione con un provider di identità per accedere utilizzando credenziali temporanee. Servizi AWS
Un'identità federata è un utente della directory aziendale, del provider di identità Web o AWS Directory Service che accede Servizi AWS utilizzando le credenziali di una fonte di identità. Le identità federate assumono ruoli che forniscono credenziali temporanee.
Per la gestione centralizzata degli accessi, consigliamo. AWS IAM Identity Center Per ulteriori informazioni, consulta Cos'è IAM Identity Center? nella Guida per l'utente di AWS IAM Identity Center .
-
Ruolo IAM: come un utente IAM, un ruolo IAM è un'identità IAM che puoi creare nel tuo account per concedere autorizzazioni specifiche.
Un ruolo IAM è un'identità con autorizzazioni specifiche che fornisce credenziali temporanee. Puoi assumere un ruolo passando da un utente a un ruolo IAM (console) o chiamando un'operazione AWS CLI o AWS API. Per ulteriori informazioni, consulta Metodi per assumere un ruolo nella Guida per l'utente IAM.
I ruoli IAM sono utili per l'accesso federato degli utenti, le autorizzazioni utente IAM temporanee, l'accesso tra account, l'accesso tra servizi e le applicazioni in esecuzione su Amazon. EC2 Per maggiori informazioni, consultare Accesso a risorse multi-account in IAM nella Guida per l’utente di IAM.
Nota
Non puoi usare credenziali Git o coppie di chiavi SSH pubbliche-private con gli utenti federati. Inoltre, le preferenze utente non sono disponibili per gli utenti federati. Per informazioni su come configurare le connessioni utilizzando l'accesso federato, consulta Passaggi di configurazione per le connessioni HTTPS a AWS CodeCommit con git-remote-codecommit.
Controllo degli accessi
È possibile disporre di credenziali valide per autenticare le richieste, ma a meno che non si disponga delle autorizzazioni necessarie non è possibile creare o accedere alle risorse. CodeCommit Ad esempio, devi avere le autorizzazioni necessarie per visualizzare repository, eseguire il push del codice, creare e gestire le credenziali Git e così via.
Le seguenti sezioni descrivono come gestire le autorizzazioni per. CodeCommit Consigliamo di leggere prima la panoramica.
Panoramica della gestione delle autorizzazioni di accesso alle risorse CodeCommit
Ogni AWS risorsa è di proprietà di un account Amazon Web Services. Le autorizzazioni per creare o accedere a una risorsa sono regolate dalle policy di autorizzazione. Un amministratore dell'account è in grado di collegare le policy relative alle autorizzazioni alle identità IAM (ovvero utenti, gruppi e ruoli). Alcuni servizi, ad esempio AWS Lambda, supportano anche l'associazione di politiche di autorizzazione alle risorse.
Nota
Un amministratore account (o un utente amministratore) è un utente con privilegi di amministratore. Per ulteriori informazioni, consulta Best practice IAM nella Guida per l'utente di IAM.
Quando si concedono le autorizzazioni, si indicano i destinatari, le risorse a cui si concedono e le operazioni specifiche da consentire su tali risorse.
Argomenti
CodeCommit risorse e operazioni
Nel CodeCommit, la risorsa principale è un repository. A ogni risorsa è associato un Amazon Resource Name (ARN) univoco. In una policy, devi utilizzare un Amazon Resource Name (ARN) per identificare la risorsa a cui si applica la policy stessa. Per ulteriori informazioni su ARNs, consulta Amazon Resource Names (ARN) e AWS Service Namespaces in. Riferimenti generali di Amazon Web Services CodeCommit attualmente non supporta altri tipi di risorse, denominate sottorisorse.
La tabella seguente descrive come specificare le CodeCommit risorse.
| Tipo di risorsa | Formato ARN |
|---|---|
| Repository |
arn:aws:codecommit::: |
|
Tutti i CodeCommit repository |
arn:aws:codecommit:* |
|
Tutti gli CodeCommit archivi di proprietà dell'account specificato nel campo specificato Regione AWS |
arn:aws:codecommit::: * |
Nota
La maggior parte AWS dei servizi considera i due punti (:) o una barra (/) come lo stesso carattere. ARNs Tuttavia, CodeCommit richiede una corrispondenza esatta nei modelli e nelle regole delle risorse. Durante la creazione di modelli di eventi, assicurati di utilizzare i caratteri ARN corretti, facendo in modo che corrispondano alla sintassi ARN nella risorsa.
Ad esempio, nella tua dichiarazione puoi specificare un determinato repository (MyDemoRepo) utilizzando il relativo ARN come segue:
"Resource": "arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo"
Per specificare tutti i repository che appartengono a un account specifico, usa il carattere jolly (*) come segue:
"Resource": "arn:aws:codecommit:us-west-2:111111111111:*"
Per specificare tutte le risorse, o se un'azione API specifica non supporta ARNs, utilizzate il carattere jolly (*) nell'Resourceelemento come segue:
"Resource": "*"
Puoi usare il carattere jolly (*) anche per specificare tutte le risorse che corrispondono a una parte del nome di un repository. Ad esempio, il seguente ARN specifica qualsiasi CodeCommit repository che inizia con il nome MyDemo e che è registrato nell'account Amazon Web Services in: 111111111111 us-east-2 Regione AWS
arn:aws:codecommit:us-east-2:111111111111:MyDemo*
Per un elenco delle operazioni disponibili che funzionano con le CodeCommit risorse, consulta. Riferimento per le autorizzazioni CodeCommit
Informazioni sulla proprietà delle risorse
L'account Amazon Web Services possiede le risorse create nell'account, indipendentemente da chi le ha create. In particolare, il proprietario della risorsa è l'account Amazon Web Services dell'entità principale (ovvero l'account root, un utente IAM o un ruolo IAM) che autentica la richiesta di creazione della risorsa. Negli esempi seguenti viene illustrato il funzionamento:
-
Se crei un utente IAM nel tuo account Amazon Web Services e concedi le autorizzazioni per creare CodeCommit risorse a quell'utente, l'utente può creare CodeCommit risorse. Tuttavia, il tuo account Amazon Web Services, a cui appartiene l'utente, possiede le CodeCommit risorse.
-
Se utilizzi le credenziali dell'account root del tuo account Amazon Web Services per creare una regola, il tuo account Amazon Web Services è il proprietario della CodeCommit risorsa.
-
Se crei un ruolo IAM nel tuo account Amazon Web Services con le autorizzazioni per creare CodeCommit risorse, chiunque possa assumere il ruolo può creare CodeCommit risorse. Il tuo account Amazon Web Services, a cui appartiene il ruolo, possiede le CodeCommit risorse.
Gestione dell'accesso alle risorse
Per gestire l'accesso alle AWS risorse, si utilizzano le politiche di autorizzazione. La policy delle autorizzazioni descrive chi ha accesso a cosa. La sezione che segue spiega le opzioni per la creazione di policy relative alle autorizzazioni.
Nota
Questa sezione illustra l'utilizzo di IAM nel contesto di. CodeCommit Non vengono fornite informazioni dettagliate sul servizio IAM. Per ulteriori informazioni su IAM, consulta Che cos'è IAM? nella Guida per l'utente di IAM. Per informazioni sulla sintassi delle policy IAM e le rispettive descrizioni, consulta Riferimento alle policy IAM di nella Guida per l'utente di IAM.
Le politiche di autorizzazione allegate a un'identità IAM sono denominate politiche basate sull'identità (politiche IAM). Le policy di autorizzazione collegate a una risorsa sono definite policy basate su risorse. Attualmente, CodeCommit supporta solo politiche basate sull'identità (politiche IAM).
Policy basate su identità (policy IAM)
Per gestire l'accesso alle AWS risorse, alleghi le politiche di autorizzazione alle identità IAM. In CodeCommit, utilizzi policy basate sull'identità per controllare l'accesso ai repository. Ad esempio, puoi eseguire le operazioni seguenti:
-
Allega una politica di autorizzazioni a un utente o a un gruppo del tuo account: per concedere a un utente l'autorizzazione a visualizzare le CodeCommit risorse nella CodeCommit console, allega una politica di autorizzazioni basata sull'identità a un utente o gruppo a cui appartiene l'utente.
-
Associare un criterio di autorizzazione a un ruolo (per concedere autorizzazioni su più account): la delega, ad esempio quando si desidera concedere l'accesso a più account, implica la creazione di un trust tra l'account proprietario della risorsa (l'account di fiducia) e l'account che contiene gli utenti che devono accedere alla risorsa (l'account affidabile). Una policy di autorizzazione concede all'utente con un ruolo le autorizzazioni necessarie per eseguire le attività previste sulla risorsa. Una policy di attendibilità specifica quali account attendibili possono concedere ai propri utenti le autorizzazioni per assumere il ruolo. Per ulteriori informazioni, consulta IAM Terms and Concepts.
Per concedere autorizzazioni su più account, collega una policy di autorizzazioni basata sull'identità a un ruolo IAM. Ad esempio, l'amministratore dell'Account A può creare un ruolo per concedere autorizzazioni su più account a un altro account Amazon Web Services (ad esempio, Account B) o a un AWS servizio come segue:
-
L'amministratore dell'account A crea un ruolo IAM e attribuisce una policy di autorizzazione al ruolo che concede le autorizzazioni sulle risorse per l'account A.
-
L'amministratore dell'account A attribuisce una policy di attendibilità al ruolo, identificando l'account B come il principale per tale ruolo.
-
L'amministratore dell'Account B può quindi delegare le autorizzazioni per assumere il ruolo a qualsiasi utente dell'Account B. In questo modo gli utenti dell'Account B possono creare o accedere alle risorse dell'Account A. Se si desidera concedere un'autorizzazione di AWS servizio per assumere il ruolo, il responsabile nella politica di fiducia può anche essere un responsabile del AWS servizio. Per ulteriori informazioni, consulta Delegation in IAM Terms and Concepts.
Per ulteriori informazioni sull'uso di IAM per delegare le autorizzazioni, consulta Access Management nella IAM User Guide (Guida per l'utente di IAM).
-
La policy di esempio riportata di seguito consente a un utente di creare un ramo in un repository denominato MyDemoRepo:
Per limitare le chiamate e le risorse a cui hanno accesso gli utenti del tuo account, crea policy IAM specifiche e poi collega tali policy agli utenti IAM. Per ulteriori informazioni su come creare ruoli IAM e per scoprire esempi di dichiarazioni di policy IAM CodeCommit, consultaEsempi di politiche di identità gestite dai clienti.
Policy basate sulle risorse
Alcuni servizi, come Amazon S3, supportano anche politiche di autorizzazione basate sulle risorse. Ad esempio, puoi allegare una policy basata sulle risorse a un bucket S3 per gestire le autorizzazioni di accesso a quel bucket. CodeCommit non supporta le politiche basate sulle risorse, ma puoi utilizzare i tag per identificare le risorse, che puoi quindi utilizzare nelle politiche IAM. Per un esempio di policy basate su tag, consulta Policy basate su identità (policy IAM).
Ambito delle risorse in CodeCommit
In CodeCommit, è possibile definire l'ambito delle politiche e delle autorizzazioni basate sull'identità per le risorse, come descritto in. CodeCommit risorse e operazioni Non è però possibile limitare l'ambito dell'autorizzazione ListRepositories a una risorsa. Il suo ambito deve invece includere tutte le risorse (usando il carattere jolly *). In caso contrario, l'operazione ha esito negativo.
Tutte le altre CodeCommit autorizzazioni possono essere limitate alle risorse.
Definizione degli elementi delle policy: risorse, operazioni, effetti ed entità principali
Puoi creare policy per consentire o negare agli utenti l'accesso alle risorse o consentire o negare agli utenti di intraprendere azioni specifiche su tali risorse. CodeCommit definisce una serie di operazioni API pubbliche che definiscono il modo in cui gli utenti utilizzano il servizio, tramite la CodeCommit console SDKs, il AWS CLI, o chiamandole direttamente. APIs Per concedere le autorizzazioni per queste operazioni API, CodeCommit definisce una serie di azioni che è possibile specificare in una politica.
Alcune operazioni API possono richiedere le autorizzazioni per più operazioni. Per ulteriori informazioni sulle risorse e sulle operazioni delle API, consulta CodeCommit risorse e operazioni e Riferimento per le autorizzazioni CodeCommit.
Di seguito sono elencati gli elementi di base di una policy:
-
Risorsa: per identificare la risorsa a cui si applica la policy, utilizzi un Amazon Resource Name (ARN). Per ulteriori informazioni, consulta CodeCommit risorse e operazioni.
-
Azione: per identificare le operazioni sulle risorse che desideri consentire o negare, utilizzi parole chiave di azione. Ad esempio, a seconda di quanto specificato
Effect, l'codecommit:GetBranchautorizzazione consente o nega all'utente di eseguire l'GetBranchoperazione, che consente di ottenere dettagli su una filiale in un CodeCommit repository. -
Effetto: si specifica l'effetto, consentito o negato, che si verifica quando l'utente richiede l'azione specifica. USe non concedi esplicitamente (consenti) l'accesso a una risorsa, l'accesso viene implicitamente rifiutato. Puoi anche rifiutare esplicitamente l'accesso a una risorsa per fare in modo che un utente non possa accedervi, anche se un'altra policy concede l'accesso.
-
Principal: nelle politiche basate sull'identità (politiche IAM), l'unico tipo di policy che CodeCommit supporta, l'utente a cui è associata la policy è il principale implicito.
Per ulteriori informazioni sulla sintassi delle policy IAM, consulta IAM Policy Reference nella IAM User Guide.
Per una tabella che mostra tutte le azioni CodeCommit API e le risorse a cui si applicano, consultaRiferimento per le autorizzazioni CodeCommit.
Specifica delle condizioni in una policy
Quando concedi le autorizzazioni, utilizzi il linguaggio delle policy di accesso per IAM per specificare le condizioni in base alle quali una policy deve avere effetto. Ad esempio, potresti decidere che una policy venga applicata solo dopo una data specifica. Per ulteriori informazioni sulla specificazione delle condizioni in un linguaggio di policy, consulta Condition and Policy Grammar nella IAM User Guide.
Per esprimere le condizioni è necessario utilizzare chiavi di condizione predefinite. Non esistono chiavi di condizione specifiche per CodeCommit. Tuttavia, ci sono chiavi di condizione AWS-wide che puoi usare a seconda delle esigenze. Per un elenco completo delle chiavi AWS-wide, consulta Available Keys for Conditions nella IAM User Guide.