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á.
Associar um AWS CodeCommit repositório em uma AWS conta ao SageMaker Studio em outra conta
Criado por Laurens van der Maas (AWS) e Aubrey Oosthuizen () AWS
Ambiente: produção | Tecnologias: aprendizado de máquina e IA DevOps; Segurança, identidade, conformidade; CloudNative | AWSserviços: AWS CodeCommit; Amazon SageMaker; AWS Identity and Access Management |
Resumo
Esse padrão fornece instruções e código sobre como associar um AWS CodeCommit repositório em uma AWS conta (Conta A) com o Amazon SageMaker Studio em outra AWS conta (Conta B). Para configurar a associação, você deve criar uma política e uma função de AWS Identity and Access Management (IAM) na Conta A e uma política IAM embutida na Conta B. Em seguida, use um script de shell para clonar o CodeCommit repositório da Conta A para o SageMaker Studio na Conta B.
Pré-requisitos e limitações
Pré-requisitos
Duas AWScontas
, uma contendo o CodeCommit repositório e a outra contendo um SageMaker domínio com um usuário SageMaker Domínio e usuário provisionados, com acesso à Internet ou acesso ao CodeCommit AWS Security Token Service (AWSSTS) por meio de endpoints de rede privada virtual (VPC)
Uma compreensão básica de IAM
Uma compreensão básica do SageMaker Studio
Uma compreensão básica do Git
e CodeCommit
Limitações
Esse padrão se aplica somente ao SageMaker Studio, não RStudio à Amazon SageMaker.
Arquitetura
Pilha de tecnologia
Amazon SageMaker
SageMaker Estúdio Amazon
AWS CodeCommit
AWSIdentity 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 Studio na Conta B.
O diagrama mostra o seguinte fluxo de trabalho:
Um usuário assume a
MyCrossAccountRepositoryContributorRole
função na Conta A por meio dasts:AssumeRole
função, enquanto usa a função de SageMaker execução no SageMaker Studio na Conta B. A função assumida inclui as CodeCommit permissões para clonar e interagir com o repositório especificado.O usuário executa comandos Git a partir do terminal do sistema no SageMaker Studio.
Automação e escala
Esse padrão consiste em etapas manuais que podem ser automatizadas usando o AWSCloud Development Kit (AWSCDK) ou o Terraform
Ferramentas
AWSferramentas
SageMakerA Amazon é 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 Studio é 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.
AWSO 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
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie uma IAM política para acesso ao repositório na Conta A. |
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. |
| AWS DevOps |
Tarefa | Descrição | 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. |
| AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie o script de shell no SageMaker Studio na Conta B. |
| AWS DevOps |
Invocar o script de shell a partir do terminal do sistema. |
Você clonou seu CodeCommit repositório em uma conta cruzada do SageMaker 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 pela AWS região do 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 SageMaker shell
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 pela AWS região do 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>