Especificación de información confidencial mediante el Parameter Store de Systems Manager - AWS Batch

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 Parameter Store de Systems Manager

Con AWS Batch, puede inyectar datos confidenciales en sus contenedores almacenándolos en los parámetros del almacén de parámetros y, a continuación, haciendo referencia a ellos en la definición de su contenedor. AWS Systems Manager

Consideraciones para especificar información confidencial mediante el Parameter Store de Systems Manager

Cuando se especifica información confidencial para contenedores que utilizan parámetros del Parameter Store de Systems Manager, se debe tener en cuenta lo siguiente.

  • Esta función requiere que la instancia de contenedor tenga la versión 1.23.0 o posterior del agente contenedor. No obstante, recomendamos utilizar la versión del agente de contenedor más reciente. Para obtener información sobre cómo comprobar la versión del agente y actualizarlo a la versión más reciente, consulte Actualización del agente de contenedor de Amazon ECS en la Guía para desarrolladores de Amazon Elastic Container Service.

  • Los datos confidenciales se inyectan en el contenedor para su trabajo al iniciar el contenedor. Si el secreto o el parámetro de Parameter Store se actualizan posteriormente o se rotan, el contenedor no recibe automáticamente el valor actualizado. Debe lanzar un nuevo trabajo para obligar el lanzamiento de uno nuevo con los secretos actualizados.

Permisos de IAM necesarios para los secretos AWS Batch

Para utilizar esta característica, debe tener la función de ejecución y hacer referencia a ella en la definición del trabajo. Esto permite al agente de contenedores de Amazon ECS obtener los AWS Systems Manager recursos necesarios. Para obtener más información, consulte AWS Batch función de IAM de ejecución.

Para proporcionar acceso a los AWS Systems Manager parámetros del almacén de parámetros que cree, añada manualmente los siguientes permisos como política integrada a la función de ejecución. Para obtener más información, consulte Adición y eliminación de políticas de IAM en la Guía del usuario de IAM.

  • ssm:GetParameters: obligatorio si se hace referencia a un parámetro del Parameter Store de Systems Manager en una definición de tareas.

  • secretsmanager:GetSecretValue: obligatorio si se hace referencia a un secreto de Secrets Manager directamente o si el parámetro del Parameter Store de Systems Manager hace referencia a un secreto de Secrets Manager en una definición de tareas.

  • kms:Decrypt: obligatorio solo si el secreto utiliza una clave de 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>" ] } ] }

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

En la definición de contenedor, especifique secrets con el nombre de la variable de entorno que se va a establecer en el contenedor y el ARN completo del parámetro del Parameter Store de Systems Manager que contiene la información confidencial que se va a presentar al contenedor.

A continuación, se incluye un fragmento de código de una definición de tarea que muestra el formato cuando se hace referencia a un parámetro del almacén de parámetros de Systems Manager. Si el parámetro del almacén de parámetros de Systems Manager 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.

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

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

En la definición de contenedor, al especificar una logConfiguration, puede especificar secretOptions con el nombre de la opción del controlador de registros que va a definir en el contenedor y el ARN completo del parámetro del Parameter Store de Systems Manager 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 Systems Manager 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 incluye un fragmento de código de una definición de tarea que muestra el formato cuando se hace referencia a un parámetro del almacén de parámetros de Systems Manager.

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

Crear un AWS Systems Manager parámetro de almacén de parámetros

Puede utilizar la AWS Systems Manager consola para crear un parámetro del almacén de parámetros de Systems Manager para sus datos confidenciales. Para obtener más información, consulte Explicación: Creación y utilización de un parámetro en un comando (consola) en la Guía del usuario de AWS Systems Manager .

Para crear un parámetro con Parameter Store
  1. Abra la AWS Systems Manager consola 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 Tipo, elija Cadena o SecureString. StringList

    nota
    • Si lo elige SecureString, aparece el campo ID de clave de KMS. Si no proporciona un ID de clave de KMS, un ARN de clave de KMS, un nombre de alias o un ARN de alias, el sistema utiliza alias/aws/ssm. Esta es la clave de KMS predeterminada para Systems Manager. Para evitar utilizar esta clave, elija una clave personalizada. Para obtener más información, consulte Utilización de parámetros de cadena segura en la Guía del usuario de AWS Systems Manager .

    • Si crea un parámetro de cadena segura en la consola mediante el parámetro key-id con un nombre de alias de clave de KMS o un ARN de alias personalizado, 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 lo elige SecureString, el valor se enmascara exactamente como lo ingresó.

  7. Elija Create parameter.