

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

# Conectando-se a AWS CodeCommit repositórios com credenciais rotativas
<a name="temporary-access"></a>

Você pode conceder aos usuários acesso aos seus AWS CodeCommit repositórios sem configurar usuários do IAM para eles ou usar uma chave de acesso e uma chave secreta. Para atribuir permissões a identidades federadas, você cria um perfil e define permissões para a perfil. Quando uma identidade federada é autenticada, essa identidade é associada ao perfil e recebe as permissões definidas por ele. Para ter mais informações sobre perfis para federação, consulte [Criar um perfil para um provedor de identidade de terceiros (federação)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) no *Guia do usuário do IAM*. Se usar o Centro de Identidade do IAM, configure um conjunto de permissões. Para controlar o que suas identidades podem acessar após a autenticação, o Centro de Identidade do IAM correlaciona o conjunto de permissões a um perfil no IAM. Para obter informações sobre conjuntos de permissões, consulte [Conjuntos de Permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) no *Guia do Usuário do Centro de Identidade do AWS IAM *. Você também pode configurar o acesso baseado em funções para usuários do IAM acessarem CodeCommit repositórios 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 AWS CodeCommit repositório usando funções](cross-account.md). 

É 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)
+ Multi-factor autenticação (MFA)
+ Federação
+ Login da Amazon
+ Amazon Cognito
+ Facebook
+ Google
+ Provedor de identidade compatível com OpenID Connect (OIDC)

**nota**  
As informações a seguir se aplicam somente ao uso **git-remote-codecommit** ou ao auxiliar de AWS CLI credenciais para se conectar aos CodeCommit repositórios. Como a abordagem recomendada para acesso temporário ou federado ao CodeCommit é a configuração**git-remote-codecommit**, este tópico fornece exemplos de uso desse utilitário. Para obter mais informações, consulte [Etapas de configuração para conexões HTTPS com AWS CodeCommit com git-remote-codecommit](setting-up-git-remote-codecommit.md).   
Você não pode usar credenciais SSH ou Git e HTTPS para se conectar a CodeCommit repositórios com credenciais de acesso rotativas ou temporárias. 

Não será necessário executar estas etapas se todas as seguintes condições forem verdadeiras:
+ Você está conectado a uma instância do Amazon EC2.
+ Você está usando Git e HTTPS com o auxiliar de AWS CLI credenciais para se conectar da instância do Amazon EC2 aos repositórios. CodeCommit 
+ A instância do Amazon EC2 tem um perfil de instância do IAM anexado que contém as permissões de acesso descritas em [Para conexões HTTPS no Linux, macOS ou Unix com o AWS CLI auxiliar de credenciais](setting-up-https-unixes.md) ou [Para conexões HTTPS no Windows com o auxiliar de AWS CLI credenciais](setting-up-https-windows.md).
+ Você instalou e configurou o assistente de credenciais do Git na instância do Amazon EC2, conforme descrito em [Para conexões HTTPS no Linux, macOS ou Unix com o AWS CLI auxiliar de credenciais](setting-up-https-unixes.md) ou [Para conexões HTTPS no Windows com o auxiliar de AWS CLI credenciais](setting-up-https-windows.md).

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

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

Para dar aos usuários acesso temporário aos seus CodeCommit repositórios, conclua as etapas a seguir.



## Etapa 1: Concluir os pré-requisitos
<a name="temporary-access-prerequisites"></a>

