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à.
Concedi alle istanze di SageMaker notebook l'accesso temporaneo a un CodeCommit repository in un altro account AWS
Creato da Helge Aufderheide () AWS
Ambiente: produzione | Tecnologie: DevOps; Analisi; Apprendimento automatico e intelligenza artificiale; Gestione e governance | AWSservizi: AWS CodeCommit; AWS Identity and Access Management; Amazon SageMaker |
Riepilogo
Avviso: non AWS CodeCommit è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni
Questo modello mostra come concedere alle istanze e agli utenti di Amazon SageMaker Notebook l'accesso temporaneo a un AWS CodeCommit repository che si trova in un altro AWS account. Questo modello mostra anche come è possibile concedere autorizzazioni granulari per azioni specifiche che ciascuna entità può eseguire su ciascun repository.
Organizations spesso archivia i CodeCommit repository in un AWS account diverso da quello che ospita il loro ambiente di sviluppo. Questa configurazione multi-account aiuta a controllare l'accesso ai repository e riduce il rischio di una loro eliminazione accidentale. Per concedere queste autorizzazioni tra account, è consigliabile utilizzare i ruoli AWS Identity and Access Management (IAM). Quindi, IAM le identità predefinite in ogni AWS account possono assumere temporaneamente i ruoli per creare una catena di fiducia controllata tra gli account.
Nota: è possibile applicare una procedura simile per concedere ad altre IAM identità l'accesso a un repository su più account. CodeCommit Per ulteriori informazioni, consulta Configurare l'accesso tra più account a un AWS CodeCommit repository utilizzando i ruoli nella Guida per l'utente. AWS CodeCommit
Prerequisiti e limitazioni
Prerequisiti
Un AWS account attivo con un CodeCommit repository (account A)
Un secondo AWS account attivo con un'istanza SageMaker notebook (account B)
Un AWS utente con autorizzazioni sufficienti per creare e modificare IAM i ruoli nell'account A
Un secondo AWS utente con autorizzazioni sufficienti per creare e modificare IAM ruoli nell'account B
Architettura
Il diagramma seguente mostra un esempio di flusso di lavoro per concedere a un'istanza di SageMaker notebook e agli utenti di un account l'accesso a un AWS repository tra più account: CodeCommit
Il diagramma mostra il flusso di lavoro seguente:
Il ruolo AWS utente e il ruolo dell'istanza SageMaker notebook nell'account B presuppongono un profilo denominato.
La politica di autorizzazione del profilo denominato specifica un ruolo di CodeCommit accesso nell'account A che il profilo assume successivamente.
La politica di fiducia del ruolo di CodeCommit accesso nell'account A consente al profilo denominato nell'account B di assumere il CodeCommit ruolo di accesso.
La politica di IAM autorizzazione del CodeCommit repository nell'account A consente al ruolo di CodeCommit accesso di accedere al CodeCommit repository.
Stack tecnologico
CodeCommit
Git
IAM
pip
SageMaker
Strumenti
AWS CodeCommitè un servizio di controllo delle versioni che consente di archiviare e gestire in modo privato gli archivi Git, senza dover gestire il proprio sistema di controllo del codice sorgente.
AWSIdentity and Access Management (IAM) consente di gestire in modo sicuro l'accesso alle AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
Git
è un sistema distribuito di controllo delle versioni per tenere traccia delle modifiche nel codice sorgente durante lo sviluppo del software. git-remote-codecommitè un'utilità che consente di inviare ed estrarre codice dai CodeCommit repository estendendo Git.
pip
è l'installatore di pacchetti per Python. Puoi usare pip per installare pacchetti dal Python Package Index e da altri indici.
Best practice
Quando imposti le autorizzazioni con IAM le politiche, assicurati di concedere solo le autorizzazioni necessarie per eseguire un'attività. Per ulteriori informazioni, consulta Applicare le autorizzazioni con privilegi minimi nella documentazione. IAM
Quando implementate questo modello, assicuratevi di fare quanto segue:
Verifica che IAM i principi dispongano solo delle autorizzazioni necessarie per eseguire azioni specifiche e necessarie all'interno di ciascun repository. Ad esempio, si consiglia di consentire ai IAM principi approvati di inviare e unire le modifiche a rami specifici del repository, ma di richiedere le unioni solo ai branch protetti.
Conferma che IAM ai principi siano assegnati IAM ruoli diversi in base ai rispettivi ruoli e responsabilità per ciascun progetto. Ad esempio, uno sviluppatore avrà autorizzazioni di accesso diverse rispetto a quelle di un release manager o di un AWS amministratore.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Configura il ruolo di CodeCommit accesso e la politica delle autorizzazioni. | Nell'account che contiene il CodeCommit repository (account A), procedi come segue:
Importante: prima di spostare questa configurazione nell'ambiente di produzione, è consigliabile scrivere una IAM politica personalizzata che applichi i permessi con privilegi minimi. Per ulteriori informazioni, consulta la sezione Informazioni aggiuntive di questo modello. | GeneraleAWS, AWS DevOps |
Concedi al ruolo dell'istanza SageMaker notebook nell'account B le autorizzazioni per assumere il ruolo di CodeCommit accesso nell'account A. | Nell'account che contiene il IAM ruolo dell'istanza del SageMaker notebook (account B), procedi come segue:
Nota: per visualizzare l'Amazon Resource Name (ARN) del tuo repository, consulta Visualizza i dettagli del CodeCommit repository nella Guida per l'AWS CodeCommit utente. | Generale, AWS AWS DevOps |
Attività | Descrizione | Competenze richieste |
---|---|---|
Imposta un profilo utente sull'istanza del AWS SageMaker notebook per assumere il ruolo nell'account A. | Importante: assicurati di avere installata la versione più recente dell'interfaccia a riga di AWS comando (AWSCLI). Nell'account che contiene l'istanza del SageMaker notebook (account B), procedi come segue:
| GeneraleAWS, AWS DevOps |
Installa l' git-remote-codecommitutilità. | Segui le istruzioni riportate nella Fase 2: Installazione git-remote-codecommit nella Guida AWS CodeCommit per l'utente. | Data scientist |
Attività | Descrizione | Competenze richieste |
---|---|---|
Accedi al CodeCommit repository utilizzando i comandi Git o SageMaker. | Per usare Git IAMi principali che assumono il ruolo dell'istanza del SageMaker notebook nell'account B possono ora eseguire comandi Git per accedere al CodeCommit repository nell'account A. Ad esempio, gli utenti possono eseguire comandi come Per istruzioni, consulta Connect to an AWS CodeCommit repository nella Guida per l'AWS CodeCommit utente. Per informazioni su come usare Git con CodeCommit, vedi Guida introduttiva AWS CodeCommit nella Guida per l'AWS CodeCommit utente. Da usare SageMaker Per usare Git dalla SageMaker console, devi consentire a Git di recuperare le credenziali dal tuo CodeCommit repository. Per istruzioni, consulta Associare un CodeCommit repository in un AWS account diverso a un'istanza di notebook nella documentazione. SageMaker | Git, console bash |
Risorse correlate
Configura l'accesso tra account a un AWS CodeCommit repository utilizzando i ruoli (documentazione) AWS CodeCommit
IAMtutorial: Delega l'accesso a più AWS account utilizzando i IAM ruoli (documentazione) IAM
Informazioni aggiuntive
Limitazione delle CodeCommit autorizzazioni a azioni specifiche
Per limitare le azioni che un IAM principale può eseguire nel CodeCommit repository, modifica le azioni consentite nella CodeCommit politica di accesso.
Per ulteriori informazioni sulle CodeCommit API operazioni, consulta il riferimento CodeCommit alle autorizzazioni nella Guida per l'AWS CodeCommit utente.
Nota: puoi anche modificare la policy AWSCodeCommitPowerUserAWSgestita per adattarla al tuo caso d'uso.
Limitazione delle CodeCommit autorizzazioni a repository specifici
Per creare un ambiente multitenant in cui più di un repository di codice siano accessibili solo a utenti specifici, procedi come segue:
Crea più ruoli di CodeCommit accesso nell'account A. Quindi, configura la politica di fiducia di ciascun ruolo di accesso per consentire a utenti specifici dell'account B di assumere il ruolo.
Limita gli archivi di codice che ogni ruolo può assumere aggiungendo una condizione «Risorsa» alla politica di ciascun ruolo di CodeCommit accesso.
Esempio di condizione «Risorsa» che limita l'accesso di un IAM principale a un archivio specifico CodeCommit
"Resource" : [<REPOSITORY_ARN>,<REPOSITORY_ARN> ]
Nota: per facilitare l'identificazione e la differenziazione di più repository di codice nello stesso AWS account, è possibile assegnare prefissi diversi ai nomi dei repository. Ad esempio, puoi denominare gli archivi di codice con prefissi che si allineano a diversi gruppi di sviluppatori, come myproject-subproject1-repo1 e myproject-subproject2-repo1. Quindi, IAM puoi creare un ruolo per ogni gruppo di sviluppatori in base ai prefissi assegnati. Ad esempio, puoi creare un ruolo denominato myproject-subproject1-repoaccess e concedergli l'accesso a tutti gli archivi di codice che includono il prefisso myproject-subproject1.
Esempio di condizione «Resource» che si riferisce a un repository di codice che include un prefisso specifico ARN
"Resource" : arn:aws:codecommit:<region>:<account-id>:myproject-subproject1-*