Como posso atualizar minhas credenciais de repositório privado em um agente de contêiner do Amazon ECS?

5 minuto de leitura
0

Quero atualizar minhas credenciais de repositório privado em um agente de contêiner do Amazon Elastic Container Service (Amazon ECS) fornecido por meio do AWS Secrets Manager ou de variáveis de ambiente.

Breve descrição

Você pode fornecer credenciais de repositório privado para o agente de contêiner do Amazon ECS usando o Secrets Manager em sua definição de tarefa ou variáveis de ambiente.

Escolha uma das seguintes opções:

  • Se você estiver usando o Secrets Manager para fornecer credenciais de repositório privado, siga as etapas na seção Atualizar suas credenciais do repositório privado com o Secrets Manager.
  • Se você estiver usando dados do usuário da instância e variáveis de ambiente para fornecer credenciais de repositório privado, siga as etapas na seção Atualizar suas credenciais do repositório privado com variáveis de ambiente.

Observação: não é uma prática recomendada de segurança armazenar credenciais em texto simples em instâncias de contêiner. Em vez disso, é uma prática recomendada usar o Secrets Manager, a menos que haja uma dependência arquitetônica direta no armazenamento de credenciais de registro na instância do contêiner.

Resolução

Atualizar suas credenciais de repositório privado com o Secrets Manager

1.    Abra o console do AWS Secrets Manager.

2.    Escolha seu segredo e, em seguida, escolha Recuperar valor secreto.

3.    Escolha Editar.

4.    Atualize as credenciais armazenadas para seu registro privado e escolha Salvar.

Para continuar, siga as etapas na seção Testar suas credenciais atualizadas do repositório privado.

Atualizar suas credenciais de repositório privado com variáveis de ambiente

1.    Conecte-se à sua instância de contêiner.

2.    Para descobrir como você está fornecendo credenciais do Docker para seu agente de contêiner do ECS, execute o seguinte comando:

$ cat /etc/ecs/ecs.config

Esse comando retorna o conteúdo do arquivo /etc/ecs/ecs.config.

Se a variável ECS_ENGINE_AUTH_TYPE estiver definida como docker, você estará passando diretamente suas credenciais do Docker por texto simples para o agente de contêiner do ECS. Você deve evitar essa abordagem. Em vez disso, use o Secrets Manager ou a abordagem de formato dockercfg na seção Obter um novo valor de autenticação do Docker.

Se a variável ECS_ENGINE_AUTH_TYPE estiver definida como dockercfg, você estará passando suas credenciais do Docker por meio de um valor de autenticação gerado pelo Docker gerado pelo comando docker login. Para continuar essa abordagem, conclua as etapas na seção Obter um novo valor de autenticação do Docker.

Obter um novo valor de autenticação do Docker

1.    Para fazer login no Docker localmente, execute o comando a seguir e insira suas novas credenciais:

$ docker login

2.    Para concatenar seu arquivo config.json, execute o comando a seguir e copie o valor da chave de autenticação gerada pelo Docker:

$ cat ~/.docker/config.json

3.    Para atualizar a variável ECS_ENGINE_AUTH_DATA, execute o seguinte comando:

$ sudo vi /etc/ecs/ecs.config

4.    No editor vi, atualize o valor da variável ECS_ENGINE_AUTH_DATA para o valor da chave de autenticação do Docker da etapa 2. Por exemplo:

ECS_CLUSTER=TestECSCluster
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth","a2vpdGhhd3M6UGFzc3dvcmQ="}}

Para continuar, siga as etapas na seção Reiniciar seu agente de contêiner do ECS.

Reiniciar seu agente de contêiner ECS

1.    Para reiniciar seu agente de contêiner do ECS, execute um dos seguintes comandos com base nas imagens de máquina da Amazon (AMIs) nas quais suas instâncias de contêiner estão sendo executadas.

AMIs otimizadas para Amazon Linux ECS:

$ sudo stop ecs && sudo start ecs

AMIs otimizadas para ECS do Amazon Linux 2:

$ sudo systemctl restart ecs

Observação: para atualizar o arquivo /etc/ecs/ecs.config em outras instâncias de contêiner em seu cluster ECS, volte para a seção Atualizar suas credenciais de repositório privado com variáveis de ambiente. Em seguida, siga o processo de atualização para cada instância do contêiner.

Para continuar, siga as etapas na seção Testar suas credenciais atualizadas do repositório privado.

Testar suas credenciais atualizadas do repositório privado

As etapas a seguir pressupõem que você esteja implantando uma imagem atualizada em todo o cluster.

1.    Abra o console do Amazon ECS.

2.    No painel de navegação, escolha Clusters e selecione seu cluster.

3.    Selecione seu serviço e escolha Atualizar.

4.    Marque a caixa de seleção Forçar nova implantação.

5.    Em Porcentagem mínima de integridade, insira 50.

6.    Conclua as etapas restantes no assistente de configuração e escolha Atualizar serviço.

7.    Escolha Exibir serviço.

8.    Na guia Implantações, veja a nova implantação. O Amazon ECS interrompe gradualmente as tarefas da implantação anterior e, em seguida, reinicia as tarefas na nova implantação enquanto tenta extrair uma nova imagem.

Observação: a etapa 8 pressupõe que seu cluster tenha recursos suficientes para executar com êxito um tipo de implantação de atualização contínua.

9.    Escolha a guia Tarefas e, em seguida, verifique cada tarefa individual e seu status.

Se o status da tarefa estiver definido como Em execução, o serviço atualizou essa tarefa com êxito sem erros.

Se o status da tarefa estiver definido como Em execução (CannotPullContainerError), o serviço atualizou essa tarefa, mas houve um erro. O agente de contêiner do ECS não consegue extrair uma nova imagem de contêiner e está usando a antiga imagem em cache. Verifique se suas credenciais foram atualizadas e, em seguida, execute outra atualização de implantação do serviço.

Observação: para exibir todos os detalhes de sua tarefa e ver o erro “acesso de acesso negado”, escolha a seta suspensa para o status de sua tarefa individual. Por exemplo:

CannotPullContainerError: Error response from daemon: pull access denied for user/reponame, repository does not exist or may require 'docker login'

Informações relacionadas

Configuração do agente de contêiner do Amazon ECS

Formatos de autenticação

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos