Créer un paramètre Systems Manager (AWS CLI) - AWS Systems Manager

Créer un paramètre Systems Manager (AWS CLI)

Vous pouvez utiliser l'AWS Command Line Interface (AWS CLI) pour créer des types de paramètres String, StringList et SecureString. Après avoir supprimé un paramètre, attendez au moins 30 secondes avant de créer un paramètre avec le même nom.

Les paramètres ne peuvent pas être référencés ou imbriqués dans les valeurs d'autres paramètres. Vous ne pouvez pas inclure {{}} ou {{ssm:parameter-name}} dans une valeur de paramètre.

Note

Les paramètres sont uniquement disponibles dans la Région AWS où ils ont été créés.

Créer un paramètre String (AWS CLI)

  1. Si vous ne l'avez pas déjà fait, installez et configurez l'AWS Command Line Interface (AWS CLI).

    Pour obtenir des informations, veuillez consulter Installer ou mettre à niveau les outils de ligne de commande AWS.

  2. Exécutez la commande suivante pour créer un paramètre de type String.

    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"

    -ou-

    Exécutez la commande suivante pour créer un paramètre qui contient un ID d'Amazon Machine Image (AMI) comme valeur de paramètre.

    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"

    L'option --name prend en charge les hiérarchies. Pour plus d'informations sur les hiérarchies, consultez Utiliser des hiérarchies de paramètres.

    L'option --data-type doit être spécifiée uniquement si vous créez un paramètre contenant un ID d'AMI. Cela valide le fait que la valeur de paramètre saisie est un ID d'AMI Amazon Elastic Compute Cloud (Amazon EC2) correctement formaté. Pour tous les autres paramètres, le type de données par défaut est text et la spécification d'une valeur n'est pas obligatoire. Pour plus d'informations, consultez Prise en charge de paramètres natifs pour les ID d'Amazon Machine Image.

    Important

    En cas de réussite, la commande renvoie le numéro de version du paramètre. Exception : si vous avez spécifié aws:ec2:image comme type de données, un nouveau numéro de version dans la réponse ne signifie pas que la valeur du paramètre a déjà été validée. Pour plus d'informations, consultez Prise en charge de paramètres natifs pour les ID d'Amazon Machine Image.

    Dans l'exemple suivant, on ajoute deux balises de paires clé-valeur à un paramètre.

    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\"}]

    L'exemple suivant utilise une hiérarchie de noms de paramètres pour créer un paramètre String en texte clair. Cela renvoie le numéro de version du paramètre. Pour plus d'informations sur les hiérarchies de paramètres, consultez Utiliser des hiérarchies de paramètres.

    Linux & macOS

    Paramètre non présent dans une hiérarchie

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

    Paramètre présent dans une hiérarchie

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

    Paramètre non présent dans une hiérarchie

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

    Paramètre présent dans une hiérarchie

    aws ssm put-parameter ^ --name "/amis/windows/golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"
  3. Exécutez la commande suivante pour afficher la dernière valeur de paramètre et vérifier les détails de votre nouveau paramètre.

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

    Le système retourne des informations telles que les suivantes.

    {
        "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"            
            }
        ]
    }

Exécutez la commande suivante pour modifier la valeur du paramètre. Cela renvoie le numéro de version du paramètre.

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

Exécutez la commande suivante pour afficher l'historique des valeurs du paramètre.

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

Exécutez la commande suivante pour utiliser ce paramètre dans une commande.

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

Exécutez la commande suivante uniquement pour récupérer la valeur de paramètre.

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

Exécutez la commande suivante uniquement pour récupérer la valeur de paramètre avec get-parameters.

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

Exécutez la commande suivante pour afficher les métadonnées du paramètre.

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

Nom doit être en majuscule.

Le système retourne des informations telles que les suivantes.

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

