Obtención de un valor de cadena segura del Almacén de parámetros de Systems Manager - AWS CloudFormation

Obtención de un valor de cadena segura del Almacén de parámetros de Systems Manager

En CloudFormation, puede usar datos confidenciales, como contraseñas o claves de licencia, sin exponerlos directamente en sus plantillas al almacenar los datos confidenciales como una “cadena segura” en el Almacén de parámetros de AWS Systems Manager. Para obtener una introducción al Almacén de parámetros, consulte Almacén de parámetros de AWS Systems Manager en la Guía del usuario de AWS Systems Manager.

Para utilizar una cadena segura del Almacén de parámetros en la plantilla, debe usar una referencia dinámica ssm-secure. CloudFormation no almacena nunca el valor real de cadena segura. En su lugar, solo almacena la referencia dinámica literal, que contiene el nombre de parámetro en texto sin formato de la cadena segura.

Durante la creación o las actualizaciones de la pila, CloudFormation accede al valor de cadena segura según sea necesario, sin exponer el valor real. Las cadenas seguras solo se pueden usar para las propiedades de recursos que admiten el patrón de referencia dinámica ssm-secure. Para obtener más información, consulte Recursos que admiten patrones de parámetros dinámicos para SecureStrings o cadenas seguras.

CloudFormation no devuelve el valor del parámetro real para las cadenas seguras en ninguna llamada a la API. Solo devuelve la referencia dinámica literal. Al comparar los cambios con el conjunto de cambios, CloudFormation solo compara la cadena de referencia dinámica literal. No resuelve ni compara los valores reales de la cadena segura.

Al utilizar referencias dinámicas ssm-secure, debe tener en cuenta varios aspectos:

  • CloudFormation no puede acceder a los valores del Almacén de parámetros desde otras Cuentas de AWS.

  • CloudFormation no es compatible con el uso de etiquetas de parámetros de Systems Manager o parámetros públicos en las referencias dinámicas.

  • En las regiones cn-north-1 y cn-northwest-1, las cadenas seguras no son compatibles con Systems Manager.

  • Las referencias dinámicas de valores seguros, como, por ejemplo, ssm-secure, no son compatibles actualmente con los recursos personalizados.

  • Si CloudFormation necesita reversionar la actualización de la pila, y la versión especificada anteriormente de un parámetro de cadena segura ya no está disponible, se producirá un error en dicha operación de reversión. En esos casos, existen dos opciones:

    • Use CONTINUE_UPDATE_ROLLBACK para omitir el recurso.

    • Vuelva a crear el parámetro SecureString o de cadena segura en el almacén de parámetros de Administrador de sistemas y actualícelo hasta que la versión del parámetro llegue a la versión que se utiliza en la plantilla. Luego use CONTINUE_UPDATE_ROLLBACK sin omitir el recurso.

Recursos que admiten patrones de parámetros dinámicos para SecureStrings o cadenas seguras

Los recursos compatibles con el patrón de referencia dinámica ssm-secure son:

Patrón de referencia

Para referenciar un valor de cadena segura del Almacén de parámetros de Systems Manager en una plantilla de CloudFormation, utilice el siguiente patrón de referencia ssm-secure.

{{resolve:ssm-secure:parameter-name:version}}

Su referencia debe cumplir el siguiente patrón de expresión regular para nombre-parámetro y versión:

{{resolve:ssm-secure:[a-zA-Z0-9_.\-/]+(:\d+)?}}
parameter-name

El nombre del parámetro en el almacén de parámetros de . El nombre de parámetro distingue entre mayúsculas y minúsculas.

Obligatorio.

version

Un número entero que especifica la versión del parámetro que se va a utilizar. Si no especifica la versión exacta, CloudFormation utiliza la última versión del parámetro cada vez que cree o actualice la pila. Para obtener más información, consulte Trabajo con versiones de parámetros en la Guía del usuario de AWS Systems Manager.

Opcional.

Ejemplo

En el siguiente ejemplo, se utiliza una referencia dinámica ssm-secure para establecer la contraseña de un usuario de IAM para una cadena segura almacenada en el Almacén de parámetros. Tal y como se especifica, CloudFormation usará la versión 10 del parámetro IAMUserPassword para las operaciones de pila y de conjunto de cambios.

JSON

"MyIAMUser": { "Type": "AWS::IAM::User", "Properties": { "UserName": "MyUserName", "LoginProfile": { "Password": "{{resolve:ssm-secure:IAMUserPassword:10}}" } } }

YAML

MyIAMUser: Type: AWS::IAM::User Properties: UserName: 'MyUserName' LoginProfile: Password: '{{resolve:ssm-secure:IAMUserPassword:10}}'