AWS CodeCommit não está mais disponível para novos clientes. Os clientes atuais do AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais
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 AWS CodeCommit repositório 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:
-
Você está conectado a uma instância do Amazon EC2.
-
Você está usando Git e HTTPS com o assistente de credenciais da AWS CLI para se conectar da instância do Amazon EC2 a repositórios do 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 assistente de credenciais da AWS CLI ou Para conexões HTTPS no Windows com o assistente de credenciais da AWS CLI.
-
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 assistente de credenciais da AWS CLI ou Para conexões HTTPS no Windows com o assistente de credenciais da AWS CLI.
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:
-
Para acesso entre contas, consulte Passo a passo: delegar acesso entre contas da Amazon Web Services usando perfis do IAM e Configurar o acesso entre contas a um AWS CodeCommit repositório usando funções.
-
Para saber mais sobre SAML e federação, consulte Uso do sistema de autenticação de sua organização para conceder acesso a recursos da AWS e Sobre a federação baseada em SAML 2.0 do AWS STS.
-
Para saber mais sobre MFA, consulte Usar dispositivos de autenticação multifator (MFA) com a AWS e Criar credencias de segurança temporárias para habilitar o acesso de usuários do IAM.
-
Para fazer login com Amazon, Amazon Cognito, Facebook, Google ou qualquer provedor de identidade compatível com OIDC, consulte Sobre federação de identidades web do AWS STS.
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:
-
Para obter acesso a várias contas, chame o comando AWS CLI assume-role ou a API AWS STSAssumeRole.
-
Para obter SAML, chame o comando AWS CLI assume-role-with-saml AWS STS ou a API AssumeRoleWithSAML.
-
Para obter federação, chame os comandos AWS CLI assume-role ou get-federation-token ou as APIs AWS STS AssumeRole ou GetFederationToken.
-
Para obter MFA, chame o comando AWS CLI get-session-token ou a API AWS STS GetSessionToken.
-
Para fazer login com Amazon, Amazon Cognito, Facebook, Google ou qualquer provedor de identidade compatível com OIDC, chame o comando assume-role-with-web-identity da AWS CLI ou a API AssumeRoleWithWebIdentity do AWS STS.
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
-
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.
-
É 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 chamadoCodeAccess
que assume uma função denominadaCodeCommitAccess
. O nome de usuárioMaria 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
--profileCodeAccess
aws configure set source_profile default --profileCodeAccess
aws configure set role_session_name "Maria_Garcia
" --profileCodeAccess
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 perfilCodeCommitAccess
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=~/
role_session_name = Maria_Garciamy-credentials
/my-token-file
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.