Como soluciono problemas relacionados aos segredos do AWS Secrets Manager no Amazon ECS?

5 minuto de leitura
0

Quando tento colocar uma tarefa que usa segredos do AWS Secrets Manager no Amazon Elastic Container Services (Amazon ECS), recebo um erro.

Breve descrição

Ao não conseguir colocar uma tarefa com um segredo do Secrets Manager no Amazon ECS, você pode receber um dos seguintes erros:

"Erro ResourceInitializationError no AWS Fargate AccessDenied Erro no Amazon Elastic Compute Cloud (Amazon EC2)"

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

Você recebe essas mensagens de erro devido a 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 os 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ê pesquisa um segredo usando ARN parcial.
  • Há problemas com a configuração de rede da Amazon Virtual Private Cloud (Amazon VPC).

Use o runbook AWSSupport-TroubleshootECSTaskFailedToStart para solucionar os erros das tarefas do Amazon ECS que falham ao iniciar. Em seguida, consulte as etapas de solução de problemas relevantes para seu problema.

Resolução

Importante:

  • use o runbook AWSSupport-TroubleshootECSTaskFailedToStart na mesma região da AWS em que seus recursos de cluster do ECS estão localizados.
  • Ao usar o runbook, você deve usar a ID de tarefa que falhou mais recentemente. Se a tarefa com falha fizer parte de um serviço Amazon ECS, use a tarefa que falhou mais recentemente no serviço. A tarefa com falha deve estar visível em ECS:DescribeTasks durante a execução da automação. Por padrão, as tarefas interrompidas do ECS ficam visíveis por 1 hora após entrarem no estado Interrompido. O uso da ID de tarefa que falhou mais recentemente impede que a limpeza do estado da tarefa interrompa a análise durante a automação.

Para obter instruções sobre como iniciar o runbook, consulte AWSSupport-TroubleshootECSTaskFailedToStart. Com base na saída da automação, use uma das seguintes etapas manuais de solução de problemas.

Verifique 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, selecione Perfis.
  3. Pesquise na lista de funções a função de execução de tarefas que 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.

Verifique se o segredo do Secrets Manager existe

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

Verifique o nome e o ARN do segredo do Secrets Manager

Verifique se seu nome secreto 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 secreto no final do ARN. Portanto, é uma boa prática não terminar seu nome secreto com um hífen seguido por seis caracteres. Isso pode retornar resultados inesperados ao pesquisar um segredo usando 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.

Verifique se sua configuração de rede VPC permite que sua infraestrutura do Amazon ECS alcance o Secrets Manager

Crie os endpoints da VPC da 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 seus contêineres.
  • Você está usando endpoints da VPC de interface.

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

Para verificar se o endpoint da VPC do Secrets Manager existe, faça o seguinte:

  1. Abra o console da Amazon VPC.
  2. No painel de navegação, selecione Endpoints.
  3. Certifique-se de que o endpoint da VPC com.amazonaws.example-region.secretsmanager para Secrets Manager esteja na lista de endpoints.
  4. Selecione o ponto final na lista de pontos finais e, em seguida, selecione a guia Sub-redes. Certifique-se de que as sub-redes desse endpoint incluam aquelas usadas pela sua tarefa do ECS.
    Observação: se nenhuma sub-rede estiver listada, selecione Gerenciar sub-redes. Selecione a sub-rede com base em sua Zona de disponibilidade e selecione Modificar sub-redes.

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

  1. Selecione o ponto final na lista de pontos finais.
  2. Selecione a guia Grupos de segurança.
  3. Selecione a ID do grupo para o grupo de segurança que você deseja verificar.
  4. Selecione a guia Regras de entrada.
  5. Verifique se a lista de regras de entrada inclui uma regra que permite 443 conexões de suas tarefas do ECS.

Informações relacionadas

Como posso transmitir informações secretas ou confidenciais com segurança para contêineres em uma tarefa do Amazon ECS?

Resolução de problemas do AWS Secrets Manager