Systems Manager 파라미터 저장소에서 값 가져오기 - AWS Cloud Development Kit (AWS CDK) v2

AWS CDK v2 개발자 안내서입니다. 구형 CDK v1은 2022년 6월 1일에 유지 보수에 들어갔고 2023년 6월 1일에 지원이 종료되었습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Systems Manager 파라미터 저장소에서 값 가져오기

AWS Systems Manager 파라미터 스토어 속성 값을 검색할 AWS Cloud Development Kit (AWS CDK) 수 있습니다. 합성 중에 는 토큰을 AWS CDK 생성하며, 토큰은 배포 AWS CloudFormation 중에 확인됩니다.

는 일반 값과 보안 값 검색을 모두 AWS CDK 지원합니다. 어떤 종류의 값이든 특정 버전을 요청할 수 있습니다. 일반 값의 경우 요청에서 버전을 생략하여 최신 버전을 가져올 수 있습니다. 보안 값의 경우 보안 속성 값을 요청할 때 버전을 지정해야 합니다.

참고

이 항목에서는 AWS Systems Manager 매개변수 저장소에서 속성을 읽는 방법을 보여줍니다. 에서 시크릿을 읽을 수도 있습니다 AWS Secrets Manager (참조에서 가치 가져오기 AWS Secrets Manager).

배포 시 Systems Manager 값 읽기

Systems Manager 매개변수 저장소에서 값을 읽으려면 valueForString매개변수와 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 파라미터 저장소에서 값을 읽으려면 (Python:value_from_lookup) valueFromLookup메서드를 사용하십시오. 이 메서드는 매개변수의 실제 런타임 컨텍스트 값을 값으로 반환합니다. 값이 아직 캐시되지 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"