Especificación de información confidencial mediante el almacén de Administrador de sistemas parámetros de - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Especificación de información confidencial mediante el almacén de Administrador de sistemas parámetros de

Amazon ECS le permite introducir información confidencial en sus contenedores almacenándola en parámetros de AWS Administrador de sistemas Parameter Store y, a continuación, haciendo referencia a ellos en la definición de contenedor.

Consideraciones para especificar información confidencial mediante el almacén de Administrador de sistemas parámetros de

Se debe tener en cuenta lo siguiente al especificar información confidencial para contenedores que utilizan parámetros del almacén de parámetros de Administrador de sistemas

  • Para las tareas que utilizan el tipo de lanzamiento Fargate, esta característica requiere que la tarea utilice la versión 1.3.0 o posterior de la plataforma. Para obtener información, consulte AWS FargateVersiones de la plataforma .

  • Para tareas que utilicen el tipo de lanzamiento EC2, esta característica requiere que la instancia del contenedor tenga una versión 1.22.0 o posterior del agente de contenedor. No obstante, recomendamos utilizar la versión del agente de contenedor más reciente. Para obtener información sobre la comprobación de la versión del agente y la actualización a la versión más reciente, consulte Actualizar el agente de contenedor de Amazon ECS.

  • Los datos confidenciales se inyectan en el contenedor al iniciar el contenedor. Si el secreto o el parámetro Parameter Store se actualizan posteriormente o se rotan, el contenedor no recibirá automáticamente el valor actualizado. Debe lanzar una nueva tarea o, si la tarea forma parte de un servicio, puede actualizar el servicio y utilizar la opción Force new deployment (Forzar nueva implementación) para forzar que el servicio lance una nueva tarea.

  • Para las tareas de Windows configuradas para utilizar el controlador de registros awslogs, debe también establecer la variable de entorno ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE en la instancia del contenedor. Esto se puede hacer con User Data (Datos de usuario) mediante el uso de la siguiente sintaxis:

    <powershell> [Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine") Initialize-ECSAgent -Cluster <cluster name> -EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]' </powershell>

IAM Permisos necesarios para Amazon ECS secretos

Para utilizar esta característica, debe tener el rol de ejecución de tareas de Amazon ECS y hacer referencia a él en la definición de la tarea. Esto permite que el agente de contenedor extraiga los recursos de AWS Administrador de sistemas necesarios. Para obtener más información, consulte Amazon ECS ejecución de tareas IAM función.

importante

En el caso de las tareas que utilizan el tipo de lanzamiento EC2, debe utilizar la variable de configuración del agente de ECS ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true para utilizar esta característica. Puede añadirla al archivo ./etc/ecs/ecs.config durante la creación de la instancia de contenedor o puede añadirla a una instancia existente y, a continuación, reiniciar el agente de ECS. Para obtener más información, consulte Amazon ECSConfiguración del agente de contenedor de .

Para proporcionar acceso a los parámetros de AWS Administrador de sistemas Parameter Store que cree, añada manualmente los siguientes permisos como una política insertada al rol de ejecución de tareas. Para obtener más información, consulte Adición y eliminación de políticas de IAM.

  • ssm:GetParameters—Obligatorio si hace referencia a un parámetro de Administrador de sistemas Parameter Store en una definición de tarea.

  • secretsmanager:GetSecretValue—Obligatorio si hace referencia a un Secrets Manager secreto de directamente o si el parámetro de Administrador de sistemas Parameter Store hace referencia a un Secrets Manager secreto en una definición de tarea.

  • kms:Decrypt—Solo es necesario si el secreto utiliza una clave KMS personalizada y no la clave predeterminada. El ARN de su clave personalizada debe añadirse como un recurso.

A continuación, mostramos un ejemplo de política insertada que añade los permisos necesarios.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter_name>", "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] }

Inserción de información confidencial como variable de entorno

