

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

# Autenticação de registro privado no Amazon ECR
<a name="registry_auth"></a>

Você pode usar o Console de gerenciamento da AWS AWS CLI, o ou os AWS SDKs para criar e gerenciar repositórios privados. Você também pode usar esses métodos para realizar algumas ações em imagens, como listá-las ou excluí-las. Esses clientes usam métodos de AWS autenticação padrão. Embora seja possível usar a API do Amazon ECR para enviar e extrair imagens, é muito mais provável que você use a CLI do Docker ou uma biblioteca do Docker específica para a linguagem.

A CLI do Docker não suporta métodos de autenticação nativos do IAM. É necessário realizar etapas adicionais para que o Amazon ECR possa autenticar e autorizar solicitações de extração e envio do Docker.

Os métodos de autenticação de registro a seguir estão detalhados nas seções a seguir estão disponíveis.

## Uso de auxiliar de credenciais do Amazon ECR
<a name="registry-auth-credential-helper-reg"></a>

O Amazon ECR fornece um auxiliar de credenciais do Docker que facilita o armazenamento e o uso de credenciais do Docker ao enviar e extrair imagens do Amazon ECR. Para obter as etapas de instalação e configuração, consulte [Auxiliar de credenciais do Docker do Amazon ECR](https://github.com/awslabs/amazon-ecr-credential-helper).

**nota**  
No momento, o auxiliar de credencial do Amazon ECR Docker não oferece suporte a autenticação multifator (MFA).

## Uso de um token de autorização
<a name="registry-auth-token"></a>

O escopo de permissão de um token de autorização corresponde ao do principal do IAM usado para recuperar o token de autenticação. Um token de autenticação é usado para acessar qualquer registro do Amazon ECR ao qual o principal do IAM tenha acesso e é válido por 12 horas. Para obter um token de autorização, você deve usar a operação da [GetAuthorizationToken](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_GetAuthorizationToken.html)API para recuperar um token de autorização codificado em base64 contendo o nome de usuário `AWS` e uma senha codificada. O AWS CLI ` get-login-password` comando simplifica isso recuperando e decodificando o token de autorização, que você pode então canalizar para um **docker login** comando para autenticar.

**Para autenticar o Docker para um registro privado do Amazon ECR com get-login**
+ 

  Para autenticar o Docker em um registro do Amazon ECR com get-login-password, execute o comando **aws ecr get-login-password**. Ao transmitir o token de autenticação para o comando **docker login**, use o valor `AWS` para o nome de usuário, e especifique o URI de registro do Amazon ECR para o qual deseja fazer a autenticação. Se autenticar em vários registros, você deverá repetir o comando para cada registro.
**Importante**  
Se você receber um erro, instale ou atualize para a versão mais recente da AWS CLI. Para obter mais informações, consulte [Installing the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) (Instalar a AWS Command Line Interface ) no * User Guide* (Guia do usuário da ).
  + [get-login-password](https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login-password.html) (AWS CLI)

    ```
    aws ecr get-login-password --region {{region}} | docker login --username AWS --password-stdin {{{{aws_account_id}}}}.dkr.ecr.{{region}}.amazonaws.com
    ```
  + [Get-ECRLoginCommand](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ECRLoginCommand.html) (AWS Tools for Windows PowerShell)

    ```
    (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin {{{{aws_account_id}}}}.dkr.ecr.{{region}}.amazonaws.com
    ```

## Uso da autenticação de API HTTP
<a name="registry_auth_http"></a>

O Amazon ECR suporta [API HTTP de registro do Docker](https://docs.docker.com/registry/spec/api/). No entanto, como o Amazon ECR é um registro privado, você deve fornecer um token de autorização com cada solicitação HTTP. Você pode adicionar um cabeçalho de autorização HTTP usando a `-H` opção for **curl** e passar o token de autorização fornecido pelo **get-authorization-token** AWS CLI comando.

**Para autenticar com a API HTTP do Amazon ECR**

1. Recupere um token de autorização com o AWS CLI e defina-o como uma variável de ambiente.

   ```
   TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
   ```

1. A fim de fazer a autenticação para a API, passe a variável `$TOKEN` para a opção ` -H` de **curl**. Por exemplo, o comando a seguir lista as tags da imagem em um repositório do Amazon ECR. Para obter mais informações, consulte a documentação de referência da [API HTTP de registro do Docker](https://docs.docker.com/registry/spec/api/).

   ```
   curl -i -H "Authorization: Basic $TOKEN" https://{{aws_account_id}}.dkr.ecr.{{region}}.amazonaws.com/v2/{{amazonlinux}}/tags/list
   ```

   A saída é a seguinte:

   ```
   HTTP/1.1 200 OK
   Content-Type: text/plain; charset=utf-8
   Date: Thu, 04 Jan 2018 16:06:59 GMT
   Docker-Distribution-Api-Version: registry/2.0
   Content-Length: 50
   Connection: keep-alive
   
   {"name":"amazonlinux","tags":["2017.09","latest"]}
   ```