¿Cómo puedo solucionar los problemas relacionados con los secretos de AWS Secrets Manager en Amazon ECS?

5 minutos de lectura
0

Cuando intento colocar una tarea que usa secretos de AWS Secrets Manager en Amazon Elastic Container Services (Amazon ECS), aparece un error.

Breve descripción

Si no puede colocar una tarea con un secreto de Secrets Manager en Amazon ECS, es posible que reciba uno de los errores siguientes:

«Error ResourceInitializationError en AWS Fargate Error AccessDenied en Amazon Elastic Compute Cloud (Amazon EC2)»

«La tarea no puede recuperar los secretos de Secrets Manager y falla.»

Recibe estos mensajes de error por uno de los motivos siguientes:

  • 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. Esto devuelve resultados inesperados al buscar un secreto mediante un ARN parcial.
  • 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, use el runbook AWSSupport-TroubleshootECSTaskFailedToStart. A continuación, consulte los pasos de solución de problemas correspondientes a su problema.

Solución

Importante:

  • Utilice el runbook AWSSupport-TroubleshootECSTaskFailedToStart en la misma región de AWS en la que se encuentran los recursos del clúster de ECS.
  • Cuando utilice el runbook, debe usar el ID de la tarea que ha fallado más recientemente. Si la tarea que ha fallado forma parte de un servicio de Amazon ECS, utilice la tarea del servicio que haya fallado más recientemente. 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 ECS detenidas están visibles durante 1 hora después de entrar en el estado Detenido. El uso del identificador de la tarea que ha fallado más recientemente evita que la limpieza del estado de la tarea interrumpa el análisis durante la automatización.

Para obtener instrucciones sobre cómo iniciar el runbook, consulte AWSSupport-TroubleshootECSTaskFailedToStart. Dependiendo del resultado de la automatización, use uno de los siguientes pasos manuales de solución de problemas.

Compruebe que el rol de ejecución de tareas de ECS tenga los permisos necesarios

  1. Abra la consola de IAM.
  2. En el panel de navegación, elija Roles.
  3. Busque en la lista de roles el rol de ejecución de tareas que utilizan sus tareas de ECS.
  4. Confirme que el rol de ejecución de tareas tenga los permisos necesarios para acceder al recurso de Secrets Manager necesario.

Compruebe que existe el secreto de Secrets Manager

  1. Abra la consola de Secrets Manager.
  2. En la página de lista de secretos, elija el secreto que utilizan sus tareas de ECS.
  3. Confirme que la definición de la tarea de ECS incluye estos nombres de secretos específicos. Si especificó parámetros adicionales en el secreto, confirme que la definición de la tarea incluye el json-key/version-stage/version-id que se especifica en el secreto.

Compruebe el nombre y el ARN del secreto de Secrets Manager

Compruebe si el nombre de su secreto termina con un guion seguido de seis caracteres (por ejemplo: myappsecret-xxxxxx). Secrets Manager añade automáticamente un guion y seis caracteres aleatorios después del nombre del secreto al final del ARN. Por lo tanto, se recomienda no terminar el nombre del secreto con un guion seguido de seis caracteres. Si lo hace, podría obtener resultados inesperados al buscar un secreto mediante un ARN parcial. Para resolver este problema, asegúrese de utilizar los ARN completos, incluidos el guion y los seis caracteres adicionales, de los secretos de Secrets Manager.

Verifique que la configuración de red de VPC permite que su infraestructura de Amazon ECS llegue a Secrets Manager

Cree los puntos de conexión de VPC de la interfaz para Secrets Manager cuando se cumplan las condiciones siguientes:

  • Está utilizando una definición de tarea que hace referencia a los secretos de Secrets Manager para recuperar datos confidenciales para sus contenedores.
  • Está utilizando puntos de conexión de VPC de la interfaz.

Además, asegúrese de que los grupos de seguridad de sus puntos de conexión de VPC permitan que la infraestructura de ECS los utilice.

Para comprobar si existe el punto de conexión de VPC de Secrets Manager, haga lo siguiente:

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, elija Puntos de conexión.
  3. Asegúrese de que el punto de conexión de VPC com.amazonaws.example-region.secretsmanager para Secrets Manager esté en la lista de puntos de conexión.
  4. Seleccione el punto de conexión de la lista de puntos de conexión y, a continuación, elija la pestaña Subredes. Asegúrese de que las subredes de este punto de conexión incluyan las utilizadas en su tarea de ECS.
    Nota: Si no aparece ninguna subred, seleccione Administrar subredes. Seleccione la subred en función de su zona de disponibilidad y, a continuación, elija Modificar subredes.

Para confirmar que el grupo de seguridad adjunto al punto de conexión com.amazonaws.example-region.secretsmanager permite conexiones entrantes en el puerto 443 desde las tareas de Amazon ECS, haga lo siguiente:

  1. Seleccione el punto de conexión de la lista de puntos de conexión.
  2. Seleccione la pestaña Grupos de seguridad.
  3. Elija el ID de grupo del grupo de seguridad que desee comprobar.
  4. Seleccione la pestaña Reglas de entrada.
  5. Compruebe que la lista de reglas de entrada incluya una regla que permita las conexiones en 443 desde sus tareas de 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