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

Última actualización: 30-3-2022

Cuando intento colocar una tarea que utiliza los secretos de AWS Secrets Manager en Amazon Elastic Container Services (Amazon ECS), aparece uno de los siguientes errores:

  • Error de ResourceInitializationError en AWS Fargate
  • Error de AccessDenied en Amazon Elastic Compute Cloud (Amazon EC2)

La tarea no puede recuperar los secretos de Secrets Manager y se produce un error.

Descripción corta

Recibe estos mensajes de error debido a 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 puede encontrar el secreto especificado.
  • El nombre del secreto termina con un guion seguido de seis caracteres. Esto devuelve resultados inesperados cuando busca un secreto con un ARN parcial.
  • Hay problemas con la configuración de red de Amazon Virtual Private Cloud (Amazon VPC).

Resolución

Comprobar que el rol de ejecución de tareas de ECS tenga los permisos requeridos

  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 tiene los permisos requeridos para acceder al recurso de Secrets Manager necesario.

Comprobar que el secreto de Secrets Manager existe

  1. Abra la consola de Secrets Manager.
  2. En la página Secrets list (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 su tarea incluye 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 del secreto termina con un guion seguido de seis caracteres (ejemplo: myappsecret-xxxxxx). Secrets Manager agrega automáticamente un guion y seis caracteres aleatorios después del nombre del secreto al final del ARN. Por lo tanto, una práctica recomendada es no terminar el nombre del secreto con un guion seguido de seis caracteres. Esto puede devolver resultados inesperados cuando busca un secreto con el ARN parcial. Para resolver este problema, asegúrese de utilizar los ARN completos, incluidos el guion adicional y los seis caracteres, de los secretos de Secrets Manager.

Compruebe que la configuración de redes de VPC permita que la infraestructura de Amazon ECS llegue a Secrets Manager

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

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

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

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

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, elija Endpoints (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 Subnets (Subredes). Asegúrese de que las subredes de este punto de conexión incluyan las que utiliza la tarea de ECS.
    Nota: Si no hay subredes en la lista, elija Manage Subnets (Administrar subredes). Seleccione la subred en función de su zona de disponibilidad y, a continuación, elija Modify Subnets (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 en la lista de puntos conexión.
  2. Elija la pestaña Security Groups (Grupos de seguridad).
  3. Elija el ID de grupo para el grupo de seguridad que desea comprobar.
  4. Elija la pestaña Inbound rules (Reglas de entrada).
  5. Compruebe que la lista de reglas de entrada incluya una regla que permita 443 conexiones desde sus tareas de ECS.

¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?