Creación de un parámetro de Systems Manager (AWS CLI) - AWS Systems Manager

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.

Creación de un parámetro de Systems Manager (AWS CLI)

Puede utilizar la AWS Command Line Interface (AWS CLI) para crear tipos de parámetros String, StringList, y SecureString. Después de eliminar un parámetro, espere al menos 30 segundos para crear un parámetro con el mismo nombre.

Los parámetros no se pueden referenciar ni anidar en los valores de otros parámetros. No puede incluir {{}} o {{ssm:parameter-name}} en el valor de un parámetro.

nota

Los parámetros solo están disponibles en la Región de AWS donde se crearon.

Creación de un parámetro String (AWS CLI)

  1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

    Para obtener más información, consulte Instalación o actualización de la última versión de la AWS CLI.

  2. Para crear un parámetro de tipo String, ejecute el siguiente comando. Reemplace cada example resource placeholder por su propia información.

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "parameter-value" \ --type String \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "parameter-value" ^ --type String ^ --tags "Key=tag-key,Value=tag-value"

    -o bien-

    Ejecute el siguiente comando para crear un parámetro que contenga un ID de Amazon Machine Image (AMI) como valor del parámetro.

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "an-AMI-id" \ --type String \ --data-type "aws:ec2:image" \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "an-AMI-id" ^ --type String ^ --data-type "aws:ec2:image" ^ --tags "Key=tag-key,Value=tag-value"

    La opción --name admite jerarquías. Para obtener información acerca de las jerarquías, consulte Trabajo con jerarquías de parámetros.

    La opción --data-type solo se debe especificar si va a crear un parámetro que contiene un ID de AMI. Este valida que el valor del parámetro que ingresa es un ID de AMI de Amazon Elastic Compute Cloud (Amazon EC2) con formato adecuado. Para todos los demás parámetros, el tipo de datos predeterminado es text y es opcional especificar un valor. Para obtener más información, consulte Compatibilidad con parámetros nativos para los ID de Amazon Machine Image.

    importante

    Si se ejecuta correctamente, el comando devuelve el número de la versión del parámetro. Excepción: si ha especificado aws:ec2:image como tipo de datos, un nuevo número de versión en la respuesta no significa que el valor del parámetro se haya validado todavía. Para obtener más información, consulte Compatibilidad con parámetros nativos para los ID de Amazon Machine Image.

    En este ejemplo se agregan dos etiquetas de pares de clave-valor a un parámetro.

    Linux & macOS
    aws ssm put-parameter \ --name parameter-name \ --value "parameter-value" \ --type "String" \ --tags '[{"Key":"Region","Value":"East"},{"Key":"Environment", "Value":"Production"}]'
    Windows
    aws ssm put-parameter ^ --name parameter-name ^ --value "parameter-value" ^ --type "String" ^ --tags [{\"Key\":\"Region1\",\"Value\":\"East1\"},{\"Key\":\"Environment1\",\"Value\":\"Production1\"}]

    En el siguiente ejemplo se utiliza una jerarquía de parámetros en el nombre para crear un parámetro de String de texto sin formato. Este devuelve el número de la versión del parámetro. Para obtener más información acerca de las jerarquías de parámetros, consulte Trabajo con jerarquías de parámetros.

    Linux & macOS

    Parámetro no en una jerarquía

    aws ssm put-parameter \ --name "golden-ami" \ --type "String" \ --value "ami-12345abcdeEXAMPLE"

    Parámetro en una jerarquía

    aws ssm put-parameter \ --name "/amis/linux/golden-ami" \ --type "String" \ --value "ami-12345abcdeEXAMPLE"
    Windows

    Parámetro no en una jerarquía

    aws ssm put-parameter ^ --name "golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"

    Parámetro en una jerarquía

    aws ssm put-parameter ^ --name "/amis/windows/golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"
  3. Ejecute el siguiente comando para ver el valor más reciente del parámetro y comprobar los detalles del nuevo parámetro.

    aws ssm get-parameters --names "/Test/IAD/helloWorld"

    El sistema devuelve información similar a la siguiente.

    {
        "InvalidParameters": [],
        "Parameters": [
            {            
                "Name": "/Test/IAD/helloWorld",
                "Type": "String",
                "Value": "My updated parameter value",
                "Version": 2,
                "LastModifiedDate": "2020-02-25T15:55:33.677000-08:00",
                "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Test/IAD/helloWorld"            
            }
        ]
    }

Ejecute el siguiente comando para cambiar los valores del parámetro. Este devuelve el número de la versión del parámetro.

aws ssm put-parameter --name "/Test/IAD/helloWorld" --value "My updated 1st parameter" --type String --overwrite

Ejecute el siguiente comando para ver el historial del parámetro.

aws ssm get-parameter-history --name "/Test/IAD/helloWorld"

Ejecute el siguiente comando para utilizar este parámetro en un comando.

aws ssm send-command --document-name "AWS-RunShellScript" --parameters '{"commands":["echo {{ssm:/Test/IAD/helloWorld}}"]}' --targets "Key=instanceids,Values=instance-ids"

Ejecute el siguiente comando si solo desea recuperar el valor del parámetro.

aws ssm get-parameter --name testDataTypeParameter --query "Parameter.Value"

Ejecute el siguiente comando si solo desea recuperar el valor del parámetro mediante get-parameters.

aws ssm get-parameters --names "testDataTypeParameter" --query "Parameters[*].Value"

Ejecute el siguiente comando para ver los metadatos del parámetro.

aws ssm describe-parameters --filters "Key=Name,Values=/Test/IAD/helloWorld"
nota

El nombre debe estar en mayúsculas.

El sistema devuelve información similar a la siguiente.

{
    "Parameters": [
        {
            "Name": "helloworld",
            "Type": "String",
            "LastModifiedUser": "arn:aws:iam::123456789012:user/JohnDoe",
            "LastModifiedDate": 1494529763.156,
            "Version": 1,
            "Tier": "Standard",
            "Policies": []           
        }
    ]
}

Creación de un parámetro StringList (AWS CLI)

  1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

    Para obtener más información, consulte Instalación o actualización de la última versión de la AWS CLI.

  2. Para crear un parámetro, ejecute el siguiente comando. Reemplace cada example resource placeholder por su propia información.

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "a-comma-separated-list-of-values" \ --type StringList \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-comma-separated-list-of-values" ^ --type StringList ^ --tags "Key=tag-key,Value=tag-value"
    nota

    Si se ejecuta correctamente, el comando devuelve el número de la versión del parámetro.

    En este ejemplo se añaden dos etiquetas de pares clave-valor a un parámetro. (En función del tipo de sistema operativo de su máquina local, ejecute uno de los siguientes comandos. La versión para ejecutar desde un equipo local de Windows incluye los caracteres de escape [“\”] que necesita para ejecutar el comando desde la herramienta de línea de comandos).

    Aquí se incluye un ejemplo de StringList que utiliza una jerarquía de parámetros.

    Linux & macOS
    aws ssm put-parameter \ --name /IAD/ERP/Oracle/addUsers \ --value "Milana,Mariana,Mark,Miguel" \ --type StringList
    Windows
    aws ssm put-parameter ^ --name /IAD/ERP/Oracle/addUsers ^ --value "Milana,Mariana,Mark,Miguel" ^ --type StringList
    nota

    Los elementos de StringList deben ir separados por comas (,). No se puede utilizar otra puntuación ni carácter especial para exceptuar los elementos de la lista. Si tiene un valor de parámetro que requiera una coma, utilice el tipo de datos String.

  3. Ejecute el comando get-parameters para verificar los detalles del parámetro. Por ejemplo:

    aws ssm get-parameters --name "/IAD/ERP/Oracle/addUsers"

Creación de un parámetro de cadena segura (AWS CLI)

Utilice el siguiente procedimiento para crear un parámetro SecureString. Reemplace cada example resource placeholder por su propia información.

importante

Solo se cifra el valor de un parámetro SecureString. Los nombres de parámetros, las descripciones y otras propiedades no se cifran.

importante

Parameter Store solo es compatible con claves de cifrado de KMS simétricas. No se puede utilizar una clave de cifrado de KMS asimétrica para cifrar los parámetros. Para obtener ayuda para determinar si una clave de KMS es simétrica o asimétrica, consulte Identificación de claves KMS simétricas y asimétricas en la AWS Key Management ServiceGuía para desarrolladores de .

  1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

    Para obtener más información, consulte Instalación o actualización de la última versión de la AWS CLI.

  2. Ejecute uno de los siguientes comandos para crear un parámetro que utilice el tipo de datos SecureString.

    Linux & macOS

    Creación de un parámetro SecureString con la Clave administrada de AWS predeterminada

    aws ssm put-parameter \ --name "parameter-name" \ --value "parameter-value" \ --type "SecureString"

    Creación de un parámetro SecureString que utilice una clave administrada por el cliente

    aws ssm put-parameter \ --name "parameter-name" \ --value "a-parameter-value, for example P@ssW%rd#1" \ --type "SecureString" --tags "Key=tag-key,Value=tag-value"

    Creación de un SecureString parámetro que use una AWS KMS clave personalizada

    aws ssm put-parameter \ --name "parameter-name" \ --value "a-parameter-value, for example P@ssW%rd#1" \ --type "SecureString" \ --key-id "your-account-ID/the-custom-AWS KMS-key" \ --tags "Key=tag-key,Value=tag-value"
    Windows

    Creación de un parámetro SecureString con la Clave administrada de AWS predeterminada

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "parameter-value" ^ --type "SecureString"

    Creación de un parámetro SecureString que utilice una clave administrada por el cliente

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-parameter-value, for example P@ssW%rd#1" ^ --type "SecureString" ^ --tags "Key=tag-key,Value=tag-value"

    Creación de un SecureString parámetro que use una AWS KMS clave personalizada

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-parameter-value, for example P@ssW%rd#1" ^ --type "SecureString" ^ --key-id " ^ --tags "Key=tag-key,Value=tag-value"account-ID/the-custom-AWS KMS-key"

    Si crea un parámetro SecureString usando la clave de Clave administrada de AWS en su cuenta y región, no tendrá que proporcionar un valor para el parámetro --key-id.

    nota

    Para utilizar la AWS KMS key asignada a su Cuenta de AWS y Región de AWS, quite el parámetro key-id del comando. Para obtener más información acerca de AWS KMS keys, consulte Conceptos de AWS Key Management Service en la Guía para desarrolladores de AWS Key Management Service.

    Para utilizar una clave administrada por el cliente en lugar de la Clave administrada de AWS asignada a su cuenta, especifique la clave mediante el parámetro --key-id. El parámetro es compatible con los siguientes formatos de parámetros de KMS.

    • Ejemplo de clave de nombre de recurso de Amazon (ARN):

      arn:aws:kms:us-east-2:123456789012:key/key-id

    • Ejemplo de ARN de alias:

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

    • Ejemplo de ID de clave:

      12345678-1234-1234-1234-123456789012

    • Ejemplo de nombre de alias:

      alias/MyAliasName

    Puede crear una clave administrada por el cliente a través de la AWS Management Console o la API de AWS KMS. Los siguientes comandos de la AWS CLI crean una clave administrada por el cliente en la Región de AWS actual de su Cuenta de AWS.

    aws kms create-key

    Utilice un comando con el siguiente formato para crear un parámetro SecureString que use la clave que acaba de crear.

    En el siguiente ejemplo se utiliza un nombre encubierto (3l3vat3131) para un parámetro de contraseña y una AWS KMS key.

    Linux & macOS
    aws ssm put-parameter \ --name /Finance/Payroll/3l3vat3131 \ --value "P@sSwW)rd" \ --type SecureString \ --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
    Windows
    aws ssm put-parameter ^ --name /Finance/Payroll/3l3vat3131 ^ --value "P@sSwW)rd" ^ --type SecureString ^ --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
  3. Ejecute el siguiente comando para verificar los detalles del parámetro.

    Si no especifica el parámetro with-decryption o si especifica el parámetro no-with-decryption, el comando devuelve un GUID cifrado.

    Linux & macOS
    aws ssm get-parameters \ --name "the-parameter-name-you-specified" \ --with-decryption
    Windows
    aws ssm get-parameters ^ --name "the-parameter-name-you-specified" ^ --with-decryption
  4. Ejecute el siguiente comando para ver los metadatos del parámetro.

    Linux & macOS
    aws ssm describe-parameters \ --filters "Key=Name,Values=the-name-that-you-specified"
    Windows
    aws ssm describe-parameters ^ --filters "Key=Name,Values=the-name-that-you-specified"
  5. Ejecute el siguiente comando para cambiar el valor del parámetro si no está utilizando una AWS KMS key administrada por el cliente.

    Linux & macOS
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --overwrite

    -o bien-

    Ejecute el siguiente comando para cambiar el valor del parámetro si está utilizando una AWS KMS key administrada por el cliente.

    Linux & macOS
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --key-id "the-KMSkey-ID" \ --overwrite
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --key-id "account-alias/the-KMSkey-ID" \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --key-id "the-KMSkey-ID" ^ --overwrite
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --key-id "account-alias/the-KMSkey-ID" ^ --overwrite
  6. Ejecute el siguiente comando para ver el valor más reciente del parámetro.

    Linux & macOS
    aws ssm get-parameters \ --name "the-name-that-you-specified" \ --with-decryption
    Windows
    aws ssm get-parameters ^ --name "the-name-that-you-specified" ^ --with-decryption
  7. Ejecute el siguiente comando para ver el historial del parámetro.

    Linux & macOS
    aws ssm get-parameter-history \ --name "the-name-that-you-specified"
    Windows
    aws ssm get-parameter-history ^ --name "the-name-that-you-specified"
nota

Puede crear manualmente un parámetro con un valor cifrado. En ese caso, puesto que el valor ya está cifrado, no es necesario que elija el tipo de parámetro SecureString. Si elige SecureString, el parámetro se cifrará dos veces.

De forma predeterminada, todos SecureString los valores se muestran como texto cifrado. Para descifrar un valor SecureString, un usuario debe tener permisos para llamar a la operación Decrypt de la API de AWS KMS. Para obtener más información acerca de cómo configurar el control de acceso de AWS KMS, consulte Autenticación y control de acceso de AWS KMS en la Guía para desarrolladores de AWS Key Management Service.

importante

Si cambia el alias de clave de KMS para la clave KMS que se utiliza para cifrar un parámetro, también actualice el alias de clave que utiliza el parámetro para hacer referencia a AWS KMS. Esto solo se aplica al alias de clave de KMS; el ID de clave al que se adjunta un alias permanece igual a menos que elimine toda la clave.

Cree un parámetro de varias líneas (AWS CLI)

Puede utilizar la AWS CLI para crear un parámetro con saltos de línea. Utilice saltos de línea para dividir el texto en valores de parámetros más largos para una mejor legibilidad o, por ejemplo, para actualizar el contenido de parámetros de varios párrafos para una página web. Puede incluir el contenido en un archivo JSON y utilizar la opción --cli-input-json, mediante caracteres de salto de línea como \n, como se muestra en el ejemplo siguiente.

  1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

    Para obtener más información, consulte Instalación o actualización de la última versión de la AWS CLI.

  2. Ejecute el siguiente comando para crear un parámetro de varias líneas.

    Linux & macOS
    aws ssm put-parameter \ --name "MultiLineParameter" \ --type String \ --cli-input-json file://MultiLineParameter.json
    Windows
    aws ssm put-parameter ^ --name "MultiLineParameter" ^ --type String ^ --cli-input-json file://MultiLineParameter.json

    El siguiente ejemplo muestra el contenido del archivo MultiLineParameter.json.

    { "Value": "<para>Paragraph One</para>\n<para>Paragraph Two</para>\n<para>Paragraph Three</para>" }

El valor del parámetro guardado se almacena de la siguiente manera.

<para>Paragraph One</para>
<para>Paragraph Two</para>
<para>Paragraph Three</para>