Conectar-se a repositórios do AWS CodeCommit com credenciais rotativas - AWS CodeCommit

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á.

Conectar-se a repositórios do AWS CodeCommit com credenciais rotativas

É possível conceder aos usuários acesso aos repositórios do AWS CodeCommit sem configurar usuários do IAM para eles nem usar chave de acesso e chave secreta. Para atribuir permissões a identidades federadas, você cria um perfil e define permissões para esse perfil. Quando uma identidade federada é autenticada, ela é associada ao perfil e recebe as permissões definidas pelo perfil. Para obter mais informações sobre perfis para federação, consulte Criar um perfil para um provedor de identidades de terceiros no Guia do usuário do IAM. Se você usar o IAM Identity Center, configure um conjunto de permissões. Para controlar o que suas identidades podem acessar após a autenticação, o IAM Identity Center correlaciona o conjunto de permissões a um perfil no IAM. Para obter informações sobre conjuntos de permissões, consulte Permission sets (Conjuntos de permissões) no Guia do usuário do AWS IAM Identity Center. Também é possível configurar o acesso baseado em função para que os usuários do IAM acessem repositórios do CodeCommit em contas separadas da Amazon Web Services (uma técnica conhecida como acesso entre contas). Para obter uma explicação detalhada sobre como configurar o acesso entre várias contas de um repositório, consulte Configurar o acesso entre contas a um repositório do AWS CodeCommit usando funções.

É possível configurar o acesso para usuários que desejam ou devem ser autenticados por meio de métodos como:

  • Security Assertion Markup Language (SAML)

  • Autenticação multifator (MFA)

  • Federação

  • Login with Amazon

  • Amazon Cognito

  • Facebook

  • Google

  • Provedor de identidade compatível com OpenID Connect (OIDC)

nota

As informações a seguir se aplicam apenas ao uso de git-remote-codecommit ou do assistente de credenciais da AWS CLI para se conectar a repositórios do CodeCommit. Como a abordagem recomendada para acesso temporário ou federado ao CodeCommit é configurar git-remote-codecommit, este tópico fornece exemplos usando esse utilitário. Para obter mais informações, consulte Etapas de configuração para conexões HTTPS com o AWS CodeCommit com git-remote-codecommit.

Não é possível usar credenciais SSH ou Git e HTTPS para se conectar a repositórios do CodeCommit com credenciais de acesso temporárias ou rotativas.

Não será necessário executar estas etapas se todas as seguintes condições forem verdadeiras:

As instâncias do Amazon EC2 que atendem aos requisitos anteriores já estão configuradas para comunicar credenciais de acesso temporárias ao CodeCommit em seu nome.

nota

Você pode configurar e usar git-remote-codecommit em instâncias do Amazon EC2.

Para oferecer aos usuários acesso temporário aos seus repositórios do CodeCommit, conclua as seguintes etapas.

Etapa 1: conclua os pré-requisitos

Conclua as etapas de configuração para fornecer a um usuário acesso aos repositórios do CodeCommit usando credenciais rotativas:

Use as informações em Autenticação e controle de acesso para o AWS CodeCommit para especificar as permissões do CodeCommit que deseja conceder ao usuário.

Etapa 2: obter nome do perfil ou credenciais de acesso

Se você quiser que seus usuários acessem repositórios assumindo uma função, forneça aos usuários o nome de recurso da Amazon (ARN) dessa função. Caso contrário, dependendo da forma como você configura o acesso, seu usuário pode obter credenciais rotativas de uma das seguintes maneiras:

Etapa 3: instalar git-remote-codecommit e configurar a AWS CLI

É necessário configurar o computador local para usar as credenciais de acesso instalando git-remote-codecommit e configurando um perfil na AWS CLI.

  1. Siga as instruções em Configuração para configurar a AWS CLI. Use o comando aws configure para configurar um ou mais perfis. Considere criar um perfil nomeado para usar ao se conectar a repositórios do CodeCommit usando credenciais rotativas.

  2. É possível associar a credencial de acesso temporária ao perfil nomeado da AWS CLI do usuário das formas a seguir.

    • Se você assumir um perfil para acessar o CodeCommit, configure um perfil nomeado com as informações necessárias para assumir esse perfil. Por exemplo, se você quiser assumir um perfil denominado CodeCommitAccess na conta 111111111111 da Amazon Web Services, poderá configurar um perfil padrão para usar para trabalhar com outros recursos da AWS e um perfil nomeado para usar para assumir esse perfil. Os comandos a seguir criam um perfil nomeado chamado CodeAccess que assume uma função denominada CodeCommitAccess. O nome de usuário Maria Garcia está associado à sessão e o perfil padrão é definido como a origem de suas credenciais da AWS:

      aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess aws configure set source_profile default --profile CodeAccess aws configure set role_session_name "Maria_Garcia" --profile CodeAccess

      Se você quiser verificar as alterações, visualize ou edite manualmente o arquivo ~/.aws/config (para Linux) ou o arquivo %UserProfile%.aws\config (para Windows) e revise as informações sob o perfil nomeado. Por exemplo, o arquivo pode ser semelhante ao seguinte:

      [default] region = us-east-1 output = json [profile CodeAccess] source_profile = default role_session_name = Maria_Garcia role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess

      Depois de configurar seu perfil nomeado, você poderá clonar repositórios do CodeCommit com o utilitário git-remote-codecommit usando o perfil nomeado. Por exemplo, para clonar um repositório nomeado MyDemoRepo:

      git clone codecommit://CodeAccess@MyDemoRepo
    • Se estiver usando federação de identidades da web e OpenID Connect (OIDC), configure um perfil nomeado que faça a chamada de API AssumeRoleWithWebIdentity do AWS Security Token Service (AWS STS) em seu nome para atualizar credenciais temporárias. Use o comando aws configure set ou edite manualmente o arquivo ~/.aws/credentials (para Linux) ou o arquivo %UserProfile%.aws\credentials (para Windows) para adicionar um perfil nomeado da AWS CLI com os valores de configuração necessários. Por exemplo, para criar um perfil que assuma o perfil CodeCommitAccess e use um arquivo de token de identidade da web ~/my-credentials/my-token-file:

      [CodeCommitWebIdentity] role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess web_identity_token_file=~/my-credentials/my-token-file role_session_name = Maria_Garcia

    Para obter mais informações, consulte Configurar a AWS Command Line Interface e Usar um perfil do IAM na AWS CLI no Guia do usuário do AWS Command Line Interface.

Etapa 4: acessar os repositórios do CodeCommit

Considerando que o usuário tenha seguido as instruções em Conexão a um repositório para se conectar aos repositórios do CodeCommit, ele usará a funcionalidade estendida fornecida por git-remote-codecommit e Git para chamar git clone, git push e git pull para clonar, enviar via push para repositórios do CodeCommit aos quais o usuário tem acesso e extrair deles. Por exemplo, para clonar um repositório:

git clone codecommit://CodeAccess@MyDemoRepo

Os comandos commit, push e pull do Git usam sintaxe regular do Git.

Quando o usuário utilizar o AWS CLI e especificar o perfil nomeado da AWS CLI associado às credenciais de acesso rotativas, os resultados com escopo nesse perfil serão retornados.