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. Chamarloginbusca um token comGetAuthorizationTokene 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 comlogin, você pode chamarget-authorization-tokendiretamente 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 |
|---|---|---|
|
Sim |
O gerenciador de pacotes no qual se autenticar. Os valores possíveis são |
|
Sim |
O nome de domínio ao qual o repositório pertence. |
|
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. |
|
Sim |
O nome do repositório no qual se autenticar. |
|
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. |
|
Não |
Associa um namespace à sua ferramenta de repositório. |
|
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 |
||
O exemplo a seguir mostra como obter um token de autorização com o comando login.
aws codeartifact login \ --tooldotnet | npm | nuget | pip | swift | twine\ --domainmy_domain\ --domain-owner111122223333\ --repositorymy_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 \ --domainmy_domain\ --domain-owner111122223333\ --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 \ --domainmy_domain\ --domain-owner111122223333\ --query authorizationToken \ --output text \ --duration-seconds3600
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 \ --domainmy_domain\ --domain-owner111122223333\ --query authorizationToken \ --output text \ --duration-seconds0
Consulte a documentação a seguir para obter mais informações:
-
Para obter orientação sobre tokens e variáveis de ambiente, consulte Passar um token de autenticação usando uma variável de ambiente.
-
Para usuários do Python, consulte Configurar o pip sem o comando login ou Configurar e usar o twine com o CodeArtifact.
-
Para usuários do Maven, consulte Usar o CodeArtifact com o Gradle ou Usar o CodeArtifact com mvn.
-
Para usuários do npm, consulte Configuração do npm sem usar o comando login.
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.
-
Configure suas credenciais AWS conforme descrito em Instalar ou atualizar e configurar a AWS CLI.
-
Defina a
CODEARTIFACT_AUTH_TOKENvariá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 --domainmy_domain--domain-owner111122223333--query authorizationToken --output text` -
Windows (usando o shell de comando padrão):
for /f %i in ('aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i -
Windows PowerShell:
$env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--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.