Autenticazione e controllo degli accessi per AWS CodeCommit - AWS CodeCommit

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 gli CodeCommit archivi, e al tuo IAM utente, che usi per gestire le tue credenziali Git o alla chiave SSH pubblica che usi per creare connessioni Git. Le seguenti sezioni forniscono dettagli su come utilizzare AWS Identity and Access Management (IAM) e CodeCommit su come proteggere l'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 IAM utente 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à:

  • IAMutente: un IAMutente è un'identità all'interno del tuo account Amazon Web Services che dispone di autorizzazioni personalizzate specifiche. Ad esempio, un IAM utente 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 È possibile utilizzare un nome IAM utente e una password per accedere a AWS pagine Web sicure come il AWS Management ConsoleForum di AWS discussione o il AWS Support Centro.

    Puoi generare credenziali Git o associare chiavi SSH pubbliche al tuo IAM utente, oppure puoi installare e configuraregit-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 inIAM. Puoi quindi utilizzare queste credenziali per le HTTPS connessioni con Git e qualsiasi strumento di terze parti che supporti l'autenticazione del nome utente e della password Git. Con SSH le connessioni, crei file di chiave pubblici e privati sul tuo computer locale che Git e Git CodeCommit utilizzano per SSH l'autenticazione. Associate la chiave pubblica al vostro IAM utente 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 ilAWS Command Line Interface ().AWS CLI CLIGli strumenti SDK and 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 in entrataAPI. 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 è possibile utilizzare credenziali Git o coppie di chiavi SSH pubblico-private con l'utente dell'account root. Per questi motivi, non è consigliabile utilizzare l'utente dell'account root per interagire con. CodeCommit

    Importante

    Per motivi di sicurezza, ti consigliamo di utilizzare le credenziali root solo per creare un utente amministratore, ovvero un IAMutente con autorizzazioni complete per il tuo account. AWS Quindi, puoi utilizzare questo utente amministratore per creare altri IAM utenti e ruoli con autorizzazioni limitate. Per ulteriori informazioni, consulta IAMBest practice e creazione di un utente e di un gruppo amministratore nella Guida per l'IAMutente.

  • IAMIdentity 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 Account AWS applicazioni cloud. Sebbene sia consigliato come best practice per la maggior parte degli utenti con cui lavora AWS, IAM Identity Center attualmente non fornisce meccanismi per credenziali o coppie di SSH chiavi Git. 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 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, di un provider di identità Web AWS Directory Service, della directory Identity Center o di qualsiasi utente che accede utilizzando le Servizi AWS 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 informazioni su IAM Identity Center, vedi Cos'è IAM Identity Center? nella Guida AWS IAM Identity Center per l'utente.

  • IAMruolo: come un IAM utente, un IAMruolo è un'IAMidentità che puoi creare nel tuo account per concedere autorizzazioni specifiche.

    Un IAMruolo è un'identità interna all'utente Account AWS che dispone di autorizzazioni specifiche. È simile a un IAM utente, ma non è associato a una persona specifica. Per assumere temporaneamente un IAM ruolo in AWS Management Console, puoi passare da un utente a un IAM ruolo (console). È possibile assumere un ruolo chiamando un' AWS APIoperazione AWS CLI or o utilizzando un'operazione personalizzataURL. Per ulteriori informazioni sui metodi di utilizzo dei ruoli, vedere Metodi per assumere un ruolo nella Guida per l'IAMutente.

    IAMi ruoli 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 informazioni sui ruoli per la federazione, vedere Creazione di un ruolo per un provider di identità di terze parti nella Guida per l'IAMutente. Se utilizzi IAM Identity Center, configuri un set di autorizzazioni. Per controllare a cosa possono accedere le identità dopo l'autenticazione, IAM Identity Center correla il set di autorizzazioni a un ruolo in. IAM Per informazioni sui set di autorizzazioni, consulta Set di autorizzazioni nella Guida per l'utente di AWS IAM Identity Center .

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

    • Accesso su più account: puoi utilizzare un IAM ruolo per consentire a qualcuno (un responsabile fidato) di un altro account di accedere alle risorse del tuo 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 la sezione Accesso alle risorse su più account IAM nella Guida per l'utente. IAM

    • Accesso tra servizi: alcuni Servizi AWS utilizzano funzionalità in altri. Servizi AWS Ad esempio, quando effettui una chiamata in un servizio, è normale che quel 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 IAM utente o un ruolo 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. FASutilizza le autorizzazioni del principale che chiama an Servizio AWS, in combinazione con la richiesta di effettuare richieste Servizio AWS ai servizi downstream. FASle richieste 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 FAS delle politiche relative alle richieste, consulta Forward access sessions.

      • Ruolo di servizio: un ruolo di servizio è un IAMruolo che un servizio assume per eseguire azioni per conto dell'utente. Un IAM amministratore può creare, modificare ed eliminare un ruolo di servizio dall'internoIAM. Per ulteriori informazioni, vedere Creazione di un ruolo per delegare le autorizzazioni a un utente Servizio AWS nella Guida per l'IAMutente.

      • 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 IAM amministratore può visualizzare, ma non modificare le autorizzazioni per i ruoli collegati al servizio.

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

    Nota

    Non è possibile utilizzare credenziali Git o coppie di chiavi SSH pubblico-private con 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 di account può allegare politiche di autorizzazione IAM alle identità (ovvero utenti, gruppi e ruoli). Alcuni servizi, ad esempio, supportano anche l'associazione di politiche di autorizzazione alle risorse. AWS Lambda

