

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Associer un AWS CodeCommit référentiel dans un compte Compte AWS à Amazon SageMaker AI Studio Classic dans un autre compte
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account"></a>

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

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

Ce modèle fournit des instructions et du code expliquant comment associer un AWS CodeCommit référentiel dans un compte Compte AWS (compte A) à Amazon SageMaker AI Studio Classic dans un autre Compte AWS (compte B). Pour configurer l'association, vous devez créer une politique et un rôle Gestion des identités et des accès AWS (IAM) dans le compte A et une politique IAM en ligne dans le compte B. Ensuite, vous devez utiliser un script shell pour cloner le CodeCommit référentiel du compte A vers Amazon SageMaker AI Classic dans le compte B.

## Conditions préalables et limitations
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-prereqs"></a>

**Prérequis**
+ Deux [Comptes AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/), l'un contenant le CodeCommit référentiel et l'autre contenant un domaine SageMaker AI avec un utilisateur
+ [Domaine et utilisateur SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html) provisionnés, avec accès à Internet ou accès à CodeCommit et AWS Security Token Service (AWS STS) via des points de terminaison de réseau privé virtuel (VPC)
+ Compréhension de base de l'[IAM](https://docs.aws.amazon.com/iam/?id=docs_gateway)
+ Compréhension de base d'[SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)
+ Compréhension de base de [Git](https://git-scm.com/) et [CodeCommit ](https://docs.aws.amazon.com/codecommit/index.html)

**Limites**

Ce modèle s'applique uniquement à SageMaker AI Studio Classic, et non RStudio à Amazon SageMaker AI.

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

**Pile technologique**
+ Amazon SageMaker AI
+ Amazon SageMaker AI Studio classique
+ AWS CodeCommit
+ Gestion des identités et des accès AWS (JE SUIS) 
+ Git

**Architecture cible**

Le schéma suivant montre une architecture qui associe un CodeCommit référentiel du compte A à SageMaker AI Studio Classic dans le compte B.

![\[Schéma d'architecture pour l'association entre comptes\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/d40df9eb-6ee2-4cb8-8257-051fa624e52a/images/abb89a66-fc8f-4e72-8f45-f0f44c2ec6ce.png)


Le schéma suivant illustre le flux de travail suivant :

1. Un utilisateur assume le `MyCrossAccountRepositoryContributorRole` rôle dans le compte A par le biais du `sts:AssumeRole` rôle, tandis qu'il utilise le rôle d'exécution SageMaker SageMaker AI dans AI Studio Classic dans le compte B. Le rôle assumé inclut les CodeCommit autorisations de clonage et d'interaction avec le référentiel spécifié.

1. L'utilisateur exécute des commandes Git depuis le terminal système dans SageMaker AI Studio Classic.

**Automatisation et mise à l'échelle**

Ce modèle comprend des étapes manuelles qui peuvent être automatisées à l'aide de [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), ou [Terraform](https://www.terraform.io/).

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

**Outils AWS**
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/?id=docs_gateway) est un service géré d'apprentissage automatique (ML) qui vous aide à créer et à former des modèles de machine learning, puis à les déployer dans un environnement hébergé prêt pour la production.
+ [Amazon SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) est un environnement de développement intégré (IDE) basé sur le Web pour l'apprentissage automatique qui vous permet de créer, de former, de déboguer, de déployer et de surveiller vos modèles d'apprentissage automatique.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)est un service de contrôle de version qui vous permet de stocker et de gérer de manière privée des référentiels Git, sans avoir à gérer votre propre système de contrôle de source.

  **Remarque** : n' AWS CodeCommit est plus disponible pour les nouveaux clients. Les clients existants de AWS CodeCommit peuvent continuer à utiliser le service normalement. [En savoir plus](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.

**Autres outils**
+ [Git](https://git-scm.com/) est un système de contrôle de version distribué permettant de suivre les modifications du code source pendant le développement de logiciels.

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

### Création d'une politique IAM et d'un rôle IAM dans le compte A
<a name="create-an-iam-policy-and-iam-role-in-account-a"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une politique IAM pour l'accès au référentiel dans le compte A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)Il est recommandé de limiter la portée de vos politiques IAM aux autorisations minimales requises pour votre cas d'utilisation. | AWS DevOps | 
| Créez un rôle IAM pour accéder au référentiel dans le compte A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Créez une politique en ligne IAM dans le compte B
<a name="create-an-iam-inline-policy-in-account-b"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Associez une politique intégrée au rôle d'exécution associé à votre utilisateur de SageMaker domaine dans le compte B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Cloner le référentiel dans SageMaker AI Studio Classic pour le compte B
<a name="clone-the-repository-in-sm-studio-classic-for-account-b"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le script shell dans SageMaker AI Studio Classic dans le compte B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 
| Appelez le script shell depuis le terminal système. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)Vous avez cloné votre CodeCommit dépôt dans un compte croisé SageMaker AI Studio. Vous pouvez désormais exécuter toutes les commandes Git depuis le terminal système. | AWS DevOps | 

## Informations supplémentaires
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-additional"></a>

**Exemple de politique IAM**

Si vous utilisez cet exemple de politique, procédez comme suit :
+ Remplacez `<CodeCommit_Repository_Region>` par le Région AWS pour le référentiel.
+ Remplacez `<Account_A_ID>` par le numéro de compte du compte A.
+ Remplacez `<CodeCommit_Repository_Name>` par le nom de votre CodeCommit dépôt dans le compte 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>"
        ]
    }
]
}
```

**Exemple de script shell SageMaker AI**

Si vous utilisez cet exemple de script, procédez comme suit :
+ Remplacez `<Account_A_ID>` par le numéro de compte du compte A.
+ `<Account_A_Role_Name>`Remplacez-le par le nom du rôle IAM que vous avez créé précédemment.
+ Remplacez `<CodeCommit_Repository_Region>` par le Région AWS pour le référentiel.
+ Remplacez `<CodeCommit_Repository_Name>` par le nom de votre CodeCommit dépôt dans le compte 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>
```