Systems Manager Parameter Store에서 보안 문자열 값 가져오기
CloudFormation에서 민감한 데이터를 AWS Systems Manager Parameter Store에 “보안 문자열”로 저장하여 템플릿에 직접 노출하지 않고도 암호 또는 라이센스 키와 같은 민감한 데이터를 사용할 수 있습니다. Parameter Store 소개는 AWS Systems Manager 사용 설명서의 AWS Systems Manager Parameter Store를 참조하세요.
템플릿 내에서 Parameter Store 보안 문자열을 참조하려면 ssm-secure
동적 참조를 사용합니다. CloudFormation은 실제 보안 문자열 값을 저장하지 않습니다. 대신 보안 문자열의 일반 텍스트 파라미터가 포함된 리터럴 동적 참조를 저장합니다.
스택 생성 또는 업데이트 도중 CloudFormation은 실제 값을 노출하지 않고 필요에 따라 보안 문자열 값에 액세스합니다. 보안 문자열은 ssm-secure
동적 참조 패턴을 지원하는 리소스 속성에 대해서만 사용할 수 있습니다. 자세한 내용은 보안 문자열에 대한 동적 파라미터 패턴을 지원하는 리소스 단원을 참조하십시오.
CloudFormation에서는 API 호출의 보안 문자열에 대한 실제 파라미터 값을 반환하지 않습니다. 리터럴 동적 참조만 반환합니다. 변경 세트를 사용하여 변경을 비교할 때 CloudFormation에서는 리터럴 동적 참조 문자열만 비교합니다. 실제 보안 문자열 값을 확인하고 비교하지는 않습니다.
ssm-secure
동적 참조를 사용할 때는 다음과 같은 몇 가지를 염두에 두어야 합니다.
-
CloudFormation은 다른 AWS 계정의 Parameter Store 값에 액세스할 수 없습니다.
-
CloudFormation에서 동적 참조 내에서 Systems Manager 파라미터 레이블 또는 퍼블릭 파라미터 사용을 지원하지 않습니다.
-
cn-north-1
및cn-northwest-1
리전에서 보안 문자열은 Systems Manager에서 지원되지 않습니다. -
ssm-secure
와 같은 보안 암호 값에 대한 동적 참조는 현재 사용자 지정 리소스에서 지원되지 않습니다. -
CloudFormation에서 스택 업데이트를 롤백해야 하고, 이전에 지정된 버전의 보안 문자열 파라미터를 더 이상 사용할 수 없는 경우 롤백 작업은 실패합니다. 이 경우 다음 두 가지 선택지가 있습니다.
-
CONTINUE_UPDATE_ROLLBACK
을 사용하여 리소스를 건너뜁니다. -
시스템 관리자 Parameter Store의 보안 문자열 파라미터를 재생성하고, 파라미터 버전이 템플릿에서 사용되는 버전에 도달할 때까지 업데이트합니다. 그런 다음 리소스를 건너뛰지 않고
CONTINUE_UPDATE_ROLLBACK
을 사용합니다.
-
보안 문자열에 대한 동적 파라미터 패턴을 지원하는 리소스
ssm-secure
동적 참조 패턴을 지원하는 리소스는 다음과 같습니다.
Resource | 속성 유형 | 속성 |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
참조 패턴
CloudFormation 템플릿에서 Systems Manager Parameter Store에서 보안 문자열 값을 참조하려면 다음 ssm-secure
동적 패턴을 사용합니다.
{{resolve:ssm-secure:
parameter-name
:version
}}
참조는 parameter-name 및 version에 대해 다음 정규 표현식 패턴을 준수해야 합니다.
{{resolve:ssm-secure:[a-zA-Z0-9_.\-/]+(:\d+)?}}
parameter-name
-
Parameter Store의 파라미터 이름입니다. 파라미터 이름은 대/소문자를 구분합니다.
필수 사항입니다.
version
-
사용할 파라미터의 버전을 지정하는 정수입니다. 정확한 버전을 지정하지 않으면 CloudFormation은 스택을 생성하거나 업데이트할 때마다 최신 버전의 파라미터를 사용합니다. 자세한 내용을 알아보려면 AWS Systems Manager 사용 설명서의 파라미터 버전 사용을 참조하세요.
선택 사항.
예
다음 예제에서는 ssm-secure
동적 참조를 사용하여 Parameter Store에 저장된 보안 문자열에 대한 IAM 사용자의 암호를 설정합니다. 지정된 것과 같이 CloudFormation은 스택 및 변경 세트 작업에 대해
버전의 10
파라미터를 사용합니다.IAMUserPassword
JSON
"MyIAMUser": { "Type": "AWS::IAM::User", "Properties": { "UserName": "MyUserName", "LoginProfile": { "Password": "{{resolve:ssm-secure:
IAMUserPassword:10
}}" } } }
YAML
MyIAMUser: Type: AWS::IAM::User Properties: UserName: 'MyUserName' LoginProfile: Password: '{{resolve:ssm-secure:
IAMUserPassword:10
}}'