

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

# AWS Autenticação e tokens do CodeArtifact
<a name="tokens-authentication"></a>

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 CodeArtifact referência de permissões](auth-and-access-control-permissions-reference.md). Para informações gerais sobre permissões no CodeArtifact, consulte [Como AWS CodeArtifact funciona com o IAM](security_iam_service-with-iam.md).

Para obter um token de autorização do CodeArtifact, você deve chamar a [API GetAuthorizationToken](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html). 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) no *Guia do usuário do IAM*.

## Tokens criados com o comando `login`
<a name="auth-token-login"></a>

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](domain-overview.md#domain-overview-cross-account). | 
| `--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\$1 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. | 
| \$1Um 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 [Configure e use o npm com CodeArtifact](npm-auth.md). Para Python, consulte [Usando CodeArtifact com Python](using-python.md).

## Permissões necessárias para chamar a API `GetAuthorizationToken`
<a name="get-auth-token-permissions"></a>

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`
<a name="get-auth-token-api"></a>

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:
+ Para obter orientação sobre tokens e variáveis de ambiente, consulte [Passar um token de autenticação usando uma variável de ambiente](#env-var).
+ Para usuários do Python, consulte [Configurar o pip sem o comando login](python-configure-pip.md#python-configure-without-pip) ou [Configure e use o twine com CodeArtifact](python-configure-twine.md).
+ Para usuários do Maven, consulte [Usar o CodeArtifact com o Gradle](maven-gradle.md) ou [Use CodeArtifact com mvn](maven-mvn.md).
+ Para usuários do npm, consulte [Configuração do npm sem usar o comando login](npm-auth.md#configuring-npm-without-using-the-login-command).

## Passar um token de autenticação usando uma variável de ambiente
<a name="env-var"></a>

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`](#get-auth-token-api).

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 [Instale ou atualize e, em seguida, configure o AWS CLI](get-set-up-install-cli.md). 

1. 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](domain-overview.md#domain-overview-cross-account).
   + 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
<a name="revoke-access"></a>

 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_disable-perms.html) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) ou [Excluindo um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting). 