Abrufen eines Werts aus dem Systems Manager Parameter Store - AWS Cloud Development Kit (AWS CDK) v2

Dies ist der AWS CDK v2-Entwicklerhandbuch. Die ältere CDK Version 1 wurde am 1. Juni 2022 in die Wartung aufgenommen und der Support wurde am 1. Juni 2023 eingestellt.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Abrufen eines Werts aus dem Systems Manager Parameter Store

Der AWS Cloud Development Kit (AWS CDK) kann den Wert von AWS Systems Manager Parameter Store-Attributen abrufen. Während der Generierung AWS CDK erzeugt ein Token, das von AWS CloudFormation während der Bereitstellung aufgelöst wird.

unterstützt AWS CDK das Abrufen von einfachen und sicheren Werten. Sie können eine bestimmte Version beider Arten von Werten anfordern. Bei reinen Werten können Sie die Version aus Ihrer Anfrage weglassen, um die neueste Version abzurufen. Für sichere Werte müssen Sie die Version angeben, wenn Sie den Wert des sicheren Attributs anfordern.

Anmerkung

In diesem Thema wird gezeigt, wie Attribute aus dem AWS Systems Manager Parameter Store gelesen werden. Sie können Secrets auch aus der lesen AWS Secrets Manager (siehe Abrufen eines Werts von AWS Secrets Manager).

Lesen von Systems Manager-Werten zur Bereitstellungszeit

Um Werte aus dem Systems Manager Parameter Store zu lesen, verwenden Sie die valueForSecureStringParameter Methoden valueForStringParameter und . Wählen Sie eine Methode aus, je nachdem, ob das gewünschte Attribut eine einfache Zeichenfolge oder ein sicherer Zeichenfolgenwert ist. Diese Methoden geben Token zurück, nicht den tatsächlichen Wert. Der Wert wird von AWS CloudFormation während der Bereitstellung aufgelöst. Im Folgenden wird ein Beispiel gezeigt:

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

Derzeit wird diese Funktion von einer begrenzten Anzahl von - AWS Services unterstützt.

Systems Manager-Werte zur Synthetisierungszeit lesen

Manchmal ist es nützlich, zur Synthetisierungszeit einen Parameter anzugeben. Auf diese Weise verwendet die AWS CloudFormation Vorlage immer denselben Wert, anstatt den Wert während der Bereitstellung aufzulösen.

Verwenden Sie die -valueFromLookupMethode (Python: ), um einen Wert aus dem Systems Manager Parameter Store zur Synthetisierungszeit zu lesenvalue_from_lookup. Diese Methode gibt den tatsächlichen Wert des Parameters als Kontextwerte und AWS CDK Wert zurück. Wenn der Wert noch nicht in der Befehlszeile zwischengespeichert cdk.json oder an die Befehlszeile übergeben ist, wird er vom aktuellen AWS Konto abgerufen. Aus diesem Grund muss der Stack mit expliziten AWS Umgebungsinformationen synthetisiert werden.

Im Folgenden wird ein Beispiel gezeigt:

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");

Es können nur einfache Systems Manager-Zeichenfolgen abgerufen werden. Sichere Zeichenfolgen können nicht abgerufen werden. Die neueste Version wird immer zurückgegeben. Bestimmte Versionen können nicht angefordert werden.

Wichtig

Der abgerufene Wert wird in Ihrer synthetisierten AWS CloudFormation Vorlage angezeigt. Dies kann ein Sicherheitsrisiko sein, je nachdem, wer Zugriff auf Ihre AWS CloudFormation Vorlagen hat und um welche Art von Wert es sich handelt. Verwenden Sie diese Funktion im Allgemeinen nicht für Passwörter, Schlüssel oder andere Werte, die Sie privat halten möchten.

Schreiben von Werten in Systems Manager

Sie können die AWS CLI, die oder ein AWS SDK verwenden AWS Management Console, um Systems Manager-Parameterwerte festzulegen. In den folgenden Beispielen wird der CLI-Befehl ssm put-parameter verwendet.

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"

Wenn Sie einen bereits vorhandenen SSM-Wert aktualisieren, schließen Sie auch die --overwrite Option ein.

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"