Quando tento colocar uma tarefa que usa segredos do AWS Secrets Manager no Amazon Elastic Container Service (Amazon ECS), recebo uma mensagem de erro.
Breve descrição
Se você não conseguir colocar uma tarefa com um segredo do Secrets Manager no Amazon ECS, é possível receber uma das seguintes mensagens de erro:
"ResourceInitializationError error on AWS Fargate AccessDenied error on Amazon Elastic Compute Cloud (Amazon EC2)"
"The task is unable to retrieve secrets from Secrets Manager and fails."
"ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secret from asm: service call has been retried 1 time(s): failed to fetch secret"
"AccessDeniedException: User: arn:aws:sts::XXXXXXXX:assumed-role/test-ecs-execution-role-no-secrets/XXXXXXXXXXX is not authorized to perform:"
Essas mensagens de erro ocorrem por um dos seguintes motivos:
- O perfil 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 e você usa um nome do recurso da Amazon (ARN) parcial para pesquisar um segredo.
- Há problemas com a configuração de rede da sua Amazon Virtual Private Cloud (Amazon VPC).
Use o runbook AWSSupport-TroubleshootECSTaskFailedToStart para solucionar os erros de tarefas do Amazon ECS que falham ao iniciar. Em seguida, consulte as etapas de solução de problemas relevantes para seu problema.
Resolução
Pré-requisito: certifique-se de que seu usuário ou perfil do AWS Identity and Access Management (AWS IAM) tenha as permissões necessárias para usar o runbook. Para obter mais informações, consulte a seção Permissões obrigatórias do IAM de AWSSupport-TroubleshootECSTaskFailedToStart.
Use o runbook AWSSupport-TroubleshootECSTaskFailedToStart na mesma região da AWS em que seus recursos de cluster do Amazon ECS estão localizados.
Use o ID da tarefa que falhou mais recentemente. Se a tarefa com falha fizer parte do serviço do 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 Amazon ECS ficam visíveis por 1 hora após entrarem no estado Stopped.
Execute o runbook do AWS Systems Manager
Conclua as etapas a seguir:
- Abra o console do Systems Manager.
- No painel de navegação, clique em Documentos.
- Na barra de pesquisa, digite TroubleshootECSTaskFailedToStart.
- Selecione o documento AWSSupport-TroubleshootECSTaskFailedToStart.
- Clique em Executar automação.
- Selecione Executar.
- Depois que a automação for concluída, analise os resultados detalhados na seção Saídas e, em seguida, use uma das seguintes etapas manuais de solução de problemas.
Verifique as permissões do perfil de execução de tarefas do Amazon ECS
Conclua as etapas a seguir:
- Abra o console do IAM.
- No painel de navegação, clique em Perfis.
- Pesquise na lista de perfis o perfil de execução de tarefas que suas tarefas do Amazon ECS usam.
- Confirme se você concedeu ao perfil de execução de tarefas as permissões necessárias para acessar o recurso do Secrets Manager.
Verifique se o segredo do Secrets Manager existe
Conclua as etapas a seguir:
- Abra o console do Secrets Manager.
- No painel de navegação, clique em Segredos e, em seguida, selecione o segredo que suas tarefas do Amazon ECS usam.
- Confirme se sua definição de tarefa do Amazon ECS inclui estes nomes secretos específicos. Se você especificou parâmetros adicionais no segredo, confirme se sua definição de 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 o seu nome secreto termina com um hífen seguido por seis caracteres. Por 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. É uma prática recomendada não terminar seu nome secreto com um hífen seguido por seis caracteres.
Para resolver esse problema, use os ARNs completos, incluindo o hífen adicional e seis caracteres, dos segredos do Secrets Manager.
Verifique a configuração da rede da sua Amazon VPC
Crie os endpoints da interface da Amazon VPC para o Secrets Manager quando as seguintes condições forem verdadeiras:
- Você usa uma definição de tarefa que faz referência aos segredos do Secrets Manager para recuperar dados sensíveis para seus contêineres.
- Você usa endpoints da interface da Amazon VPC.
Além disso, certifique-se de que os grupos de segurança de seus endpoints da Amazon VPC permitam que a infraestrutura do Amazon ECS use esses endpoints.
Para verificar se o endpoint da Amazon VPC para o Secrets Manager existe, conclua as seguintes etapas:
- Abra o console da Amazon VPC.
- No painel de navegação, selecione Endpoints.
- Certifique-se de especificar o endpoint com.amazonaws.example-region.secretsmanager da Amazon VPC para o Secrets Manager.
- Selecione o endpoint e, em seguida, clique na guia Sub-redes. Certifique-se de que as sub-redes desse endpoint incluam os endpoints que sua tarefa do Amazon ECS usa.
Observação: se não houver sub-redes, clique em Gerenciar sub-redes. Selecione a sub-rede com base em sua Zona de disponibilidade e clique em Modificar sub-redes.
Para confirmar que o grupo de segurança anexado 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:
- Abra o console da Amazon VPC.
- No painel de navegação, selecione Endpoints.
- Selecione o endpoint.
- Clique na guia Grupos de segurança.
- Selecione o ID do grupo para o grupo de segurança que você deseja verificar.
- Clique na guia Regras de entrada.
- Verifique se a lista de regras de entrada inclui uma regra que permite conexões da 443 a partir de suas tarefas do Amazon ECS.
Informações relacionadas
Como posso transmitir informações secretas ou confidenciais com segurança para contêineres em uma tarefa do Amazon ECS?
Solução de problemas AWS Secrets Manager