Como solucionar problemas relacionados a segredos do AWS Secrets Manager no Amazon ECS?

Data da última atualização: 30/03/2022

Quando tento colocar uma tarefa que usa segredos do AWS Secrets Manager no Amazon Elastic Container Services (Amazon ECS), recebo um dos seguintes erros:

  • ResourceInitializationError error on AWS Fargate
  • AccessDenied error on Amazon Elastic Compute Cloud (Amazon EC2)

A tarefa não consegue recuperar segredos do Secrets Manager e falha (A tarefa não consegue recuperar segredos do Secrets Manager e falha).

Breve descrição

Você recebe essas mensagens de erro por um dos seguintes motivos:

  • A função de execução de tarefas do Amazon ECS não tem as permissões necessárias para acessar segredos do Secrets Manager.
  • O Secrets Manager não consegue encontrar o segredo especificado.
  • O nome do segredo termina com um hífen seguido por seis caracteres. Isso retorna resultados inesperados quando você procura um segredo usando ARN parcial.
  • Há problemas com a configuração de rede da Amazon Virtual Private Cloud (Amazon VPC).

Resolução

Verificar se a função de execução de tarefas do ECS tem as permissões necessárias

  1. Abra o console do IAM.
  2. No painel de navegação, escolha Roles (Funções).
  3. Na lista de funções, procure a função de execução de tarefas que as suas tarefas do ECS estão usando.
  4. Confirme se a função de execução da tarefa tem as permissões necessárias para acessar o recurso necessário do Secrets Manager.

Verificar se o segredo do Secrets Manager existe

  1. Acesse o console do Secrets Manager.
  2. Na página Secrets list (Lista de segredos), escolha o segredo que suas tarefas do ECS estão usando.
  3. Confirme se a definição de tarefa do ECS inclui esses nomes de segredos específicos. Se você especificou parâmetros adicionais no segredo, confirme se a definição da sua tarefa inclui json-key/version-stage/version-id, conforme especificado no segredo.

Verificar o nome e o ARN do segredo do Secrets Manager

Verifique se o nome do segredo termina com um hífen seguido por seis caracteres (exemplo: myappsecret-xxxxxx). O Secrets Manager adiciona automaticamente um hífen e seis caracteres aleatórios após o nome do segredo no final do ARN. Portanto, é uma prática recomendada não terminar o nome de um segredo com um hífen seguido por seis caracteres. Isso pode retornar resultados inesperados quando você procura um segredo usando um ARN parcial. Para resolver esse problema, certifique-se de usar os ARNs completos, incluindo o hífen adicional e seis caracteres, dos segredos do Secrets Manager.

Verificar se a configuração de rede da VPC permite que a infraestrutura do Amazon ECS acesse o Secrets Manager

Crie os endpoints de VPC de interface para o Secrets Manager quando as seguintes condições forem verdadeiras:

  • Você está usando uma definição de tarefa que faz referência aos segredos do Secrets Manager para recuperar dados confidenciais para os seus contêineres.
  • Você está usando endpoints de VPC de interface.

Além disso, certifique-se de que os grupos de segurança dos endpoints de VPC permitam que a infraestrutura do ECS use esses endpoints.

Para verificar se o endpoint de VPC para o Secrets Manager existe, faça o seguinte:

  1. Abra o console da Amazon VPC.
  2. No painel de navegação, escolha Endpoints.
  3. Certifique-se de que o endpoint da VPC com.amazonaws.example-region.secretsmanager para o Secrets Manager esteja na lista de endpoints.
  4. Selecione o endpoint na lista de endpoints e escolha a guia Subnets (Sub-redes). Certifique-se de que as sub-redes desse endpoint incluam aquelas usadas pela tarefa do ECS.
    Observação: se nenhuma sub-rede estiver listada, escolha Manage Subnets (Gerenciar sub-redes). Selecione a sub-rede com base na zona de disponibilidade em Availability Zone e escolha Modify Subnets (Modificar sub-redes).

Para confirmar se o grupo de segurança anexado ao endpoint com.amazonaws.example-region.secretsmanager permite conexões de entrada na porta 443 a partir de tarefas do Amazon ECS, faça o seguinte:

  1. Selecione o endpoint de endpoints.
  2. Escolha a guia Security Groups (Grupos de segurança).
  3. Escolha o ID do grupo em Group ID para o grupo de segurança que você deseja verificar.
  4. Escolha a guia Inbound rules (Regras de entrada).
  5. Verifique se a lista de regras de entrada inclui uma regra que permita conexões da porta 443 a partir das suas tarefas do ECS.