CDK AWS v2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원이 종료되었습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Systems Manager Parameter Store에서 값 가져오기
AWS 클라우드 개발 키트(AWS CDK)는 AWS Systems Manager Parameter Store 속성의 값을 검색할 수 있습니다. 합성 중에 AWS CDK는 배포 중에 AWS CloudFormation에서 확인되는 토큰을 생성합니다.
AWS CDK는 일반 및 보안 값 검색을 모두 지원합니다. 두 가지 유형의 특정 버전을 요청할 수 있습니다. 일반 값의 경우 요청에서 버전을 생략하여 최신 버전을 검색할 수 있습니다. 보안 값의 경우 보안 속성의 값을 요청할 때 버전을 지정해야 합니다.
배포 시 Systems Manager 값 읽기
Systems Manager Parameter Store에서 값을 읽으려면 valueForStringParameter
및 valueForSecureStringParameter
메서드를 사용합니다. 원하는 속성이 일반 문자열인지 아니면 보안 문자열 값인지에 따라 메서드를 선택합니다. 이러한 메서드는 실제 값이 아닌 토큰을 반환합니다. 값은 배포 중에 AWS CloudFormation에서 확인됩니다. 다음은 예제입니다.
- 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
제한된 수의 AWS 서비스가 현재이 기능을 지원합니다.
합성 시 Systems Manager 값 읽기
경우에 따라 합성 시 파라미터를 제공하는 것이 유용합니다. 이렇게 하면 AWS CloudFormation 템플릿은 배포 중에 값을 확인하는 대신 항상 동일한 값을 사용합니다.
합성 시 Systems Manager Parameter Store에서 값을 읽으려면 valueFromLookup
메서드(Python: value_from_lookup
)를 사용합니다. 이 메서드는 파라미터의 실제 값을 컨텍스트 값과 AWS CDK 값으로 반환합니다. 값이 아직 명령줄에 캐시cdk.json
되거나 전달되지 않은 경우 현재 AWS 계정에서 검색됩니다. 따라서 스택을 명시적 AWS 환경 정보로 합성해야 합니다.
다음은 예제입니다.
- 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");
일반 Systems Manager 문자열만 검색할 수 있습니다. 보안 문자열을 검색할 수 없습니다. 최신 버전은 항상 반환됩니다. 특정 버전은 요청할 수 없습니다.
검색된 값은 합성된 AWS CloudFormation 템플릿에 표시됩니다. 이는 AWS CloudFormation 템플릿에 액세스할 수 있는 사용자와 해당 템플릿의 가치 유형에 따라 보안 위험이 될 수 있습니다. 일반적으로 암호, 키 또는 비공개로 유지하려는 기타 값에는이 기능을 사용하지 마십시오.
Systems Manager에 값 쓰기
AWS CLI, AWS Management Console 또는 AWS SDK를 사용하여 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"