Cuando intento colocar una tarea que usa secretos de AWS Secrets Manager en Amazon Elastic Container Service (Amazon ECS), aparece un error.
Descripción corta
Si no puedes colocar una tarea con un secreto de Secrets Manager en Amazon ECS, es posible que recibas uno de los errores siguientes:
"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:"
Estos mensajes de error se producen por uno de los siguientes motivos:
- El rol de ejecución de tareas de Amazon ECS no tiene los permisos necesarios para acceder a los secretos de Secrets Manager.
- Secrets Manager no encuentra el secreto especificado.
- El nombre del secreto termina con un guion seguido de seis caracteres y se utiliza un nombre de recurso de Amazon (ARN) parcial para buscar un secreto.
- Hay problemas con la configuración de red de Amazon Virtual Private Cloud (Amazon VPC).
Para solucionar los errores de tareas de Amazon ECS que no se inician, usa el runbook AWSSupport-TroubleshootECSTaskFailedToStart. A continuación, consulta los pasos de solución de problemas correspondientes a tu problema.
Resolución
Requisito previo: Asegúrate de que tu usuario o rol de AWS Identity and Access Management (IAM) tenga los permisos necesarios para utilizar el runbook. Para obtener más información, consulta la sección Required IAM permissions (Permisos de IAM necesarios) de AWSSupport-TroubleshootECSTaskFailedToStart.
Usa el runbook AWSSupport-TroubleshootECSTaskFailedToStart en la misma región de AWS en la que se encuentran los recursos del clúster de Amazon ECS.
Usa el ID de la tarea fallida más reciente. Si la tarea fallida forma parte de un servicio de Amazon ECS, use la tarea fallida más reciente del servicio. La tarea que ha fallado debe estar visible en ECS:DescribeTasks durante la ejecución de la automatización. De forma predeterminada, las tareas de Amazon ECS detenidas están visibles durante 1 hora después de entrar en el estado Detenido.
Ejecuta el runbook de AWS Systems Manager
Sigue estos pasos:
- Abre la consola de Systems Manager.
- En el panel de navegación, selecciona Documentos.
- En la barra de búsqueda, escribe TroubleshootECSTaskFailedToStart.
- Selecciona el documento AWSSupport-TroubleshootECSTaskFailedToStart.
- Selecciona Ejecutar automatización.
- Selecciona Ejecutar.
- Una vez finalizada la automatización, revisa los resultados detallados en la sección Salidas y, a continuación, sigue uno de los siguientes pasos manuales de solución de problemas.
Comprobación de los permisos del rol de ejecución de tareas de Amazon ECS
Sigue estos pasos:
- Abre la consola de IAM.
- En el panel de navegación, selecciona Roles.
- Busca en la lista de roles el rol de ejecución de tareas que utilizan tus tareas de Amazon ECS.
- Confirma que el rol de ejecución de tareas tenga los permisos necesarios para acceder al recurso de Secrets Manager necesario.
Comprobación de que existe el secreto de Secrets Manager
Sigue estos pasos:
- Abre la consola de Secrets Manager.
- En el panel de navegación, elige Secretos y, a continuación, elige el secreto que utilizan tus tareas de Amazon ECS.
- Confirma que la definición de la tarea de Amazon ECS incluye estos nombres de secretos específicos. Si especificaste parámetros adicionales en el secreto, confirma que la definición de la tarea incluye el json-key/version-stage/version-id que se especifica en el secreto.
Comprobación del nombre y el ARN del secreto de Secrets Manager
Comprueba si el nombre de tu secreto termina con un guion seguido de seis caracteres. Por ejemplo, myappsecret-xxxxxx. Secrets Manager agrega automáticamente un guion y seis caracteres aleatorios después del nombre del secreto al final del ARN. Se recomienda no terminar el nombre del secreto con un guion seguido de seis caracteres.
Para resolver este problema, usa los ARN completos, incluidos el guion y los seis caracteres adicionales, de los secretos de Secrets Manager.
Comprobación de la configuración de red de Amazon VPC
Crea los puntos de enlace de Amazon VPC de la interfaz para Secrets Manager cuando se cumplan las condiciones siguientes:
- Utilizas una definición de tarea que hace referencia a los secretos de Secrets Manager para recuperar datos confidenciales para tus contenedores.
- Utilizas puntos de enlace de Amazon VPC de interfaz.
Además, asegúrate de que los grupos de seguridad de tus puntos de enlace de VPC permitan que la infraestructura de Amazon ECS los utilice.
Para comprobar si existe el punto de enlace de Amazon VPC para Secrets Manager, sigue estos pasos:
- Abre la consola de Amazon VPC.
- En el panel de navegación, elige Puntos de enlace.
- Asegúrate de especificar el punto de enlace de Amazon VPC com.amazonaws.example-region.secretsmanager para Secrets Manager.
- Selecciona el punto de enlace y, a continuación, elige la pestaña Subredes. Asegúrate de que las subredes de este punto de enlace incluyan los puntos de enlace que utiliza tu tarea de Amazon ECS.
Nota: Si no hay subredes, elige Administrar subredes. Selecciona la subred en función de tu zona de disponibilidad y, a continuación, elige Modificar subredes.
Para confirmar que el grupo de seguridad adjunto al punto de enlace com.amazonaws.example-region.secretsmanager permite conexiones entrantes en el puerto 443 desde las tareas de Amazon ECS, sigue estos pasos:
- Abre la consola de Amazon VPC.
- En el panel de navegación, elige Puntos de enlace.
- Selecciona el punto de enlace.
- Selecciona la pestaña Grupos de seguridad.
- Elige el ID de grupo del grupo de seguridad que desees comprobar.
- Selecciona la pestaña Reglas de entrada.
- Comprueba que la lista de reglas de entrada incluya una regla que permita las conexiones en 443 desde tus tareas de Amazon ECS.
Información relacionada
¿Cómo puedo transmitir secretos o información confidencial de forma segura a los contenedores de una tarea de Amazon ECS?
Solución de problemas de AWS Secrets Manager