Associação de um repositório do AWS CodeCommit em uma Conta da AWS com o Amazon SageMaker AI Studio Classic em outra conta
Laurens van der Maas e Aubrey Oosthuizen, Amazon Web Services
Resumo
Aviso: o AWS CodeCommit não está mais disponível para novos clientes. Os clientes atuais do AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais
Este padrão fornece instruções e código sobre como associar um repositório do AWS CodeCommit em uma Conta da AWS (Conta A) com o Amazon SageMaker AI Studio Classic em outra Conta da AWS (Conta B). Para configurar a associação, você deve criar um perfil e uma política do AWS Identity and Access Management (IAM) na Conta A e uma política em linha do IAM na Conta B. Em seguida, você emprega um script de shell para clonar o repositório do CodeCommit da Conta A para o Amazon SageMaker AI Studio Classic na Conta B.
Pré-requisitos e limitações
Pré-requisitos
Duas Contas da AWS
, uma contendo o repositório do CodeCommit e a outra contendo um domínio do SageMaker AI com um usuário Domínio e usuário do SageMaker AI provisionados, com acesso à internet ou acesso ao CodeCommit e ao AWS Security Token Service (AWS STS) por meio de endpoints da rede privada virtual (VPC)
Conceitos básicos do IAM
Noções básicas sobre o SageMaker AI Studio Classic
Noções básicas sobre o Git
e o CodeCommit
Limitações
Este padrão é válido apenas para o SageMaker AI Studio Classic e não para o RStudio no Amazon SageMaker AI.
Arquitetura
Pilha de tecnologia
Amazon SageMaker AI
Amazon SageMaker AI Studio Classic
AWS CodeCommit
AWS Identity and Access Management (IAM)
Git
Arquitetura de destino
O diagrama apresentado a seguir ilustra uma arquitetura que associa um repositório do CodeCommit da Conta A ao SageMaker AI Studio Classic na Conta B.

O diagrama mostra o seguinte fluxo de trabalho:
Um usuário assume o perfil
MyCrossAccountRepositoryContributorRolena Conta A por meio do perfilsts:AssumeRole, enquanto usa o perfil de execução do SageMaker AI no SageMaker AI Studio Classic na Conta B. O perfil assumido inclui permissões do CodeCommit para clonar e interagir com o repositório especificado.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), o AWS CloudFormation ou o Terraform
Ferramentas
Ferramentas da AWS
O Amazon SageMaker AI é um serviço gerenciado de machine learning (ML) que ajuda no desenvolvimento e no treinamento de modelos de ML e, em seguida, na implantação desses modelos em um ambiente hospedado pronto para produção.
O Amazon SageMaker AI Studio Classic é um ambiente de desenvolvimento integrado (IDE) baseado na web para machine learning, que possibilita a criação, o treinamento, a depuração, a implantação e o monitoramento dos modelos de machine learning.
O AWS CodeCommit é 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: o AWS CodeCommit não está mais disponível para novos clientes. Os clientes atuais do AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais
OAWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus recursos AWS controlando quem está autenticado e autorizado a usá-los.
Outras ferramentas
O Git
é um sistema distribuído de controle de versões para rastrear alterações no código-fonte durante o desenvolvimento do software.
Épicos
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Criar uma política do IAM para acesso ao repositório na conta A. |
dicaÉ 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. |
| AWS DevOps |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Anexe uma política em linha ao perfil de execução vinculado ao seu usuário do domínio SageMaker na Conta B. |
| AWS DevOps |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Crie o script de shell no SageMaker AI Studio Classic da Conta B. |
| AWS DevOps |
Invocar o script de shell a partir do terminal do sistema. |
Você clonou o repositório do CodeCommit em um SageMaker AI Studio entre contas. Agora você pode executar todos os comandos do Git no terminal do sistema. | AWS DevOps |
Mais informações
Exemplo de política do IAM
Para usar este exemplo, você precisa fazer o seguinte:
Substitua
<CodeCommit_Repository_Region>pela Região da AWS correspondente ao repositório.Substitua
<Account_A_ID>pelo ID da conta para a conta A.Substitua
<CodeCommit_Repository_Name>pelo nome do seu repositório do CodeCommit 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 para o SageMaker AI
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.Substitua
<CodeCommit_Repository_Region>pela Região da AWS correspondente ao repositório.Substitua
<CodeCommit_Repository_Name>pelo nome do seu repositório do CodeCommit 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>