

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Associe um AWS CodeCommit repositório em um Conta da AWS com o Amazon SageMaker AI Studio Classic em outra conta
<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*

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

Esse padrão fornece instruções e código sobre como associar um AWS CodeCommit repositório em um Conta da AWS (Conta A) com o Amazon SageMaker AI Studio Classic em outro Conta da AWS (Conta B). Para configurar a associação, você deve criar uma política e uma função AWS Identity and Access Management (IAM) na Conta A e uma política embutida do IAM na Conta B. Em seguida, você usa um script de shell para clonar o CodeCommit repositório da Conta A para o Amazon SageMaker AI Classic na Conta B.

## Pré-requisitos e limitações
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-prereqs"></a>

**Pré-requisitos **
+ Dois [Contas da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/), um contendo o CodeCommit repositório e o outro contendo um domínio de SageMaker IA com um usuário
+ [Domínio e usuário de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html) provisionados, com acesso à Internet ou acesso a CodeCommit e AWS Security Token Service (AWS STS) por meio de endpoints de rede privada virtual (VPC)
+ Conceitos básicos do [IAM](https://docs.aws.amazon.com/iam/?id=docs_gateway)
+ Uma compreensão básica do [SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)
+ Uma compreensão básica do [Git](https://git-scm.com/) e [CodeCommit ](https://docs.aws.amazon.com/codecommit/index.html)

**Limitações**

Esse padrão se aplica somente ao SageMaker AI Studio Classic, não ao RStudio Amazon SageMaker AI.

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

**Pilha de tecnologia**
+  SageMaker IA da Amazon
+ Amazon SageMaker AI Studio clássico
+ AWS CodeCommit
+ AWS Identity and Access Management (IAM) 
+ Git

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura que associa um CodeCommit repositório da Conta A ao SageMaker AI Studio Classic na Conta B.

![\[Diagrama de arquitetura para associação entre contas\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/d40df9eb-6ee2-4cb8-8257-051fa624e52a/images/abb89a66-fc8f-4e72-8f45-f0f44c2ec6ce.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um usuário assume a `MyCrossAccountRepositoryContributorRole` função na Conta A por meio da `sts:AssumeRole` função, enquanto usa a função de execução de SageMaker IA no SageMaker AI Studio Classic na Conta B. A função assumida inclui as CodeCommit permissões para clonar e interagir com o repositório especificado.

1. O usuário executa comandos Git a partir do terminal do sistema no SageMaker AI Studio Classic.

**Automação e escala**

Este padrão consiste em etapas manuais que podem ser automatizadas usando o [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/?id=docs_gateway), o [AWS CloudFormation](https://docs.aws.amazon.com/cloudformation/?id=docs_gateway) ou o [Terraform](https://www.terraform.io/).

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

**Ferramentas da AWS**
+ O [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/?id=docs_gateway) é um serviço gerenciado de aprendizado de máquina (ML) que ajuda você a criar e treinar modelos de ML e depois implantá-los em um ambiente hospedado pronto para produção.
+ [O Amazon SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) é um ambiente de desenvolvimento integrado (IDE) baseado na web para aprendizado de máquina que permite criar, treinar, depurar, implantar e monitorar seus modelos de aprendizado de máquina.
+ O [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) é um serviço de controle de versão que ajuda no armazenamento e no gerenciamento de repositórios Git de forma privada, sem a necessidade de administrar o próprio sistema de controle de origem.

  **Aviso**: não AWS CodeCommit está mais disponível para novos clientes. Os clientes existentes do AWS CodeCommit podem continuar usando o serviço normalmente. [Saiba mais](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) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.

**Outras ferramentas**
+ O [Git](https://git-scm.com/) é um sistema distribuído de controle de versões para rastrear alterações no código-fonte durante o desenvolvimento do software.

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

### Criar uma política do IAM e um perfil do IAM na conta A
<a name="create-an-iam-policy-and-iam-role-in-account-a"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma política do IAM para acesso ao repositório na conta A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)É uma prática recomendada restringir o escopo das políticas do IAM às permissões mínimas necessárias para o seu caso de uso. | AWS DevOps | 
| Criar um perfil do IAM para acesso ao repositório na conta A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Criar uma política em linha do IAM na Conta B
<a name="create-an-iam-inline-policy-in-account-b"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Anexe uma política embutida à função de execução vinculada ao usuário do seu SageMaker domínio na Conta B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Clone o repositório no SageMaker AI Studio Classic para a Conta B
<a name="clone-the-repository-in-sm-studio-classic-for-account-b"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o script de shell no SageMaker AI Studio Classic na Conta B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 
| Invocar o script de shell a partir do terminal do sistema. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)Você clonou seu CodeCommit repositório em uma conta cruzada do SageMaker AI Studio. Agora você pode executar todos os comandos do Git no terminal do sistema. | AWS DevOps | 

## Mais informações
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-additional"></a>

**Exemplo de política do IAM**

Para usar este exemplo, você precisa fazer o seguinte:
+ `<CodeCommit_Repository_Region>`Substitua pelo Região da AWS para o repositório.
+ Substitua `<Account_A_ID>` pelo ID da conta para a conta A.
+ `<CodeCommit_Repository_Name>`Substitua pelo nome do seu CodeCommit repositório na Conta 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>"
        ]
    }
]
}
```

**Exemplo de script de shell de SageMaker IA**

Para usar este exemplo, você precisa fazer o seguinte:
+ Substitua `<Account_A_ID>` pelo ID da conta para conta A.
+ Substitua `<Account_A_Role_Name>` pelo nome do perfil do IAM que você criou anteriormente.
+ `<CodeCommit_Repository_Region>`Substitua pelo Região da AWS para o repositório.
+ `<CodeCommit_Repository_Name>`Substitua pelo nome do seu CodeCommit repositório na Conta 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>
```