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á.
Conceda às instâncias do SageMaker notebook acesso temporário a um CodeCommit repositório em outra conta AWS
Criado por Helge Aufderheide () AWS
Ambiente: produção | Tecnologias: DevOps; Análise; Aprendizado de máquina e IA; Gestão e governança | AWSserviços: AWS CodeCommit; AWS Identity and Access Management; Amazon SageMaker |
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 mostra como conceder às instâncias de SageMaker notebooks e aos usuários da Amazon acesso temporário a um AWS CodeCommit repositório que está em outra AWS conta. Esse padrão também mostra como você pode conceder permissões granulares para ações específicas que cada entidade pode realizar em cada repositório.
As organizações geralmente armazenam CodeCommit repositórios em uma AWS conta diferente da conta que hospeda seu ambiente de desenvolvimento. Essa configuração de várias contas ajuda a controlar o acesso aos repositórios e reduz o risco de sua exclusão acidental. Para conceder essas permissões entre contas, é uma prática recomendada usar as funções AWS Identity and Access Management (IAM). Em seguida, IAM identidades predefinidas em cada AWS conta podem assumir temporariamente as funções para criar uma cadeia de confiança controlada em todas as contas.
Observação: você pode aplicar um procedimento semelhante para conceder a outras IAM identidades acesso entre contas a um CodeCommit repositório. Para obter mais informações, consulte Configurar o acesso entre contas a um AWS CodeCommit repositório usando funções no Guia do AWS CodeCommit usuário.
Pré-requisitos e limitações
Pré-requisitos
Uma AWS conta ativa com um CodeCommit repositório (conta A)
Uma segunda AWS conta ativa com uma instância de SageMaker notebook (conta B)
Um AWS usuário com permissões suficientes para criar e modificar IAM funções na conta A
Um segundo AWS usuário com permissões suficientes para criar e modificar IAM funções na conta B
Arquitetura
O diagrama a seguir mostra um exemplo de fluxo de trabalho para conceder a uma instância do SageMaker notebook e aos usuários em uma AWS conta acesso cruzado de contas a um CodeCommit repositório:
O diagrama mostra o seguinte fluxo de trabalho:
A função AWS do usuário e a função da instância do SageMaker notebook na conta B assumem um perfil nomeado.
A política de permissões do perfil nomeado especifica uma função de CodeCommit acesso na conta A que o perfil então assume.
A política de confiança da função de CodeCommit acesso na conta A permite que o perfil nomeado na conta B assuma a função de CodeCommit acesso.
A política de IAM permissões do CodeCommit repositório na conta A permite que a função de CodeCommit acesso acesse o CodeCommit repositório.
Pilha de tecnologia
CodeCommit
Git
IAM
pip
SageMaker
Ferramentas
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.
O Git
é um sistema distribuído de controle de versões para rastrear alterações no código-fonte durante o desenvolvimento do software. git-remote-codecommité um utilitário que ajuda você a enviar e extrair código de CodeCommit repositórios estendendo o Git.
pip
é o instalador de pacotes para Python. Você pode usar o pip para instalar pacotes do Python Package Index e outros índices.
Práticas recomendadas
Ao definir permissões com IAM políticas, certifique-se de conceder somente as permissões necessárias para realizar uma tarefa. Para obter mais informações, consulte Aplicar permissões de privilégios mínimos na documentação. IAM
Ao implementar esse padrão, certifique-se de fazer o seguinte:
Confirme se IAM os princípios têm somente as permissões necessárias para realizar ações específicas e necessárias em cada repositório. Por exemplo, é recomendável permitir que IAM os princípios aprovados enviem e mesclem alterações em ramificações específicas do repositório, mas somente solicitem mesclagens em ramificações protegidas.
Confirme se IAM os princípios recebem IAM funções diferentes com base em suas respectivas funções e responsabilidades em cada projeto. Por exemplo, um desenvolvedor terá permissões de acesso diferentes das de um gerente de lançamento ou AWS administrador.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Configure a função de CodeCommit acesso e a política de permissões. | Nota: Para automatizar o processo de configuração manual documentado neste épico, você pode usar um AWS CloudFormation modelo. Na conta que contém o CodeCommit repositório (conta A), faça o seguinte:
Importante: antes de mover essa configuração para seu ambiente de produção, é uma prática recomendada escrever sua própria IAM política que aplique permissões de privilégios mínimos. Para obter mais informações, consulte a seção Informações adicionais desse padrão. | GeralAWS, AWS DevOps |
Conceda à função da instância do SageMaker notebook na conta B permissões para assumir a função de CodeCommit acesso na conta A. | Na conta que contém a IAM função da instância do SageMaker notebook (conta B), faça o seguinte:
Observação: Para visualizar o Amazon Resource Name (ARN) do seu repositório, consulte Exibir detalhes do CodeCommit repositório no Guia do AWS CodeCommit usuário. | GeralAWS, AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Configure um perfil de usuário na instância do AWS SageMaker notebook para assumir a função na conta A. | Importante: verifique se você tem a versão mais recente da interface de linha de AWS comando (AWSCLI) instalada. Na conta que contém a instância do SageMaker notebook (conta B), faça o seguinte:
| GeralAWS, AWS DevOps |
Instale o git-remote-codecommit utilitário. | Siga as instruções na Etapa 2: Instalar git-remote-codecommit no Guia AWS CodeCommit do usuário. | Cientista de dados |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Acesse o CodeCommit repositório usando os comandos Git ou. SageMaker | Para usar Git IAMdiretores que assumem a função da instância do SageMaker notebook na conta B agora podem executar comandos Git para acessar CodeCommit o repositório na conta A. Por exemplo, os usuários podem executar comandos Para obter instruções, consulte Conectar-se a um AWS CodeCommit repositório no Guia do AWS CodeCommit usuário. Para obter informações sobre como usar o Git com CodeCommit, consulte Introdução ao Git AWS CodeCommit no Guia do AWS CodeCommit Usuário. Para usar SageMaker Para usar o Git a partir do SageMaker console, você deve permitir que o Git recupere as credenciais do seu repositório. CodeCommit Para obter instruções, consulte Associar um CodeCommit repositório em uma AWS conta diferente a uma instância do notebook na SageMaker documentação. | Git, console bash |
Recursos relacionados
Mais informações
Restringindo CodeCommit permissões para ações específicas
Para restringir as ações que um IAM diretor pode realizar no CodeCommit repositório, modifique as ações permitidas na política de CodeCommit acesso.
Para obter mais informações sobre CodeCommit API operações, consulte a referência de CodeCommit permissões no Guia AWS CodeCommit do usuário.
Observação: você também pode editar a política AWSCodeCommitPowerUserAWSgerenciada de acordo com seu caso de uso.
Restringindo CodeCommit permissões para repositórios específicos
Para criar um ambiente multilocatário em que mais de um repositório de código possa ser acessado somente por usuários específicos, faça o seguinte:
Crie várias funções de CodeCommit acesso na conta A. Em seguida, configure a política de confiança de cada função de acesso para permitir que usuários específicos na conta B assumam a função.
Restrinja quais repositórios de código cada função pode assumir adicionando uma condição de “Recurso” à política de cada função de CodeCommit acesso.
Exemplo de condição de “Recurso” que restringe o acesso de um IAM principal a um repositório específico CodeCommit
"Resource" : [<REPOSITORY_ARN>,<REPOSITORY_ARN> ]
Observação: para ajudar a identificar e diferenciar vários repositórios de código na mesma AWS conta, você pode atribuir prefixos diferentes aos nomes dos repositórios. Por exemplo, você pode nomear repositórios de código com prefixos que se alinham a diferentes grupos de desenvolvedores, como myproject-subproject1-repo1 e myproject-subproject2-repo1. Em seguida, você pode criar uma IAM função para cada grupo de desenvolvedores com base nos prefixos atribuídos. Por exemplo, você pode criar um perfil chamado myproject-subproject1-repoaccess e conceder a ele acesso a todos os repositórios de código que incluem o prefixo myproject-subproject1.
Exemplo de condição de “Recurso” que se refere a um repositório de código ARN que inclui um prefixo específico
"Resource" : arn:aws:codecommit:<region>:<account-id>:myproject-subproject1-*