

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Asociar un AWS CodeCommit repositorio de una cuenta Cuenta de AWS a Amazon SageMaker AI Studio Classic de otra cuenta
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account"></a>

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

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

Este patrón proporciona instrucciones y código sobre cómo asociar un AWS CodeCommit repositorio de una Cuenta de AWS (cuenta A) con Amazon SageMaker AI Studio Classic de otra Cuenta de AWS (cuenta B). Para configurar la asociación, debe crear una política y un rol AWS Identity and Access Management (de IAM) en la cuenta A y una política en línea de IAM en la cuenta B. A continuación, debe utilizar un script de shell para clonar el CodeCommit repositorio de la cuenta A a Amazon SageMaker AI Classic en la cuenta B.

## Requisitos previos y limitaciones
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-prereqs"></a>

**Requisitos previos**
+ Dos [Cuentas de AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/), una que contiene el CodeCommit repositorio y la otra que contiene un dominio de SageMaker IA con un usuario
+ [Dominio y usuario de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html) aprovisionados, con acceso a Internet o acceso a CodeCommit y AWS Security Token Service (AWS STS) a través de puntos finales de red privada virtual (VPC)
+ Conocimientos básicos de [IAM](https://docs.aws.amazon.com/iam/?id=docs_gateway)
+ [Conocimientos básicos de AI Studio Classic SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)
+ Conocimientos básicos de [Git](https://git-scm.com/) y [CodeCommit ](https://docs.aws.amazon.com/codecommit/index.html)

**Limitaciones**

Este patrón se aplica únicamente a SageMaker AI Studio Classic, no RStudio a Amazon SageMaker AI.

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

**Pila de tecnología**
+ Amazon SageMaker AI
+ Amazon SageMaker AI Studio clásico
+ AWS CodeCommit
+ AWS Identity and Access Management (IAM) 
+ Git

**Arquitectura de destino**

El siguiente diagrama muestra una arquitectura que asocia un CodeCommit repositorio de la cuenta A a SageMaker AI Studio Classic en la cuenta B.

![\[Diagrama de arquitectura para la asociación entre cuentas\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/d40df9eb-6ee2-4cb8-8257-051fa624e52a/images/abb89a66-fc8f-4e72-8f45-f0f44c2ec6ce.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Un usuario asume el `MyCrossAccountRepositoryContributorRole` rol en la cuenta A a través del `sts:AssumeRole` rol, mientras que usa el SageMaker rol de ejecución de SageMaker IA en AI Studio Classic en la cuenta B. El rol asumido incluye CodeCommit los permisos para clonar e interactuar con el repositorio especificado.

1. El usuario ejecuta los comandos de Git desde el terminal del sistema en SageMaker AI Studio Classic.

**Automatización y escala**

Este patrón consiste en pasos manuales que se pueden automatizar mediante el uso de [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/?id=docs_gateway), [AWS CloudFormation](https://docs.aws.amazon.com/cloudformation/?id=docs_gateway), o [Terraform](https://www.terraform.io/).

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

**Herramientas de AWS**
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/?id=docs_gateway) es un servicio de aprendizaje automático (ML) gestionado que le ayuda a crear y entrenar modelos de aprendizaje automático para luego implementarlos en un entorno hospedado listo para la producción.
+ [Amazon SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) es un entorno de desarrollo integrado (IDE) basado en la web para el aprendizaje automático que le permite crear, entrenar, depurar, implementar y supervisar sus modelos de aprendizaje automático.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) es un servicio de control de versiones que permite almacenar y administrar repositorios de Git de forma privada, sin necesidad de administrar su propio sistema de control de origen.

  **Aviso**: ya no AWS CodeCommit está disponible para nuevos clientes. Los clientes actuales de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. [Más información](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) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

**Otras herramientas**
+ [Git](https://git-scm.com/) es un sistema de control de versiones distribuido que rastrea los cambios en el código fuente durante el desarrollo del software.

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

### Cree una política y rol de IAM en la cuenta A
<a name="create-an-iam-policy-and-iam-role-in-account-a"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear una política de IAM de acceso al repositorio en Cuenta A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)Se recomienda restringir el alcance de las políticas de IAM a los permisos mínimos requeridos para cada caso de uso. | AWS DevOps | 
| Crear un rol de IAM para el acceso al repositorio en la Cuenta A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Cree una política de IAM en línea en la cuenta B
<a name="create-an-iam-inline-policy-in-account-b"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Adjunte una política en línea a la función de ejecución asociada al usuario de su SageMaker dominio en la cuenta B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Clona el repositorio en SageMaker AI Studio Classic para la cuenta B
<a name="clone-the-repository-in-sm-studio-classic-for-account-b"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crea el script de shell en SageMaker AI Studio Classic en la cuenta B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 
| Invoque el script de intérprete de comandos desde el terminal del sistema. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)Has clonado tu CodeCommit repositorio en una cuenta cruzada de SageMaker AI Studio. Ahora puede ejecutar todos los comandos de Git desde el terminal del sistema. | AWS DevOps | 

## Información adicional
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-additional"></a>

**Política de IAM de ejemplo**

Para utilizar este ejemplo de política, debe hacer lo siguiente:
+ `<CodeCommit_Repository_Region>` Región de AWS Sustitúyalo por el del repositorio.
+ Sustituya `<Account_A_ID>` por la ID de cuenta para la cuenta A.
+ `<CodeCommit_Repository_Name>`Sustitúyalo por el nombre de tu CodeCommit repositorio en la cuenta 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>"
        ]
    }
]
}
```

**Ejemplo de script SageMaker AI shell**

Para utilizar este ejemplo de script, debe hacer lo siguiente:
+ Sustituya `<Account_A_ID>` por la ID de cuenta para la cuenta A.
+ Sustituya `<Account_A_Role_Name>` por el nombre del rol de IAM que ha creado anteriormente.
+ `<CodeCommit_Repository_Region>`Sustitúyalo Región de AWS por el para el repositorio.
+ `<CodeCommit_Repository_Name>`Sustitúyalo por el nombre de tu CodeCommit repositorio en la cuenta 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>
```