

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

# Associa un AWS CodeCommit repository in uno Account AWS ad Amazon SageMaker AI Studio Classic in un altro account
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account"></a>

*Laurens van der Maas e Aubrey Oosthuizen, Amazon Web Services*

## Riepilogo
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-summary"></a>

Questo modello fornisce istruzioni e codice su come associare un AWS CodeCommit repository in uno Account AWS (Account A) con Amazon SageMaker AI Studio Classic in un altro Account AWS (Account B). Per configurare l'associazione, devi creare una policy e un ruolo AWS Identity and Access Management (IAM) nell'Account A e una policy IAM in linea nell'Account B. Quindi, usi uno script di shell per clonare il CodeCommit repository dall'Account A ad Amazon SageMaker AI Classic nell'Account B.

## Prerequisiti e limitazioni
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-prereqs"></a>

**Prerequisiti**
+ Due [Account AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/), uno contenente il CodeCommit repository e l'altro contenente un dominio SageMaker AI con un utente
+ [Dominio e utente SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html) forniti, con accesso a Internet o accesso a CodeCommit e AWS Security Token Service (AWS STS) tramite endpoint di rete privata virtuale (VPC)
+ [Una conoscenza di base di IAM](https://docs.aws.amazon.com/iam/?id=docs_gateway)
+ Una conoscenza di base di [SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)
+ Una conoscenza di base di [Git](https://git-scm.com/) e [CodeCommit ](https://docs.aws.amazon.com/codecommit/index.html)

**Limitazioni**

Questo modello si applica solo a SageMaker AI Studio Classic, non ad RStudio Amazon SageMaker AI.

## Architecture
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-architecture"></a>

**Stack tecnologico**
+ Amazon SageMaker AI
+ Amazon SageMaker AI Studio Classic
+ AWS CodeCommit
+ AWS Identity and Access Management (IAM) 
+ Git

**Architettura Target**

Il diagramma seguente mostra un'architettura che associa un CodeCommit repository dall'Account A a SageMaker AI Studio Classic nell'Account B.

![\[Diagramma di architettura per l'associazione tra account\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/d40df9eb-6ee2-4cb8-8257-051fa624e52a/images/abb89a66-fc8f-4e72-8f45-f0f44c2ec6ce.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un utente assume il `MyCrossAccountRepositoryContributorRole` ruolo nell'Account A attraverso il `sts:AssumeRole` ruolo, mentre utilizza il ruolo di esecuzione SageMaker AI in SageMaker AI Studio Classic nell'Account B. Il ruolo assunto include le CodeCommit autorizzazioni per clonare e interagire con il repository specificato.

1. L'utente esegue i comandi Git dal terminale di sistema in SageMaker AI Studio Classic.

**Automazione e scalabilità**

Questo modello è costituito da passaggi manuali che possono essere automatizzati utilizzando [AWS Cloud Development Kit (AWS CDK)[AWS CloudFormation](https://docs.aws.amazon.com/cloudformation/?id=docs_gateway)](https://docs.aws.amazon.com/cdk/?id=docs_gateway), o [Terraform](https://www.terraform.io/).

## Tools (Strumenti)
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-tools"></a>

**Strumenti AWS**
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/?id=docs_gateway) è un servizio di machine learning (ML) gestito che ti aiuta a creare e addestrare modelli di machine learning per poi distribuirli in un ambiente ospitato pronto per la produzione.
+ [Amazon SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) è un ambiente di sviluppo integrato (IDE) basato sul Web per l'apprendimento automatico che ti consente di creare, addestrare, eseguire il debug, distribuire e monitorare i tuoi modelli di apprendimento automatico.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)è 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.

  **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](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.

**Altri strumenti**
+ [Git](https://git-scm.com/) è un sistema distribuito di controllo delle versioni per tenere traccia delle modifiche nel codice sorgente durante lo sviluppo del software.

## Epiche
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-epics"></a>

### Crea una policy IAM e un ruolo IAM nell'Account A
<a name="create-an-iam-policy-and-iam-role-in-account-a"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una policy IAM per l'accesso al repository nell'Account A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)È buona prassi limitare l'ambito delle policy IAM alle autorizzazioni minime richieste per il tuo caso d'uso. | AWS DevOps | 
| Crea un ruolo IAM per l'accesso al repository nell'Account A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Crea una policy IAM in linea nell'Account B
<a name="create-an-iam-inline-policy-in-account-b"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Allega una policy in linea al ruolo di esecuzione associato al tuo utente di SageMaker dominio nell'Account B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Clona il repository in SageMaker AI Studio Classic per l'account B
<a name="clone-the-repository-in-sm-studio-classic-for-account-b"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea lo script di shell in SageMaker AI Studio Classic nell'Account B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 
| Richiama lo script di shell dal terminale di sistema. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)Hai clonato il tuo CodeCommit repository in un account multiplo di SageMaker AI Studio. Ora puoi eseguire tutti i comandi Git dal terminale di sistema. | AWS DevOps | 

## Informazioni aggiuntive
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-additional"></a>

**Policy IAM di esempio**

Se utilizzi questa politica di esempio, procedi come segue:
+ Sostituisci `<CodeCommit_Repository_Region>` con Regione AWS for the repository.
+ Sostituisci `<Account_A_ID>` con l'ID dell'account A.
+ Sostituiscilo `<CodeCommit_Repository_Name>` con il nome del tuo CodeCommit repository nell'Account A.

```
{
"Version": "2012-10-17",		 	 	 
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "codecommit:BatchGet*",
            "codecommit:Create*",
            "codecommit:DeleteBranch",
            "codecommit:Get*",
            "codecommit:List*",
            "codecommit:Describe*",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:Merge*",
            "codecommit:Test*",
            "codecommit:Update*",
            "codecommit:GitPull",
            "codecommit:GitPush"
        ],
        "Resource": [
            "arn:aws:codecommit:<CodeCommit_Repository_Region>:<Account_A_ID>:<CodeCommit_Repository_Name>"
        ]
    }
]
}
```

**Esempio di script di shell SageMaker AI**

Se usi questo script di esempio, procedi come segue:
+ Sostituisci `<Account_A_ID>` con l'ID dell'account A.
+ Sostituiscilo `<Account_A_Role_Name>` con il nome del ruolo IAM che hai creato in precedenza.
+ Sostituiscilo `<CodeCommit_Repository_Region>` con Regione AWS for the repository.
+ `<CodeCommit_Repository_Name>`Sostituiscilo con il nome del tuo CodeCommit repository nell'Account A.

```
#!/usr/bin/env bash
#Launch from system terminal
pip install --quiet git-remote-codecommit

mkdir -p ~/.aws
touch ~/.aws/config

echo "[profile CrossAccountAccessProfile]
region = <CodeCommit_Repository_Region>
credential_source=EcsContainer
role_arn = arn:aws:iam::<Account_A_ID>:role/<Account_A_Role_Name>
output = json" > ~/.aws/config

echo '[credential "https://git-codecommit.<CodeCommit_Repository_Region>.amazonaws.com"]
        helper = !aws codecommit credential-helper $@ --profile CrossAccountAccessProfile
        UseHttpPath = true' > ~/.gitconfig
        
git clone codecommit::<CodeCommit_Repository_Region>://CrossAccountAccessProfile@<CodeCommit_Repository_Name>
```