Associe um AWS CodeCommit repositório em um Conta da AWS com o Amazon SageMaker AI Studio Classic em outra conta - Recomendações da AWS

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

Criado por Laurens van der Maas (AWS) e Aubrey Oosthuizen () AWS

Resumo

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

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 AWS Identity and Access Management (IAM) e uma função na Conta A e uma política IAM embutida 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

Pré-requisitos

Limitações

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

Arquitetura

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

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.

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

Automação e escala

Esse padrão consiste em etapas manuais que podem ser automatizadas usando o AWS Cloud Development Kit (AWS CDK), AWS CloudFormation, ou Terraform.

Ferramentas

AWSferramentas

  • O Amazon SageMaker AI é 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 é 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.

  • AWS CodeCommité um serviço de controle de versão que ajuda você a armazenar e gerenciar repositórios Git de forma privada, sem precisar gerenciar seu 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

  • AWS Identity and Access Management (IAM) 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 é um sistema distribuído de controle de versões para rastrear alterações no código-fonte durante o desenvolvimento do software.

Épicos

TarefaDescriçãoHabilidades necessárias

Crie uma IAM política para acesso ao repositório na Conta A.

  1. Faça login no AWS Management Console e abra o IAMconsole.

  2. No painel de navegação, selecione Políticas e, em seguida, Criar política.

  3. Escolha a JSONguia.

  4. Copie a declaração de IAMpolítica de Exemplo de política na seção Informações adicionais desse padrão e cole a declaração no JSON editor. Certifique-se de substituir todos os valores de espaço reservado na política.

  5. Selecione Próximo: Tags e, em seguida,Próximo: Análise.

  6. Em Nome, insira um nome para a política. Observação: nesse padrão, a IAM política é chamada deCrossAccountAccessForMySharedDemoRepo, mas você pode escolher o nome de política que preferir.

  7. Escolha Criar política.

dica

É uma prática recomendada restringir o escopo de suas IAM políticas às permissões mínimas necessárias para seu caso de uso.

AWS DevOps

Crie uma IAM função para acesso ao repositório na Conta A.

  1. No painel de navegação do IAMconsole, escolha Funções e, em seguida, escolha Criar função.

  2. Para Tipo de entidade confiável, selecione AWSconta.

  3. Na seção AWSConta, selecione Outra AWS conta.

  4. Em ID da conta, insira o ID da conta para a conta B.

  5. Na página Adicionar permissões, procure e escolha a política CrossAccountAccessForMySharedDemoRepo que você criou anteriormente.

  6. Escolha Próximo.

  7. Em Nome do perfil, insira um nome. Nota: Nesse padrão, o nome da IAM função é chamado deMyCrossAccountRepositoryContributorRole, mas você pode escolher o nome da função que preferir.

  8. Escolha Create role e, em seguida, copie o Amazon Resource Name (ARN) da nova função.

AWS DevOps
TarefaDescriçãoHabilidades 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 IAMconsole, escolha Funções.

  2. Pesquise e escolha a função de execução associada ao seu usuário do SageMaker AI Domain na Conta B.

  3. Escolha Adicionar permissões e, em seguida, Criar política em linha.

  4. Escolha a JSONguia.

  5. Copie a declaração de política a seguir e cole-a no JSON editor.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<Account_A_ID>:role/<Account_A_Role_Name>" } ] }
  6. <Account_A_ID>Substitua pelo ID da conta A. <Account_A_Role_Name> Substitua pelo nome da IAM função que você criou anteriormente.

  7. Escolha Revisar política.

  8. Em Nome, digite um nome para sua política em linha.

  9. Escolha Criar política.

AWS DevOps
TarefaDescriçãoHabilidades necessárias

Crie o script de shell no SageMaker AI Studio Classic na Conta B.

  1. No painel de navegação do SageMaker console, escolha Studio.

  2. Selecione seu perfil de usuário e, em seguida, escolha Abrir Studio.

  3. Na seção Início, escolha Abrir o assistente de execução.

  4. Na seção Utilitários e arquivos, escolha Arquivo de texto.

  5. Copie o script de Exemplo de script de SageMaker shell na seção Informações adicionais 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.

  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, escolha Abrir o Launcher.

  2. Na seção Utilitários e arquivos, escolha Terminal do sistema.

  3. Na janela do terminal, execute o seguinte comando:

    chmod u+x ./cross_account_git_clone.sh && ./cross_account_git_clone.sh

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

Exemplo IAM de política

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.

  • <Account_A_Role_Name>Substitua pelo nome da IAM função 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>