

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](https://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. | 1. Faça login no Console de gerenciamento da AWS e abra o [console do IAM](https://console.aws.amazon.com/iam/).<br />2. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**.<br />3. Selecione a guia **JSON**.<br />4. Copie a instrução da política de *Exemplo de política do IAM* na seção [Informações adicionais](#associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-additional) desse padrão e cole-a no editor JSON. Certifique-se de substituir todos os valores de espaço reservado na política.<br />5. Selecione **Próximo: Tags** e, em seguida,**Próximo: Análise**.<br />6. Em **Nome**, insira um nome para a política. **Observação**: nesse padrão, a política do IAM é chamada de `CrossAccountAccessForMySharedDemoRepo`, mas você pode escolher o nome de política que preferir.<br />7. Selecione **Criar política**.É 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. | 1. No painel de navegação do [console do IAM](https://console.aws.amazon.com/iam/), escolha **Funções** e, em seguida, **Criar função**.<br />2. Em **Tipo de entidade confiável**, selecione **Conta da AWS**.<br />3. Na seção **Conta da AWS**, selecione **Outra conta da AWS**.<br />4. Em **ID da conta**, insira o ID da conta para a conta B.<br />5. Na página **Adicionar permissões**, procure e escolha a política `CrossAccountAccessForMySharedDemoRepo` que você criou anteriormente.<br />6. Escolha **Próximo**.<br />7. Em **Nome do perfil**, insira um nome. **Observação**: nesse padrão, o perfil do IAM é chamado de `MyCrossAccountRepositoryContributorRole`, mas você pode escolher o nome de perfil que preferir.<br />8. Escolha **Criar perfil** e, em seguida, copie o nome do recurso da Amazon (ARN) do novo perfil. | 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. | 1. No painel de navegação do console do [IAM](https://console.aws.amazon.com/iam/), escolha **Perfis**.<br />2. Pesquise e escolha a função de execução associada ao seu usuário do SageMaker AI Domain na Conta B.<br />3. Escolha **Adicionar permissões** e, em seguida, **Criar política em linha**.<br />4. Selecione a guia **JSON**.<br />5. Copie a seguinte declaração de política e, em seguida, cole-o no editor JSON.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "VisualEditor0",<br />            "Effect": "Allow",<br />            "Action": "sts:AssumeRole",<br />            "Resource": "arn:aws:iam::<Account_A_ID>:role/<Account_A_Role_Name>"<br />        }<br />    ]<br />}</pre><br />6. Substitua `<Account_A_ID>` pelo ID da conta A. Substitua `<Account_A_Role_Name>` pelo nome do perfil do IAM que você criou anteriormente.<br />7. Selecione **Revisar política**.<br />8. Em **Nome**, digite um nome para sua política em linha.<br />9. Selecione **Criar política**. | 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. | 1. No painel de navegação do [SageMaker console](https://console.aws.amazon.com/sagemaker/), escolha **Studio**.<br />2. Selecione seu perfil de usuário e, em seguida, escolha **Abrir Studio**.<br />3. Na seção **Início**, escolha **Abrir o assistente de execução**.<br />4. Na seção **Utilitários e arquivos**, escolha **Arquivo de texto**.<br />5. Copie o script de *Exemplo de script de SageMaker shell* na seção [Informações adicionais](#associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-additional) desse padrão e cole a instrução no novo arquivo. Certifique-se de substituir todos os valores de espaço reservado na política.<br />6. Clique com o botão direito do mouse na guia **untitled.txt** do seu novo arquivo e escolha **Renomear texto**. Em **Novo nome**, digite **cross\_account\_git\_clone.sh** e, em seguida, escolha **Renomear**. | AWS DevOps | 
| Invocar o script de shell a partir do terminal do sistema. | 1. Na seção **Início** do [SageMaker console](https://console.aws.amazon.com/sagemaker/), escolha **Abrir o Launcher**.<br />2. Na seção **Utilitários e arquivos**, escolha **Terminal do sistema**.<br />3. Na janela do terminal, execute o seguinte comando:<pre>chmod u+x ./cross_account_git_clone.sh && ./cross_account_git_clone.sh</pre>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>
```