AWS::SecretsManager
変換
AWS::SecretsManager
がホストするマクロである AWS CloudFormation 変換を使用して、シークレットのローテーションを実行する 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
使用方法
テンプレートの最上位レベルにある AWS::SecretsManager
変換を使用します。AWS::SecretsManager
を他のテンプレートセクションに埋め込まれたトランスフォームとして使用することはできません。
変換の宣言の値には、リテラル文字列である必要があります。変換値の指定には、パラメータまたは関数は使用できません。
テンプレートのトップレベルでの構文
テンプレートの最上位レベルに AWS::SecretsManager
を含めるには、Transform
セクションで次の構文を使用します。
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
変換を使用し、AWS::SecretsManager::RotationSchedule
リソースの HostedRotationLambda
プロパティタイプで指定されたプロパティに基づいて、単一ユーザーの MySQL データベースでシークレットローテーションの AWS Lambda 関数を指定する方法を示しています。
RDS データベース、Amazon Redshift クラスター、ドキュメント 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