AWS::SecretsManager 変換 - AWS CloudFormation

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

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リソース) にあります。次に、このリソースは、RotationTypeリソースで指定された内容に基づいて、AWSSecrets Manager Rotation Lambda Functions AWS::SecretsManager::RotationSchedule リポジトリ内の適切な関数テンプレートにリンクします。

使用方法

テンプレートの最上位レベルにある 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 関数のプロパティを指定します。

解説

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

次の部分的なテンプレートの例は、AWS::SecretsManager 変換を使用し、AWS::SecretsManager::RotationSchedule リソースの HostedRotationLambda プロパティタイプで指定されたプロパティに基づいて、単一ユーザーの 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