これは v2 AWS CDK デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
は、 AWS Systems Manager Parameter Store 属性の値を取得 AWS Cloud Development Kit (AWS CDK) できます。合成中、 はデプロイ AWS CloudFormation 中に によって解決されるトークン AWS CDK を生成します。
は、プレーン値とセキュア値の両方の取得 AWS CDK をサポートしています。いずれの種類の値における特定のバージョンを要求できます。プレーン値の場合、要求からバージョンを省略して最新バージョンを取得できます。セキュア値の場合、セキュア属性の値を要求するときにバージョンを指定する必要があります。
注記
このトピックでは、 AWS Systems Manager パラメータストアから属性を読み取る方法を示します。 AWS Secrets Manager からシークレットを読み取ることもできます (「から値を取得する AWS Secrets Manager」を参照)。
デプロイ時に Systems Manager 値の読み取り
Systems Manager パラメータストアから値を読み取るには、valueForStringParameter と valueForSecureStringParameter のメソッドを使用します。目的の属性がプレーン文字列またはセキュア文字列値のいずれであるかに基づき、メソッドを選択します。これらのメソッドは実際の値ではなく、トークンを返します。値はデプロイ AWS CloudFormation 中に によって解決されます。以下に例を示します。
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
現在、この機能をサポートしているAWS サービスの数は限られています。
合成時の Systems Manager 値の読み取り
合成時にパラメータを指定すると便利な場合があります。これにより、 AWS CloudFormation テンプレートはデプロイ中に値を解決するのではなく、常に同じ値を使用します。
合成時に Systems Manager パラメータストアから値を読み取るには、valueFromLookup メソッド (Python: value_from_lookup
) を使用します。このメソッドは、パラメータの実際の値を コンテキスト値と AWS CDK 値として返します。値がコマンドラインでキャッシュcdk.json
または渡されていない場合、現在の AWS アカウントから取得されます。このため、スタックは明示的な AWS 環境情報で合成する必要があります。
以下に例を示します。
import * as ssm from 'aws-cdk-lib/aws-ssm';
const stringValue = ssm.StringParameter.valueFromLookup(this, 'my-plain-parameter-name');
取得できるのは、通常の Systems Manager 文字列のみです。セキュアな文字列を取得できません。常に最新バージョンが返されます。特定のバージョンは要求できません。
重要
取得された値は、合成された AWS CloudFormation テンプレートに残ります。これは、 AWS CloudFormation テンプレートにアクセスできるユーザーとその価値の種類によっては、セキュリティ上のリスクになる可能性があります。一般的に、この機能はプライベートにしたいパスワード、キー、その他の値には使用しないでください。
Systems Manager に値を書き込む
CLI、 AWS Management Console、または AWS SDK AWS を使用して、Systems Manager パラメータ値を設定できます。次の例では、ssm put-parameter CLI コマンドを使用します。
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"
既に存在する SSM 値を更新するとき、--overwrite
オプションも含めます。
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"