Nota

Un amministratore account (o un utente amministratore) è un utente con privilegi di amministratore. Per ulteriori informazioni, consulta IAMBest Practices nella Guida per l'IAMutente.

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 Names (ARN) univoco. In una policy, utilizzi un Amazon Resource Name (ARN) per identificare la risorsa a cui si applica la policy. Per ulteriori informazioni suARNs, consulta Amazon Resource Names (ARN) e AWS Service Namespaces nel. 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 ARNFormato
Repository

arn:aws:codecommit:region:account-id:repository-name

Tutti i repository CodeCommit

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 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. Quando crei modelli di eventi, assicurati di utilizzare i ARN caratteri corretti in modo che corrispondano alla ARN sintassi della risorsa.

Ad esempio, puoi indicare un repository specifico (MyDemoRepo) nella tua dichiarazione utilizzandolo 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'APIazione specifica non supportaARNs, 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, quanto segue ARN specifica qualsiasi CodeCommit repository che inizia con il nome MyDemo e che è registrato 111111111111 nell'account Amazon Web Services in: 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 IAM utente o un IAM ruolo) che autentica la richiesta di creazione della risorsa. Negli esempi seguenti viene illustrato il funzionamento:

  • Se crei un IAM utente 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 IAM ruolo 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 i criteri 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

In questa sezione viene illustrato l'utilizzo IAM nel contesto di. CodeCommit Non fornisce informazioni dettagliate sul IAM servizio. Per ulteriori informazioni suIAM, vedi What IsIAM? nella Guida IAM per l'utente. Per informazioni sulla sintassi e le descrizioni delle IAM policy, vedere IAMPolicy Reference nella Guida per l'IAMutente.

Le politiche di autorizzazione allegate a un'IAMidentità 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 (politiche) basate sull'identità. IAM

Politiche basate sull'identità (politiche) IAM

Per gestire l'accesso alle AWS risorse, si allegano politiche di autorizzazione alle identità. IAM In CodeCommit, si utilizzano politiche basate sull'identità per controllare l'accesso agli archivi. 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 Termini e concetti. IAM

    Per concedere autorizzazioni su più account, allega a un ruolo una politica di autorizzazioni basata sull'identità. 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 IAM ruolo e attribuisce una politica di autorizzazioni al ruolo che concede le autorizzazioni sulle risorse nell'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 l'autorizzazione di AWS servizio per assumere il ruolo, il responsabile della politica di fiducia può anche essere un responsabile del servizio. AWS Per ulteriori informazioni, consulta la sezione Delegazione in IAMtermini e concetti.

    Per ulteriori informazioni sull'utilizzo per IAM delegare le autorizzazioni, consulta Gestione degli accessi nella Guida per l'IAMutente.

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 IAM politiche specifiche e quindi associa tali politiche agli IAM utenti. Per ulteriori informazioni su come creare IAM ruoli e per esplorare esempi di dichiarazioni IAM politiche 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 Politiche basate sull'identità (politiche) 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

È possibile creare policy per consentire o negare agli utenti l'accesso alle risorse oppure consentire o negare agli utenti di intraprendere azioni specifiche su tali risorse. CodeCommit definisce un insieme di API operazioni pubbliche che definiscono il modo in cui gli utenti utilizzano il servizio, tramite la CodeCommit consoleSDKs, il AWS CLI, o chiamandole direttamente. APIs Per concedere le autorizzazioni per queste API operazioni, CodeCommit definisce una serie di azioni che è possibile specificare in una politica.

Alcune API operazioni possono richiedere autorizzazioni per più di un'azione. Per ulteriori informazioni su risorse e API operazioni, vedere CodeCommit risorse e operazioni eRiferimento 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 politica, 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à (IAMpolicy), l'unico tipo di policy che CodeCommit supporta, l'utente a cui è associata la policy è il principale implicito.

Per ulteriori informazioni sulla sintassi delle IAM policy, consulta IAMPolicy Reference nella Guida per l'utente. IAM

Per una tabella che mostra tutte le CodeCommit API azioni e le risorse a cui si applicano, vedereRiferimento per le autorizzazioni CodeCommit.

Specifica delle condizioni in una policy

Quando si concedono le autorizzazioni, si utilizza il linguaggio della politica di accesso IAM per specificare le condizioni in base alle quali una politica 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 Guida per l'IAMutente.

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 Guida per l'IAMutente.