Knowledge Center Monthly Newsletter - June 2025
Stay up to date with the latest from the Knowledge Center. See all new Knowledge Center articles published in the last month, and re:Post's top contributors.
Como resolvo um “ResourceInitializationError” quando tento extrair segredos ou recuperar a autenticação do Amazon ECR para tarefas do ECS?
Quando eu inicio uma tarefa do Amazon Elastic Container Service (Amazon ECS), recebo uma mensagem ResourceInitializationError.
Breve descrição
Ao iniciar uma tarefa do Amazon ECS no tipo de inicialização do Fargate, é possível receber uma das seguintes mensagens de erro:
- “ResourceInitializationError: unable to pull secrets or registry auth: pull command failed: : signal: killed”
- “ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secret from asm: service call has been retried.”
- “ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 3 time(s): RequestError: send request failed caused by: Post "https://api.ecr..amazonaws.com/": dial tcp …443: i/o timeout. Please check your task network configuration.”
- “ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secret from asm: service call has been retried 5 time(s): failed to fetch secret arn:aws:secretsmanager…”
- “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 arn:aws:secretsmanager:<region>:<accountID>:secret:<secretName> from secrets manager: InvalidParameter: 1 validation error(s) found. – (minimum field size of 32/ maximum field size of 64), GetSecretValueInput.VersionId.”
- “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 rn:aws:secretsmanager:<region>:<accountID>:secret:<secretName> from secrets manager: AccessDeniedException: User: arn:aws:sts::<accountID>::assumed-role/<roleName> is not authorized to perform: secretsmanager:GetSecretValue on resource: rn:aws:secretsmanager:<region>:<accountID>:secret:<secretName> because no identity-based policy allows the secretsmanager:GetSecretValue action status code: 400”
O AWS Fargate versão 1.4.0 usa a interface de rede elástica de tarefas para extrair a imagem e os segredos. Todo o tráfego de rede flui pela interface de rede em sua Amazon Virtual Private Cloud (Amazon VPC). É possível usar os Logs de fluxo de VPC para visualizar o tráfego. No entanto, a tarefa usa sua configuração de rede porque o Fargate coloca as interfaces de rede na Amazon VPC.
O agente de contêiner do Amazon ECS usa o perfil de execução de tarefas do AWS Identity and Access Management (AWS IAM) para obter informações do Parameter Store, um recurso do AWS Systems Manager e do AWS Secrets Manager.
Para dados criptografados com uma chave do AWS Key Management Service (AWS KMS) gerenciada pelo cliente, conceda as seguintes permissões ao perfil do IAM de execução da tarefa:
- ssm:GetParameters
- secretsmanager:GetSecretValue
- kms:Decrypt
Resolução
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Use o runbook TroubleshootECSTaskFailedToStart
Use o runbook AWSSupport-TroublesotecstTaskFailedToStart para solucionar as tarefas do Amazon ECS que falham ao iniciar.
Importante: Use o runbook na mesma região da AWS em que seus recursos de cluster do ECS estão localizados. Use a ID da tarefa que apresentou falha mais recentemente para que a limpeza do estado da tarefa não interrompa a análise. Se a tarefa com falha fizer parte do 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 ao executar o Automation. Por padrão, as tarefas interrompidas do ECS ficam visíveis por 1 hora após entrarem no estado Interrompido.
Para executar o runbook AWSSupport-TroubleshootECSTaskFailedToStart, conclua as seguintes etapas:
- Abra o console do AWS Systems Manager.
- No painel de navegação, em Gerenciamento de alterações, escolha Automação.
- Selecione Executar automação.
- Escolha a guia Owned by Amazon (Propriedade da Amazon).
- Em Documento de automação, insira TroubleshootECSTaskFailedToStart na barra de pesquisa.
- Selecione o cartão AWSSupport-TroubleshootECSTaskFailedToStart.
Observação: Não selecione o nome da automação com hiperlink. - Escolha Avançar.
- Em Executar documento de automação, selecione Execução simples.
- Na seção Parâmetros de entrada, em AutomationAssumeRole, insira o ARN do perfil que permite ao Automation executar ações.
Observação: Certifique-se de que o perfil de serviço ou o perfil ou usuário do IAM tenham as permissões de IAM necessárias para executar o runbook AWSSupport-TroubleshootECSTaskFailedToStart. Se você não especificar um perfil do IAM, o Automation usará as permissões do usuário ou do perfil do IAM que executa o runbook. Para informações sobre como criar o perfil de serviço para automação, consulte Tarefa 1: criar um perfil de serviço para automação. - Em ClusterName, insira o nome do cluster em que a tarefa falhou ao iniciar.
- Em TaskId, insira a identificação da tarefa que falhou mais recentemente.
- Selecione Executar.
Observação: Após a execução, os resultados da análise são preenchidos na seção Saída global. No entanto, aguarde até que o status do documento passe para Success. Além disso, revise a seção Saída para ver se há exceções.
Também é possível solucionar o problema manualmente.
Verifique as rotas de suas sub-redes para a Internet
Se sua tarefa do Fargate estiver em uma sub-rede pública, verifique se atribuiu um endereço IP público à tarefa. Além disso, confirme se a tarefa tem uma rota padrão (0.0.0.0/0) para um gateway da Internet. Ao iniciar uma nova tarefa ou criar um novo serviço, ative a Atribuição automática de público.
Se você usou uma pilha do AWS CloudFormation para criar seu serviço Amazon ECS, modifique a propriedade NetworkConfiguration para AWS::ECS::Service para atualizar o serviço. Para atualizar a configuração dos serviços atuais, use o CloudFormation para ativar o parâmetro AssignPublicIp. Ou execute o seguinte comando update-service da AWS CLI:
aws ecs update-service --service serviceName --region regionName "awsvpcConfiguration={subnets=[subnet-123,subnet-456],securityGroups=[sg-123,sg-456],assignPublicIp=ENABLED}"
Observação: Substitua regionname pela sua região.
Se você usar as configurações a seguir, não use o gateway da Internet na sub-rede pública para acessar o Secrets Manager ou o Systems Manager:
- Os endpoints da VPC do Secrets Manager ou do Systems Manager estão em uma sub-rede pública.
- Você ativou o AmazonProvidedDNS nas configurações DHCP da Amazon VPC.
Em vez disso, use um endpoint da Amazon VPC.
Observação: Não é possível ativar a Atribuição automática de público para tarefas atuais. Para reconfigurar os serviços atuais, use a AWS CLI e não o Console de Gerenciamento da AWS.
Se sua tarefa do Fargate estiver em uma sub-rede privada, verifique se sua tarefa tem uma rota padrão (0.0.0.0/0) para a fonte de conectividade com a Internet.
A fonte de conectividade com a Internet pode ser um gateway NAT, o AWS PrivateLink ou um servidor de domínio com nome personalizado.
Se você usa um gateway NAT, coloque-o em uma sub-rede pública. Para mais informações, consulte Arquitetura com um gateway da internet e um gateway NAT usando o AWS Network Firewall. Se você usa o PrivateLink, verifique se os grupos de segurança dos endpoints da Amazon VPC permitem tráfego para as tarefas do Fargate. Se você usar um servidor de domínio com nome personalizado, confirme as configurações da consulta ao DNS. A consulta deve ter acesso de saída na porta 53 usando os protocolos UDP e TCP. A consulta também deve ter acesso HTTPS na porta 443.
Verifique suas configurações de ACL de rede e grupo de segurança
Verifique se a lista de controle de acesso à rede (ACL da rede) e os grupos de segurança não bloqueiam o acesso de saída à porta 443 a partir da sub-rede. Para obter mais informações, consulte Controle o tráfego para seus recursos da AWS usando grupos de segurança.
Observação: as tarefas do Fargate devem ter acesso de saída à porta 443 para permitir o tráfego de saída e acessar os endpoints do Amazon ECS.
Verifique seus endpoints da Amazon VPC
Se você usar o PrivateLink, deverá criar os seguintes endpoints necessários para as versões 1.4.0 ou posteriores da plataforma Fargate:
- com.amazonaws.region.ecr.dkr
- com.amazonaws.region.ecr.api
- endpoint de gateway S3
- com.amazonaws.region.logs
Para obter mais informações, consulte Considerations for Amazon Elastic Container Registry (Amazon ECR) VPC endpoints.
Observação: Se sua definição de tarefa usa Secrets Manager, Parameter Store ou Amazon CloudWatch Logs, certifique-se de definir endpoints. Para mais informações, consulte Uso de um endpoint da VPC do AWS Secrets Manager e Criação de endpoints da VPC para o Amazon ECS.
Para o PrivateLink, verifique se o grupo de segurança da Amazon VPC permite tráfego do grupo de segurança de tarefas Fargate ou do intervalo CIDR da VPC na porta TCP 443.
Para confirmar que a infraestrutura do Fargate tem acesso ao serviço, verifique as políticas de endpoint da VPC e as políticas de endpoint de gateway para Amazon Simple Storage Service (Amazon S3).
Verifique seus perfis e permissões do IAM
O perfil de execução de tarefas concede as permissões necessárias ao contêiner do Amazon ECS e aos agentes do Fargate para fazer chamadas de API para a tarefa.
O Fargate exige o perfil de execução da tarefa quando você executa as seguintes ações:
- Obter uma imagem de contêiner do Amazon ECR.
- Usar o driver de log awslogs.
- Usar autenticação de registro privado.
- Usar segredos do Secrets Manager ou parâmetros do Parameter Store para referenciar dados sigilosos.
Nos cenários anteriores, defina as permissões necessárias em seu perfil de execução de tarefas. Ao acessar os segredos do Secrets Manager ou os parâmetros do Parameter Store para recuperar os dados sigilosos, confirme se você tem as permissões secretsManager:getSecretValue ou ssm:GetParameters necessárias. Para obter uma lista das permissões necessárias, consulte Permissões do Secrets Manager ou do Systems Manager.
Verifique os dados sigilosos na definição de tarefas do Amazon ECS
Verifique se os nomes de segredos e de parâmetros correspondem aos nomes referenciados em sua definição de tarefas do Amazon ECS. Em seguida, verifique se os valores na definição do contêiner correspondem aos valores em sua definição de tarefa do Amazon ECS. Para obter mais informações, consulte Como posso transmitir informações secretas ou confidenciais com segurança para contêineres em uma tarefa do Amazon ECS?
Certifique-se de configurar o segredo ou o parâmetro com o mesmo ARN ou nome especificado na Definição da tarefa. Se o recurso existir em uma região diferente, você deverá fornecer o ARN completo.
Use o parâmetro VersionId em GetSecretValueInput para especificar a versão do valor do segredo que é recuperado. Se você não precisar de uma versão específica, exclua o campo VersionId. O Secrets Manager recupera a versão mais recente por padrão.
Se o parâmetro e a tarefa do Parameter Store estiverem na mesma região, use o ARN completo ou o nome do segredo. Se o parâmetro existir em uma região diferente, você deverá especificar o ARN completo.
Para verificar o nome do parâmetro e o ARN, conclua as seguintes etapas:
- Abra o Console do AWS Systems Manager.
- No painel de navegação, escolha Parameter Store e confirme o nome do Parameter Store.
- Para obter o ARN do parâmetro, execute o seguinte comando get-parameter da AWS CLI:
Observação: Substitua name_of_parameter_store_secret pelo nome do segredo do Parameter Store. Os parâmetros que fazem referência aos segredos do Secrets Manager não podem usar os recursos de versionamento ou histórico do Parameter Store. Para mais informações, consulte Restrições.aws ssm get-parameter --name name_of_parameter_store_secret --with-decryption
Informações relacionadas
Visualizar erros de tarefas interrompidas do Amazon ECS
Opções de rede de tarefas do Amazon ECS para o tipo de inicialização do Fargate
Endpoints da VPC da interface do Amazon ECR (AWS PrivateLink)
Como usar o CloudWatch Logs com endpoints de interface da VPC
Vídeos relacionados


Conteúdo relevante
- feita há 4 meses
- feita há 22 dias