Autenticação de registro privado no Amazon ECR - Amazon ECR

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

Você pode usar o AWS Management Console 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

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.

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

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 GetAuthorizationTokenAPI 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 (Instalar a AWS Command Line Interface ) no User Guide (Guia do usuário da ).

    • get-login-password (AWS CLI)

      aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
    • Obtenha ECR () LoginCommandAWS 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

O Amazon ECR suporta API HTTP de registro do Docker. 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')
  2. 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.

    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"]}