AWS Autenticação e tokens do CodeArtifact - CodeArtifact

AWS Autenticação e tokens do CodeArtifact

O CodeArtifact exige que os usuários se autentiquem no serviço para publicar ou consumir versões do pacote. Você deve se autenticar no serviço CodeArtifact criando um token de autorização usando suas credenciais do AWS. Para criar um token de autorização, é necessário ter as permissões corretas. Para obter as permissões necessárias para criar um token de autorização, consulte a entrada GetAuthorizationToken no AWS Referência de permissões do CodeArtifact. Para informações gerais sobre permissões no CodeArtifact, consulte Como o AWS CodeArtifact funciona com o IAM.

Para obter um token de autorização do CodeArtifact, você deve chamar a API GetAuthorizationToken. Usando o AWS CLI, você pode chamar GetAuthorizationToken com o comando login ou get-authorization-token.

nota

Os usuários root não podem chamar GetAuthorizationToken.

  • aws codeartifact login: este comando facilita a configuração de gerenciadores de pacotes comuns para usar o CodeArtifact em uma única etapa. Chamar login busca um token com GetAuthorizationToken e configura seu gerenciador de pacotes com o token e o endpoint correto do repositório do CodeArtifact. Os gerenciadores de pacotes de suporte são os seguintes:

    • dotnet

    • npm

    • nuget

    • pip

    • swift

    • twine

  • aws codeartifact get-authorization-token: para gerenciadores de pacotes não compatíveis com login, você pode chamar get-authorization-token diretamente e depois configurar seu gerenciador de pacotes com o token conforme necessário, por exemplo, adicionando-o a um arquivo de configuração ou armazenando-o em uma variável de ambiente.

Os tokens de autenticação do CodeArtifact são válidos por um período padrão de 12 horas. Os tokens podem ser configurados com uma vida útil entre 15 minutos e 12 horas. Quando a vida útil expirar, você deverá obter outro token. A vida útil do token começa após login ou get-authorization-token após a chamada.

Se login ou get-authorization-token for chamado enquanto assume uma função, você pode configurar a vida útil do token para ser igual ao tempo restante na duração da sessão da função definindo o valor de --duration-seconds para 0. Caso contrário, a vida útil do token é independente da duração máxima da sessão da função. Por exemplo, suponha que você chame sts assume-role e especifique uma duração de sessão de 15 minutos e, em seguida, chame login para obter um token de autorização do CodeArtifact. Nesse caso, o token é válido por todo o período de 12 horas, mesmo que seja maior do que a duração da sessão de 15 minutos. Para obter informações sobre como controlar a duração da sessão, consulte Como usar perfis do IAM no Guia do usuário do IAM.

Tokens criados com o comando login

O comando aws codeartifact login busca um token com GetAuthorizationToken e configura seu gerenciador de pacotes com o token e o endpoint correto do repositório do CodeArtifact.

A tabela a seguir descreve os parâmetros para o comando login.

Parameter Obrigatório Descrição

--tool

Sim

O gerenciador de pacotes no qual se autenticar. Os valores possíveis são dotnet, npm, nuget, pip, swift e twine.

--domain

Sim

O nome de domínio ao qual o repositório pertence.

--domain-owner

Não

O ID do proprietário do domínio. Esse parâmetro é necessário se você estiver acessando um domínio pertencente a uma conta AWS na qual você não está autenticado. Para obter mais informações, consulte Domínios entre contas.

--repository

Sim

O nome do repositório no qual se autenticar.

--duration-seconds

Não

O tempo, em segundos, durante o qual as informações de login são válidas. O valor mínimo é 900* e o valor máximo é 43200.

--namespace

Não

Associa um namespace à sua ferramenta de repositório.

--dry-run

Não

Imprima somente os comandos que seriam executados para conectar sua ferramenta ao seu repositório sem fazer nenhuma alteração na sua configuração.

*Um valor de 0 também é válido ao chamar login enquanto assume uma função. Chamar login com --duration-seconds 0 cria um token com uma vida útil igual ao tempo restante na duração da sessão de uma função assumida.

