AWS::SecretsManager 변환 - AWS CloudFormation

AWS::SecretsManager 변환

AWS CloudFormation에서 호스팅하는 매크로인 AWS::SecretsManager 변환을 사용하여 보안 암호를 교체하는 AWS Lambda 함수를 지정합니다. 변경 세트 생성 또는 변경 세트를 사용하여 스택 업데이트 및 템플릿이 AWS::SecretsManager를 참조하는 경우 AWS CloudFormation에서는 보안 암호를 교체하는 AWS Lambda 함수를 생성합니다. AWS::SecretsManager::RotationSchedule 리소스의 HostedRotationLambda 속성 유형을 사용하여 원하는 AWS Lambda 함수의 속성을 지정합니다.

AWS Lambda 함수는 처리된 템플릿에 중첩 스택(즉, AWS::CloudFormation::Stack 리소스)으로 포함됩니다. 이 리소스는 AWS::SecretsManager::RotationSchedule 리소스에 지정된 RotationType을 기반으로 AWS Secrets Manager Rotation Lambda Functions(Secrets Manager 교체 Lambda 함수) 리포지토리의 해당 함수 템플릿에 연결됩니다.

사용량

템플릿의 최상위 수준에서 AWS::SecretsManager 변환을 사용합니다. 다른 템플릿 섹션에 포함된 변환으로 AWS::SecretsManager을 사용할 수 없습니다.

변환 선언 값은 리터럴 문자열이어야 합니다 파라미터나 함수를 사용하여 변환 값을 지정할 수 없습니다.

템플릿 최상위의 구문

Transform 섹션에 있는 템플릿 최상위에 AWS::SecretsManager를 포함하려면 다음 구문을 사용합니다.

JSON

{ "Transform": "AWS::SecretsManager-2020-07-23", . . . }

YAML

Transform: AWS::SecretsManager-2020-07-23

파라미터

AWS::SecretsManager 변환에는 파라미터를 사용할 수 없습니다. 대신 스택 템플릿에 있는 AWS::SecretsManager::RotationSchedule 리소스의 HostedRotationLambda 속성 유형을 사용하여 생성하려는 보안 암호 교체 AWS Lambda 함수의 속성을 지정합니다.

설명

매크로 사용에 대한 일반적인 고려 사항은 CloudFormation 매크로 정의 생성 시 고려 사항 단원을 참조하십시오.

다음 부분적 템플릿 예제에서는 AWS::SecretsManager::RotationSchedule 리소스의 HostedRotationLambda 속성 유형에 지정된 속성을 기반으로 AWS::SecretsManager 변환을 사용하여 MySQL 데이터베이스에서 단일 사용자의 보안 암호를 교체하는 AWS Lambda 함수를 지정하는 방법을 보여줍니다.

RDS 데이터베이스, Amazon Redshift 클러스터 및 Document DB 클러스터의 보안 암호 교체를 보여주는 전체 템플릿 예제는 AWS::SecretsManager::RotationSchedule예제 섹션을 참조하세요.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::SecretsManager-2020-07-23", "Resources": { . . . "MySecretRotationSchedule": { "Type": "AWS::SecretsManager::RotationSchedule", "DependsOn": "SecretRDSInstanceAttachment", "Properties": { "SecretId": { "Ref": "MyRDSInstanceRotationSecret" }, "HostedRotationLambda": { "RotationType": "MySQLSingleUser", "RotationLambdaName": "SecretsManagerRotation", "VpcSecurityGroupIds": { "Fn::GetAtt": [ "TestVPC", "DefaultSecurityGroup" ] }, "VpcSubnetIds": { "Fn::Join": [ ",", [ { "Ref": "TestSubnet01" }, { "Ref": "TestSubnet02" } ] ] } }, "RotationRules": { "AutomaticallyAfterDays": 30 } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::SecretsManager-2020-07-23 Resources: . . . MySecretRotationSchedule: Type: AWS::SecretsManager::RotationSchedule DependsOn: SecretRDSInstanceAttachment Properties: SecretId: !Ref MyRDSInstanceRotationSecret HostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName: SecretsManagerRotation VpcSecurityGroupIds: !GetAtt TestVPC.DefaultSecurityGroup VpcSubnetIds: Fn::Join: - "," - - Ref: TestSubnet01 - Ref: TestSubnet02 RotationRules: AutomaticallyAfterDays: 30