AWS::SecretsManager transform - AWS CloudFormation

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

AWS::SecretsManager transform

AWS CloudFormation がホストするマクロである AWS::SecretsManager 変換を使用して、シークレットのローテーションを実行する Lambda 関数を指定します。変更セットの作成 または 変更セットを使用したスタックの更新 とテンプレートが AWS::SecretsManager を参照する場合、AWS CloudFormation はシークレットのローテーションを実行する Lambda 関数を生成します。AWS::SecretsManager::RotationSchedule リソースの HostedRotationLambda プロパティタイプを使用して、目的の Lambda 関数の属性を指定します。

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 プロパティタイプを使用して作成するシークレットローテーション Lamdba 関数のプロパティを指定します。

解説

マクロの使用に関する一般的な考慮事項については、「AWS CloudFormation マクロ定義を作成する際の考慮事項」を参照してください。

次の部分的なテンプレートの例は、AWS::SecretsManager 変換を使用し、AWS::SecretsManager::RotationSchedule リソースの HostedRotationLambda プロパティタイプで指定されたプロパティに基づいて、単一ユーザーの MySQL データベースでシークレットローテーションの Lambda 関数を指定する方法を示しています。

RDS データベース、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