O exemplo a seguir mostra como obter um token de autorização com o comando login.

aws codeartifact login \ --tool dotnet | npm | nuget | pip | swift | twine \ --domain my_domain \ --domain-owner 111122223333 \ --repository my_repo

Para obter orientações específicas sobre como usar o comando login com o npm, consulte Configurar e usar o npm com o CodeArtifact. Para Python, consulte Usando o CodeArtifact com Python.

Permissões necessárias para chamar a API GetAuthorizationToken

As permissões sts:GetServiceBearerToken e codeartifact:GetAuthorizationToken são necessárias para chamar a API GetAuthorizationToken do CodeArtifact.

Para usar um gerenciador de pacotes com um repositório do CodeArtifact, seu usuário ou perfil do IAM deve permitir sts:GetServiceBearerToken. Embora sts:GetServiceBearerToken possa ser adicionado a uma política de recursos de domínio do CodeArtifact, a permissão não terá efeito nessa política.

Tokens criados com a API GetAuthorizationToken

Você pode chamar get-authorization-token para obter um token de autorização do CodeArtifact.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text

Você pode alterar por quanto tempo um token é válido usando o argumento --duration-seconds. O valor mínimo é 900 e o valor máximo é 43200. O exemplo a seguir cria um token que durará 1 hora (3600 segundos).

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text \ --duration-seconds 3600

Se estiver chamando get-authorization-token enquanto assume uma função, a vida útil do token é independente da duração máxima da sessão da função. Você pode configurar o token para expirar quando a duração da sessão da função assumida expirar definindo --duration-seconds como 0.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text \ --duration-seconds 0

Consulte a documentação a seguir para obter mais informações:

Passar um token de autenticação usando uma variável de ambiente

O CodeArtifact AWS usa tokens de autorização fornecidos pela API GetAuthorizationToken para autenticar e autorizar solicitações de ferramentas de criação, como Maven e Gradle. Para mais informações sobre esses tokens de autenticação, consulte Tokens criados com a API GetAuthorizationToken.

Você pode armazenar esses tokens de autenticação em uma variável de ambiente que pode ser lida por uma ferramenta de compilação para obter o token necessário para buscar pacotes de um repositório do CodeArtifact ou publicar pacotes nele.

Por motivos de segurança, essa abordagem é preferível a armazenar o token em um arquivo onde ele possa ser lido por outros usuários ou processos, ou acidentalmente verificado no controle de origem.

  1. Configure suas credenciais AWS conforme descrito em Instalar ou atualizar e configurar a AWS CLI.

  2. Defina a CODEARTIFACT_AUTH_TOKEN variável de ambiente:

    nota

    Em alguns cenários, você não precisa incluir o argumento --domain-owner. Para obter mais informações, consulte Domínios entre contas.

    • macOS ou Linux:

      export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    • Windows (usando o shell de comando padrão):

      for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
    • Windows PowerShell:

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text

Revogando tokens de autorização do CodeArtifact

Quando um usuário autenticado cria um token para acessar os recursos do CodeArtifact, esse token dura até que seu período de acesso personalizável termine. O período de acesso padrão é de 12 horas. Em alguns casos, é possível revogar o acesso a um token antes que o período de acesso expire. Você pode revogar o acesso aos recursos do CodeArtifact seguindo estas instruções.

Se você criou o token de acesso usando credenciais de segurança temporárias, como funções assumidas ou acesso de usuário federado, pode revogar o acesso atualizando uma política do IAM para negar acesso. Para obter informações, consulte Desativando as permissões de credenciais de segurança temporárias no Guia do usuário do IAM.

Se você usou credenciais de usuário do IAM de longo prazo para criar o token de acesso, deverá modificar a política do usuário para negar o acesso ou excluir o usuário do IAM. Para obter mais informações, consulte Alteração de permissões para um usuário do IAM ou Excluindo um usuário do IAM.