v AWS CDK 2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원을 종료했습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Systems Manager Parameter Store에서 값 가져오기
AWS Cloud Development Kit (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"