En su definición de contenedor, especifique secrets con el nombre de la variable de entorno que se establece en el contenedor y el ARN completo del parámetro del Almacén de parámetros de Administrador de sistemas que contiene la información confidencial que se presentará al contenedor.

A continuación se muestra un fragmento de definición de tarea que muestra el formato cuando se hace referencia a un parámetro de Administrador de sistemas Parameter Store. Si el parámetro del Almacén de parámetros de Administrador de sistemas está en la misma región que la tarea que se va a lanzar, se puede utilizar el ARN completo o el nombre del parámetro. Si el parámetro existe en una región distinta, el ARN completo debe especificarse.

{ "containerDefinitions": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" }] }] }

Inserción de información confidencial en una configuración de registro

En la definición del contenedor, al especificar una logConfiguration puede especificar secretOptions con el nombre de la opción del controlador de registros para definir el contenedor y el ARN completo del parámetro del Almacén de parámetros de Administrador de sistemas que contiene la información confidencial que se va a presentar al contenedor.

importante

Si el parámetro del Almacén de parámetros de Administrador de sistemas está en la misma región que la tarea que se va a lanzar, se puede utilizar el ARN completo o el nombre del parámetro. Si el parámetro existe en una región distinta, el ARN completo debe especificarse.

A continuación se muestra un fragmento de definición de tarea que muestra el formato cuando se hace referencia a un parámetro de Administrador de sistemas Parameter Store.

{ "containerDefinitions": [{ "logConfiguration": [{ "logDriver": "fluentd", "options": { "tag": "fluentd demo" }, "secretOptions": [{ "name": "fluentd-address", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter:parameter_name" }] }] }] }

Creación de un parámetro de AWS Administrador de sistemas Parameter Store de

Puede utilizar la consola de AWS Administrador de sistemas para crear un parámetro de Administrador de sistemas Parameter Store para la información confidencial. Para obtener más información, consulte Tutorial: Crear y utilizar un parámetro en un comando (consola) en la Guía del usuario de AWS Administrador de sistemas.

Para crear un parámetro con Parameter Store

  1. Abra la consola de AWS Administrador de sistemas en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija Parameter Store, Create parameter (Crear parámetro).

  3. En Name (Nombre), escriba una jerarquía y un nombre de parámetro. Por ejemplo, escriba test/database_password.

  4. En Description (Descripción), escriba una descripción opcional.

  5. En Type (Tipo), elija String (Cadena), StringListo SecureString .

    nota
    • Si elige SecureString , aparece el campo KMS Key ID (ID de clave de KMS). Si no proporciona un ID de CMK de KMS, un ARN de CMK de KMS, un nombre de alias o un ARN de alias, el sistema utiliza alias/aws/ssm, que es la CMK de KMS predeterminada para Administrador de sistemas. Para evitar utilizar esta clave, elija una clave personalizada. Para obtener más información, consulte Uso de los parámetros SecureString en la Guía del usuario de AWS Administrador de sistemas.

    • Si crea un parámetro SecureString en la consola mediante el parámetro key-id con un nombre de alias de CMK de KMS personalizado o un ARN de alias, debe especificar el prefijo alias/ antes del alias. A continuación se muestra un ejemplo de ARN:

      arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

      El siguiente es un ejemplo de un nombre de alias:

      alias/MyAliasName
  6. En Value (Valor), escriba un valor. Por ejemplo, MyFirstParameter. Si eligió SecureString , el valor se enmascara a medida que escribe.

  7. Elija Create parameter.

Creación de una definición de tarea que haga referencia a información confidencial

Puede utilizar la consola de Amazon ECS para crear una definición de tareas que haga referencia a un parámetro de Administrador de sistemas Parameter Store.

Para crear una definición de tarea que especifique un secreto

  1. Abra la consola de Amazon ECS en https://console.aws.amazon.com/ecs/.

  2. En el panel de navegación, elija task definitions (Definiciones de tarea), Create new task definition (Crear nueva definición de tarea).

  3. En la página Select launch type compatibility (Seleccionar compatibilidad del tipo de lanzamiento), elija el tipo de lanzamiento para las tareas y elija Next step (Paso siguiente).

    nota

    Este paso solo es válido para las regiones que actualmente admiten Amazon ECS con AWS Fargate. Para obtener más información, consulte Amazon ECS del AWS Fargate.

  4. En task definition Name, escriba un nombre para la definición de tarea. Se admiten hasta 255 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado.

  5. En Task execution role (Rol de ejecución de tareas), seleccione el rol de ejecución de tareas existente o elija Create new role (Crear nuevo rol) para que se cree uno automáticamente. Este rol permite a Amazon ECS extraer imágenes privadas para su tarea. Para obtener más información, consulte IAM Permisos necesarios para la autenticación de registros privados.

    importante

    Si el campo Task execution role (Rol de ejecución de tareas) no aparece, elija Configure via JSON (Configurar mediante JSON) y añada manualmente el executionRoleArn campo para especificar el rol de ejecución de tareas. En el siguiente código se muestra la sintaxis:

    "executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole"
  6. Para cada contenedor que vaya a crear en su definición de tarea, siga los pasos que se describen a continuación:

    1. En Container Definitions (Definiciones de contenedor), elija Add container (Añadir contenedor).

    2. En Container name (Nombre del contenedor), escriba un nombre para el contenedor. Se admiten hasta 255 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado.

    3. En Image (Imagen), escriba el nombre de la imagen o la ruta a una imagen privada. Se admiten hasta 255 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado.

    4. Amplíe Advanced container configuration (Configuración avanzada del contenedor).

    5. En el caso de la información confidencial que se va a inyectar como variables de entorno, en Environment (Entorno), en Environment variables (Variables de entorno), complete los campos siguientes:

      1. En Key (Clave), escriba el nombre de la variable de entorno que se va a establecer en el contenedor. Se corresponde con el campo name de la sección secrets de una definición de contenedor.

      2. En Value (Valor), elija ValueFrom . En Add value (Añadir valor), escriba el ARN completo del parámetro del Almacén de AWS Administrador de sistemas parámetros de que contiene los datos que se presentarán al contenedor como una variable de entorno.

        nota

        Si el parámetro de Administrador de sistemas Parameter Store existe en la misma región que la tarea que se va a lanzar, se puede utilizar el ARN completo o el nombre del secreto. Si el parámetro existe en una región distinta, el ARN completo debe especificarse.

    6. Para secretos a los que se hace referencia en la configuración de registro de un contenedor, en Storage and Logging (Almacenamiento y registro), en Log configuration (Configuración de registro), complete los campos siguientes:

      1. Desactive la CloudWatch Logs opción Auto-configure (Configuración automática).

      2. En Log options (Opciones de registro), en Key (Clave), escriba el nombre de la opción de configuración de registro que desea establecer.

      3. En Value (Valor), elija ValueFrom . En Add value (Añadir valor), escriba el nombre o el ARN completo del parámetro del Almacén de AWS Administrador de sistemas parámetros de que contiene los datos que presentar a la configuración de registro como opción de registro.

        nota

        Si el parámetro del Almacén de parámetros de Administrador de sistemas existe en la misma región que la tarea que se va a lanzar, se puede utilizar el ARN completo o el nombre del secreto. Si el parámetro existe en una región distinta, el ARN completo debe especificarse.

    7. Rellene el resto de los campos obligatorios y todos los campos opcionales que va a usar en sus definiciones de contenedor. Hay más parámetros de definición de contenedor disponibles en el menú Advanced container configuration (Configuración avanzada del contenedor). Para obtener más información, consulte Parámetros de definición de tarea.

    8. Elija Add (Añadir).

  7. Cuando se añadan los contenedores, elija Create (Crear).