Conclua as etapas de configuração para fornecer ao usuário acesso aos seus CodeCommit repositórios usando credenciais rotativas: 
+ Para acesso entre contas, consulte [Passo a passo: delegar acesso entre contas da Amazon Web Services usando perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-walkthrough-crossacct.html) e [Configurar o acesso entre contas a um AWS CodeCommit repositório usando funções](cross-account.md).
+ Para SAML e federação, consulte [ Usando o sistema de autenticação da sua organização para conceder acesso a AWS recursos ](https://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#IdentityBrokerApplication) e [ Sobre a federação baseada em AWS STS SAML 2.0. ](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html)
+ Para MFA, consulte Como [ usar dispositivos de Multi-Factor autenticação (MFA) AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingMFA.html) e [ criar credenciais de segurança temporárias para habilitar o acesso para usuários do IAM. ](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSessionTokens.html)
+ Para fazer login com Amazon, Amazon Cognito, Facebook, Google ou qualquer provedor de OIDC-compatible identidade, consulte [ Sobre a Federação ](https://docs.aws.amazon.com/STS/latest/UsingSTS/web-identity-federation.html) de Identidades AWS STS na Web.

Use as informações em [Autenticação e controle de acesso para AWS CodeCommit](auth-and-access-control.md) para especificar as CodeCommit permissões que você deseja conceder ao usuário.

## Etapa 2: obter nome do perfil ou credenciais de acesso
<a name="temporary-access-get-credentials"></a>

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:
+ Para acesso entre contas, chame o [ comando AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) assume-role ou chame a API. AWS STS [ AssumeRole ](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
+ Para SAML, chame o comando AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html) assume-role-with-saml ou a API. AWS STS [ AssumeRoleWithSAML ](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)
+ Para federação, chame os comandos AWS CLI [ assume-role ](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) ou [https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html](https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html) get-federation-token ou as APIs or. AWS STS [ AssumeRole ](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) [ GetFederationToken ](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)
+ Para MFA, chame o comando AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html](https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html) get-session-token ou a API. AWS STS [ GetSessionToken ](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html)
+ Para fazer login com Amazon, Amazon Cognito, Facebook, Google ou qualquer provedor de OIDC-compatible identidade, chame o comando AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) assume-role-with-web-identity ou a API. AWS STS [ AssumeRoleWithWebIdentity ](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)



## Etapa 3: Instale o git-remote-codecommit e configure o AWS CLI
<a name="temporary-access-configure-credentials"></a>

É necessário configurar o computador local para usar as credenciais de acesso instalando [**git-remote-codecommit**](https://pypi.org/project/git-remote-codecommit/) e configurando um perfil na AWS CLI.

1. Siga as instruções em [Configurar ](setting-up.md) 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 CodeCommit repositórios usando credenciais rotativas.

1. Você pode associar as credenciais ao perfil AWS CLI nomeado do usuário de uma das seguintes maneiras. 
   + Se você estiver assumindo uma função para acessar CodeCommit, configure um perfil nomeado com as informações necessárias para assumir essa função. Por exemplo, se você quiser assumir uma função chamada {{CodeCommitAccess}} na conta 11111111111111 da Amazon Web Services, você pode configurar um perfil padrão para usar ao trabalhar com outros AWS recursos e um perfil nomeado para usar ao assumir essa função. Os comandos a seguir criam um perfil nomeado {{CodeAccess}} que assume uma função chamada{{CodeCommitAccess}}. O nome de usuário {{Maria\_Garcia}} está associado à sessão e o perfil padrão é definido como a origem de suas AWS credenciais:

     ```
     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 excluir um repositório denominado {{MyDemoRepo}}: 

     ```
     git clone codecommit://{{CodeAccess}}@{{MyDemoRepo}}
     ```
   + Se você estiver usando a federação de identidade da Web e o OpenID Connect (OIDC), configure um perfil nomeado que faça a chamada da `AssumeRoleWithWebIdentity` API AWS Security Token Service (AWS STS) em seu nome para atualizar as credenciais temporárias. Use o **aws configure set** comando ou edite manualmente o `~/.aws/credentials` arquivo (para Linux) ou o `%UserProfile%.aws\credentials` arquivo (para Windows) para adicionar um perfil AWS CLI nomeado com os valores de configuração necessários. Por exemplo, para criar um perfil que assuma a {{CodeCommitAccess}} função 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) e [Usar um perfil do IAM na AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) no *Guia do usuário do AWS Command Line Interface *.

## Etapa 4: acessar os CodeCommit repositórios
<a name="temporary-access-use-credentials"></a>

Supondo que seu usuário tenha seguido as instruções [Conexão a um repositório](how-to-connect.md) para se conectar aos CodeCommit repositórios, ele então usa a funcionalidade estendida fornecida pelo **git-remote-codecommit** Git para chamar **git clone****git push**, **git pull** clonar, enviar e extrair dos CodeCommit repositórios aos quais ele tem acesso. 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 usa AWS CLI e especifica o perfil AWS CLI nomeado associado às credenciais de acesso rotativo, os resultados com escopo definido para esse perfil são retornados.

