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à.
Limita i push e le unioni alle filiali in AWS CodeCommit
Per impostazione predefinita, qualsiasi utente del CodeCommit repository che dispone di autorizzazioni sufficienti per inviare codice al repository può contribuire a qualsiasi ramo di quel repository. Questo è vero indipendentemente da come aggiungi un ramo al repository: utilizzando la console, la riga di comando o Git. Tuttavia, è possibile configurare un ramo in modo tale che solo alcuni utenti del repository possano inserire o eseguire il push del codice in quel ramo. Ad esempio, potresti configurare un ramo utilizzato per il codice di produzione in modo che solo un sottoinsieme di sviluppatori senior possa eseguire il push o unire le modifiche a tale ramo. Gli altri sviluppatori possono ancora estrarre dal ramo, creare propri rami e creare richieste pull, ma non possono eseguire push o unioni delle modifiche a quel ramo. Puoi configurare questo accesso creando una policy condizionale che utilizza una chiave di contesto per uno o più rami in IAM.
Nota
Per completare alcune delle procedure descritte in questo argomento, devi accedere con un utente amministrativo con autorizzazioni sufficienti per configurare e applicare le policy IAM. Per ulteriori informazioni, consulta Creazione di un utente e gruppo di amministratori IAM.
Argomenti
Configura una policy IAM per limitare i push e le unioni a una filiale
Puoi creare una policy in IAM che impedisca agli utenti di aggiornare una filiale, incluso l'invio di commit a una filiale e l'unione delle richieste pull a una filiale. A tale scopo, la policy utilizza un'istruzione condizionale, in modo che l'effetto dell'istruzione Deny si applichi solo se la condizione è soddisfatta. Le API incluse nell'istruzione Deny determinano quale azioni non sono consentite. Puoi configurare questa policy in modo che si applichi a una sola filiale in un repository, a più filiali in un repository o a tutte le filiali che soddisfano i criteri in tutti i repository di un account Amazon Web Services.
Per creare una policy condizionale per i rami
-
Accedi Console di gestione AWS e apri la console IAM all'indirizzo. https://console.aws.amazon.com/iam/
-
Nel riquadro di navigazione, scegli Policy.
-
Scegli Create Policy (Crea policy).
-
Scegliere JSON e incollare la policy di esempio seguente. Sostituire il valore di
Resourcecon l'ARN del repository che contiene il ramo per cui si desidera limitare l'accesso. Sostituire il valore dicodecommit:Referencescon un riferimento al ramo o ai rami per cui si desidera limitare l'accesso. Ad esempio, questa policy nega l'invio di commit, l'unione di branch, l'eliminazione di branch, l'eliminazione di file, l'unione di pull request e l'aggiunta di file a un branch denominato e a un branch denominato in unrepository denominato:mainprodMyDemoRepoI branch in Git sono semplicemente puntatori (riferimenti) al SHA-1 valore dell'head commit, motivo per cui la condizione utilizza.
ReferencesL'istruzioneNullè obbligatoria in ogni policy il cui effetto èDenye doveGitPushè una delle operazioni. Questo è necessario a causa del modo in cui Git egit-receive-packfunzionano quando si effettua il push delle modifiche da un repository locale a CodeCommit.Suggerimento
Per creare una policy che si applichi a tutti i rami denominati main in tutti i repository di un account Amazon Web Services, modifica il valore di
Resourcefrom a repository ARN in un asterisco ().* -
Scegliere Esamina policy. Correggere gli eventuali errori nell'istruzione di policy e quindi continuare con Create policy (Crea policy).
-
Quando il JSON è convalidato, viene visualizzata la pagina Create policy (Crea policy). Viene visualizzato un avviso nella sezione Summary (Riepilogo) indicante che questa policy non concede autorizzazioni. Si tratta di un comportamento normale.
-
In Name (Nome), immettere un nome per la policy, ad esempio
DenyChangesToMain. -
In Description (Descrizione), immettere una descrizione dello scopo della policy. Questo passaggio è facoltativo, ma è consigliato.
-
Scegli Crea policy.
-
Applica la policy IAM a un gruppo o ruolo IAM
Hai creato una policy che limita i push e i merges a un branch, ma non ha effetto finché non la applichi a un utente, gruppo o ruolo IAM. Come best practice, valuta la possibilità di applicare la policy a un gruppo o ruolo IAM. L'applicazione delle policy ai singoli utenti IAM non è scalabile correttamente.
Per applicare la policy condizionale a un gruppo o un ruolo
-
Accedi Console di gestione AWS e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione, se desideri applicare la policy a un gruppo IAM, scegli Gruppi. Se vuoi applicare la policy a un ruolo che gli utenti assumono, scegli Ruolo. Scegliere il nome del gruppo o del ruolo.
-
Nella scheda Permissions (Autorizzazioni), scegli Attach Policy (Associa policy).
-
Selezionare la policy condizionale creata dall'elenco delle policy e quindi scegliere Attach policy (Collega policy).
Per maggiori informazioni, consulta Allegare e scollegare le policy IAM.
Verifica la policy
È necessario testare gli effetti della policy che hai applicato al gruppo o al ruolo per assicurarti che funzioni come previsto. Esistono molti modi per eseguire questa operazione. Ad esempio, per testare una policy simile a quella mostrata sopra, è possibile:
-
Accedi alla CodeCommit console con un utente IAM che è membro di un gruppo IAM a cui è applicata la policy o assume un ruolo a cui è applicata la policy. Nella console aggiungi un file nel ramo in cui si applicano le restrizioni. Viene visualizzato un messaggio di errore quando tenti di salvare o caricare un file nel ramo. Aggiungi un file a un ramo diverso. L'operazione è completata.
-
Accedi alla CodeCommit console con un utente IAM che è membro di un gruppo IAM a cui è applicata la policy o assume un ruolo a cui è applicata la policy. Creare una richiesta di pull che viene unita al ramo in cui si applicano le restrizioni. Potrai creare la richiesta di pull, ma riceverai un messaggio di errore se la tenti di unire.
-
Dal terminale o dalla riga di comando, crea un commit sul ramo in cui si applicano le restrizioni, quindi invia quel commit al CodeCommit repository. Viene visualizzato un messaggio di errore. I commit e i push effettuati da altri rami funzionano normalmente.