Créer un paramètre StringList (AWS CLI)

  1. Si vous ne l'avez pas déjà fait, installez et configurez l'AWS Command Line Interface (AWS CLI).

    Pour obtenir des informations, veuillez consulter Installer ou mettre à niveau les outils de ligne de commande AWS.

  2. Exécutez la commande suivante pour créer un paramètre.

    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"
    Note

    En cas de réussite, la commande renvoie le numéro de version du paramètre.

    Cet exemple ajoute deux balises de paires clé-valeur à un paramètre. (En fonction du type de système d'exploitation de votre ordinateur local, exécutez l'une des commandes suivantes pour télécharger et exécuter un script à partir de la version Windows inclut les caractères d'échappement [« \ »] dont vous avez besoin pour exécuter la commande à partir de votre outil de ligne de commande.)

    Voici un exemple de StringList qui utilise une hiérarchie de paramètres.

    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
    Note

    Les éléments d'un StringList doivent être séparés par une virgule (,). Vous ne pouvez pas utiliser d'autres caractères de ponctuation ou spéciaux pour introduire des articles dans la liste. Si vous avez une valeur de paramètre qui nécessite une virgule, alors utilisez le type String.

  3. Exécutez la commande get-parameters pour vérifier les détails du paramètre. Par exemple :

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

Créer un paramètre SecureString (AWS CLI)

Utilisez la procédure suivante pour créer un paramètre SecureString.

Important

Seule la valeur d'un paramètre SecureString est chiffrée. Les noms de paramètres, les descriptions et d'autres propriétés ne sont pas chiffrés.

Important

Parameter Store prend uniquement en charge des clés KMS symétriques. Vous ne pouvez pas utiliser une clé KMS asymétrique pour chiffrer vos paramètres. Pour savoir si une clés KMS est symétrique ou asymétrique, consultez Identification de clés symétriques et asymétriques dans le Guide du développeur AWS Key Management Service.

  1. Si vous ne l'avez pas déjà fait, installez et configurez l'AWS Command Line Interface (AWS CLI).

    Pour obtenir des informations, veuillez consulter Installer ou mettre à niveau les outils de ligne de commande AWS.

  2. Exécutez l'une des commandes suivantes pour créer un paramètre utilisant le type de données SecureString.

    Linux & macOS

    Créer un paramètre SecureString à l'aide de la clé par défaut gérée AWS

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

    Créer un paramètre SecureString utilisant une clé gérée par le client

    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"

    Créer un paramètre SecureString utilisant une clé AWS KMS personnalisée

    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

    Créer un paramètre SecureString à l'aide de la clé par défaut gérée AWS

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

    Créer un paramètre SecureString utilisant une clé gérée par le client

    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"

    Créer un paramètre SecureString utilisant une clé AWS KMS personnalisée

    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 vous créez un paramètre SecureString à l'aide de la clé AWS Key Management Service gérée par AWS (AWS KMS) dans votre compte et votre Région, il ne sera donc pas nécessaire de fournir une valeur pour le paramètre --key-id.

    Note

    Pour utiliser la AWS KMS key par défaut affectée à votre Compte AWS et Région AWS, supprimez le paramètre key-id à partir de la commande. Pour plus d'informations sur les AWS KMS keys, consultez Concepts AWS Key Management Service dans le Guide du développeur AWS Key Management Service.

    Pour utiliser une clé gérée par le client au lieu de la Clé gérée par AWS affectée à votre compte, spécifiez la clé à l'aide du paramètre --key-id. Le paramètre prend en charge les formats de paramètre KMS suivants.

    • Exemple d'Amazon Resource Name (ARN) de clé :

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

    • Exemple d'ARN de l'alias:

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

    • Exemple d'ID de clé :

      12345678-1234-1234-1234-123456789012

    • Exemple de nom d'alias :

      alias/MyAliasName

    Vous pouvez créer une clé gérée par le client à l'aide de la AWS Management Console ou de l'API AWS KMS. Les commandes de la AWS CLI suivantes créent une clé gérée par le client dans la Région AWS actuelle de votre Compte AWS.

    aws kms create-key

    Utilisez une commande au format suivant pour créer un paramètre SecureString à l'aide de la clé que vous venez de créer.

    L'exemple suivant utilise un nom brouillé (3l3vat3131) comme paramètre de mot de passe et une 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. Exécutez la commande suivante pour vérifier les détails du paramètre.

    Si vous ne spécifiez le paramètre with-decryption, ou si vous spécifiez le paramètre no-with-decryption, la commande renvoie un GUID chiffré.

    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. Exécutez la commande suivante pour afficher les métadonnées du paramètre.

    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. Exécutez la commande suivante pour modifier la valeur du paramètre si vous n'utilisez pas de AWS KMS key gérée par le client.

    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

    -ou-

    Exécutez l'une des commandes suivantes pour modifier la valeur du paramètre si vous utilisez une AWS KMS key gérée par le client.

    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. Exécutez la commande suivante pour afficher la dernière valeur du paramètre.

    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. Exécutez la commande suivante pour afficher l'historique des valeurs du paramètre.

    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"
Note

Vous pouvez créer manuellement un paramètre avec une valeur chiffrée. Dans ce cas, dans la mesure où la valeur est déjà chiffrée, vous n'avez pas à choisir le type de paramètre SecureString. Si vous sélectionnez SecureString, votre paramètre sera doublement chiffré.

Par défaut, toutes les valeurs SecureString sont affichées sous forme de texte chiffré. Pour déchiffrer une valeur SecureString, un utilisateur doit avoir l'autorisation d'appeler l'opération d'API Decrypt AWS KMS. Pour obtenir des informations sur la configuration du contrôle d'accès pour une AWS KMS, veuillez consulter Authentification et contrôle d'accès pour une AWS KMS dans le Manuel du développeur AWS Key Management Service.

Important

Si vous modifiez l'alias de clé KMS pour la clé KMS utilisée pour chiffrer un paramètre, vous devez alors également mettre à jour l'alias de clé utilisé par le paramètre pour référencer la AWS KMS. Cela s'applique uniquement à l'alias de clé KMS. L'ID de clé auquel un alias s'attache ne change pas, sauf si vous supprimez la clé entière.

Créer un paramètre multi-ligne (AWS CLI)

Vous pouvez utiliser la AWS CLI pour créer un paramètre avec des sauts de ligne. Utilisez des sauts de ligne pour diviser le texte en valeurs de paramètres plus longues afin d'améliorer la lisibilité ou, par exemple, mettre à jour le contenu de paramètres multi-paragraphes d'une page Web. Vous pouvez inclure le contenu dans un fichier JSON et utiliser l'option --cli-input-json en utilisant des caractères de saut de ligne tels que \n, comme illustré dans l'exemple suivant.

  1. Si vous ne l'avez pas déjà fait, installez et configurez l'AWS Command Line Interface (AWS CLI).

    Pour obtenir des informations, veuillez consulter Installer ou mettre à niveau les outils de ligne de commande AWS.

  2. Exécutez la commande suivante pour créer un paramètre multiligne.

    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

    L'exemple suivant affiche le contenu d'un fichier MultiLineParameter.json.

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

La valeur de paramètre enregistrée est stockée de la façon suivante.

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