Obtenir une valeur depuis le magasin de paramètres de Systems Manager - AWS Kit de développement Cloud (AWS CDK) v2

Ceci est le guide du développeur du AWS CDK v2. L'ancien CDK v1 est entré en maintenance le 1er juin 2022 et a pris fin le 1er juin 2023.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Obtenir une valeur depuis le magasin de paramètres de Systems Manager

Le AWS Cloud Development Kit (AWS CDK) peut récupérer la valeur des attributs du magasin de paramètres de AWS Systems Manager. Lors de la synthèse, le AWS CDK produit un jeton qui est résolu AWS CloudFormation lors du déploiement.

Le AWS CDK permet de récupérer à la fois des valeurs simples et sécurisées. Vous pouvez demander une version spécifique de l'un ou l'autre type de valeur. Pour les valeurs simples, vous pouvez omettre la version dans votre demande de récupération de la dernière version. Pour les valeurs sécurisées, vous devez spécifier la version lorsque vous demandez la valeur de l'attribut sécurisé.

Note

Cette rubrique explique comment lire les attributs depuis le magasin de paramètres de AWS Systems Manager. Vous pouvez également lire les secrets depuis le Gestionnaire des AWS Secrets (voir Obtenir une valeur depuis le Gestionnaire AWS des Secrets).

Lire les valeurs de Systems Manager au moment du déploiement

Pour lire les valeurs du magasin de paramètres de Systems Manager, utilisez les valueForSecureStringParameterméthodes valueForStringParameteret. Choisissez une méthode selon que l'attribut souhaité est une chaîne simple ou une valeur de chaîne sécurisée. Ces méthodes renvoient des jetons, et non la valeur réelle. La valeur est résolue AWS CloudFormation lors du déploiement. Voici un exemple :

TypeScript
import * as ssm from 'aws-cdk-lib/aws-ssm'; // Get latest version or specified version of plain string attribute const latestStringToken = ssm.StringParameter.valueForStringParameter( this, 'my-plain-parameter-name'); // latest version const versionOfStringToken = ssm.StringParameter.valueForStringParameter( this, 'my-plain-parameter-name', 1); // version 1 // Get specified version of secure string attribute const secureStringToken = ssm.StringParameter.valueForSecureStringParameter( this, 'my-secure-parameter-name', 1); // must specify version
JavaScript
const ssm = require('aws-cdk-lib/aws-ssm'); // Get latest version or specified version of plain string attribute const latestStringToken = ssm.StringParameter.valueForStringParameter( this, 'my-plain-parameter-name'); // latest version const versionOfStringToken = ssm.StringParameter.valueForStringParameter( this, 'my-plain-parameter-name', 1); // version 1 // Get specified version of secure string attribute const secureStringToken = ssm.StringParameter.valueForSecureStringParameter( this, 'my-secure-parameter-name', 1); // must specify version
Python
import aws_cdk.aws_ssm as ssm # Get latest version or specified version of plain string attribute latest_string_token = ssm.StringParameter.value_for_string_parameter( self, "my-plain-parameter-name") latest_string_token = ssm.StringParameter.value_for_string_parameter( self, "my-plain-parameter-name", 1) # Get specified version of secure string attribute secure_string_token = ssm.StringParameter.value_for_secure_string_parameter( self, "my-secure-parameter-name", 1) # must specify version
Java
import software.amazon.awscdk.services.ssm.StringParameter; //Get latest version or specified version of plain string attribute String latestStringToken = StringParameter.valueForStringParameter( this, "my-plain-parameter-name"); // latest version String versionOfStringToken = StringParameter.valueForStringParameter( this, "my-plain-parameter-name", 1); // version 1 //Get specified version of secure string attribute String secureStringToken = StringParameter.valueForSecureStringParameter( this, "my-secure-parameter-name", 1); // must specify version
C#
using Amazon.CDK.AWS.SSM; // Get latest version or specified version of plain string attribute var latestStringToken = StringParameter.ValueForStringParameter( this, "my-plain-parameter-name"); // latest version var versionOfStringToken = StringParameter.ValueForStringParameter( this, "my-plain-parameter-name", 1); // version 1 // Get specified version of secure string attribute var secureStringToken = StringParameter.ValueForSecureStringParameter( this, "my-secure-parameter-name", 1); // must specify version

Un nombre limité de AWS services prennent actuellement en charge cette fonctionnalité.

Lire les valeurs de Systems Manager au moment de la synthèse

Il est parfois utile de fournir un paramètre au moment de la synthèse. Ce faisant, le AWS CloudFormation modèle utilisera toujours la même valeur au lieu de résoudre la valeur lors du déploiement.

Pour lire une valeur depuis le magasin de paramètres de Systems Manager au moment de la synthèse, utilisez la valueFromLookupméthode (Python :value_from_lookup). Cette méthode renvoie la valeur réelle du paramètre sous forme de valeurs de contexte et de valeur AWS CDK. Si la valeur n'est pas déjà mise en cache cdk.json ou transmise sur la ligne de commande, elle est extraite du AWS compte courant. Pour cette raison, la pile doit être synthétisée avec des informations d' AWS environnement explicites.

Voici un exemple :

TypeScript
import * as ssm from 'aws-cdk-lib/aws-ssm'; const stringValue = ssm.StringParameter.valueFromLookup(this, 'my-plain-parameter-name');
JavaScript
const ssm = require('aws-cdk-lib/aws-ssm'); const stringValue = ssm.StringParameter.valueFromLookup(this, 'my-plain-parameter-name');
Python
import aws_cdk.aws_ssm as ssm string_value = ssm.StringParameter.value_from_lookup(self, "my-plain-parameter-name")
Java
import software.amazon.awscdk.services.ssm.StringParameter; String stringValue = StringParameter.valueFromLookup(this, "my-plain-parameter-name");
C#
using Amazon.CDK.AWS.SSM; var stringValue = StringParameter.ValueFromLookup(this, "my-plain-parameter-name");

Seules les chaînes de Systems Manager simples peuvent être récupérées. Les chaînes sécurisées ne peuvent pas être récupérées. La dernière version sera toujours renvoyée. Il n'est pas possible de demander des versions spécifiques.

Important

La valeur récupérée se retrouvera dans votre AWS CloudFormation modèle synthétisé. Cela peut constituer un risque de sécurité, selon les personnes ayant accès à vos AWS CloudFormation modèles et le type de valeur qu'ils contiennent. En règle générale, n'utilisez pas cette fonctionnalité pour les mots de passe, les clés ou les autres valeurs que vous souhaitez garder confidentielles.

Écrire des valeurs dans Systems Manager

Vous pouvez utiliser la AWS CLI, la console AWS de gestion ou un AWS SDK pour définir les valeurs des paramètres de Systems Manager. Les exemples suivants utilisent la commande ssm put-parameterCLI.

aws ssm put-parameter --name "parameter-name" --type "String" --value "parameter-value" aws ssm put-parameter --name "secure-parameter-name" --type "SecureString" --value "secure-parameter-value"

Lorsque vous mettez à jour une valeur SSM qui existe déjà, incluez également l'--overwriteoption.

aws ssm put-parameter --overwrite --name "parameter-name" --type "String" --value "parameter-value" aws ssm put-parameter --overwrite --name "secure-parameter-name" --type "SecureString" --value "secure-parameter-value"