Autenticazione e controllo degli accessi per AWS CodeCommit - AWS CodeCommit

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 AWS Support 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 degli AWS SDK o utilizzando ().AWS Command Line InterfaceAWS 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 (IDE) supportano la clonazione, il push o il pulling with. git-remote-codecommit

    Come procedura ottimale, richiedi agli utenti umani, compresi gli utenti che richiedono l'accesso come amministratore, di utilizzare la federazione con un provider di identità per accedere Servizi AWS utilizzando credenziali temporanee.

    Un'identità federata è un utente dell'elenco utenti aziendale, un provider di identità Web AWS Directory Service, la directory Identity Center o qualsiasi utente che accede Servizi AWS utilizzando credenziali fornite tramite un'origine di identità. Quando le identità federate accedono Account AWS, assumono ruoli e i ruoli forniscono credenziali temporanee.

    Per la gestione centralizzata degli accessi, consigliamo di utilizzare AWS IAM Identity Center. Puoi creare utenti e gruppi in IAM Identity Center oppure puoi connetterti e sincronizzarti con un set di utenti e gruppi nella tua fonte di identità per utilizzarli su tutte le tue applicazioni. Account AWS Per ulteriori informazioni su IAM Identity Center, 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à interna all'utente Account AWS che dispone di autorizzazioni specifiche. È simile a un utente IAM, ma non è associato a una persona specifica. Puoi assumere temporaneamente un ruolo IAM in AWS Management Console cambiando ruolo. Puoi assumere un ruolo chiamando un'operazione AWS CLI o AWS API o utilizzando un URL personalizzato. Per ulteriori informazioni sui metodi per l'utilizzo dei ruoli, consulta Utilizzo di ruoli IAM nella Guida per l'utente IAM.

    I ruoli IAM con credenziali temporanee sono utili nelle seguenti situazioni:

    • Accesso utente federato: per assegnare le autorizzazioni a una identità federata, è possibile creare un ruolo e definire 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 Creazione di un ruolo per un provider di identità di terza parte nella Guida per l'utente IAM. Se utilizzi IAM Identity Center, configura 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 nella Guida per l'utente di AWS IAM Identity Center .

    • Autorizzazioni utente IAM temporanee: un utente IAM o un ruolo può assumere un ruolo IAM per ottenere temporaneamente autorizzazioni diverse per un'attività specifica.

    • Accesso multi-account: è possibile utilizzare un ruolo IAM per permettere a un utente (un principale affidabile) con un account diverso di accedere alle risorse nell'account. I ruoli sono lo strumento principale per concedere l'accesso multi-account. Tuttavia, con alcuni Servizi AWS, è possibile allegare una policy direttamente a una risorsa (anziché utilizzare un ruolo come proxy). Per conoscere la differenza tra ruoli e politiche basate sulle risorse per l'accesso tra account diversi, consulta Cross Account Resource Access in IAM nella IAM User Guide.

    • Accesso tra servizi: alcuni Servizi AWS utilizzano funzionalità in altri. Servizi AWS Ad esempio, quando effettui una chiamata in un servizio, è comune che tale servizio esegua applicazioni in Amazon EC2 o archivi oggetti in Amazon S3. Un servizio può eseguire questa operazione utilizzando le autorizzazioni dell'entità chiamante, utilizzando un ruolo di servizio o utilizzando un ruolo collegato al servizio.

      • Sessioni di accesso diretto (FAS): quando utilizzi un utente o un ruolo IAM per eseguire azioni AWS, sei considerato un principale. Quando si utilizzano alcuni servizi, è possibile eseguire un'operazione che attiva un'altra operazione in un servizio diverso. FAS utilizza le autorizzazioni del principale che chiama an Servizio AWS, combinate con la richiesta Servizio AWS per effettuare richieste ai servizi downstream. Le richieste FAS vengono effettuate solo quando un servizio riceve una richiesta che richiede interazioni con altri Servizi AWS o risorse per essere completata. In questo caso è necessario disporre delle autorizzazioni per eseguire entrambe le azioni. Per i dettagli delle policy relative alle richieste FAS, consulta la pagina Forward access sessions.

      • Ruolo di servizio: un ruolo di servizio è un ruolo IAM che un servizio assume per eseguire azioni per tuo conto. Un amministratore IAM può creare, modificare ed eliminare un ruolo di servizio dall'interno di IAM. Per ulteriori informazioni, consulta la sezione Creazione di un ruolo per delegare le autorizzazioni a un Servizio AWSnella Guida per l'utente IAM.

      • Ruolo collegato al servizio: un ruolo collegato al servizio è un tipo di ruolo di servizio collegato a un. Servizio AWS Il servizio può assumere il ruolo per eseguire un'azione per tuo conto. I ruoli collegati al servizio vengono visualizzati nel tuo account Account AWS e sono di proprietà del servizio. Un amministratore IAM può visualizzare le autorizzazioni per i ruoli collegati ai servizi, ma non modificarle.

    • Applicazioni in esecuzione su Amazon EC2: puoi utilizzare un ruolo IAM per gestire le credenziali temporanee per le applicazioni in esecuzione su un'istanza EC2 e che AWS CLI effettuano richieste API. AWS Ciò è preferibile all'archiviazione delle chiavi di accesso nell'istanza EC2. Per assegnare un AWS ruolo a un'istanza EC2 e renderlo disponibile per tutte le sue applicazioni, crei un profilo di istanza collegato all'istanza. Un profilo dell'istanza contiene il ruolo e consente ai programmi in esecuzione sull'istanza EC2 di ottenere le credenziali temporanee. Per ulteriori informazioni, consulta Utilizzo di un ruolo IAM per concedere autorizzazioni ad applicazioni in esecuzione su istanze di Amazon EC2 nella Guida per l'utente IAM.

    Per informazioni sull'utilizzo dei ruoli IAM, consulta Quando creare un ruolo IAM (invece di un utente) nella Guida per l'utente 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 aAWS CodeCommitcongit-remote-codecommit.

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

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 sugli ARN, consulta Amazon Resource Name (ARN) e spazi dei nomi dei servizi AWS nella 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:region:account-id:repository-name

Tutti i CodeCommit repository

arn:aws:codecommit:*

Tutti gli CodeCommit archivi di proprietà dell'account specificato nel campo specificato Regione AWS

arn:aws:codecommit:region:account-id:*

Nota

La maggior parte dei AWS servizi considera i due punti (:) o una barra (/) negli ARN come lo stesso carattere. 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, puoi indicare un repository specifico (MyDemoRepo) nella tua dichiarazione 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, utilizzate il carattere jolly (*) come segue:

"Resource": "arn:aws:codecommit:us-west-2:111111111111:*"

Per specificare tutte le risorse o se una determinata operazione API non supporta gli ARN, usa il carattere jolly (*) nell'elemento Resource 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:

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

    2. L'amministratore dell'account A attribuisce una policy di attendibilità al ruolo, identificando l'account B come il principale per tale ruolo.

    3. 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 seguente politica di esempio consente a un utente di creare un ramo in un repository denominato MyDemoRepo:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codecommit:CreateBranch" ], "Resource" : "arn:aws:codecommit:us-east-2:111111111111: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 su 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, gli SDK o chiamando direttamente tali API. AWS CLI Per concedere le autorizzazioni per queste operazioni API, CodeCommit definisce una serie di azioni che puoi specificare in una policy.

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 specificatoEffect, 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 tasti di condizione AWS-wide che è possibile utilizzare a seconda delle esigenze. Per un elenco completo delle chiavi AWS-wide, consulta Available Keys for Conditions nella IAM User Guide.