AWS CloudFormation リソースの AWS Secrets Manager シークレットを取得する - AWS Secrets Manager

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

AWS CloudFormation リソースの AWS Secrets Manager シークレットを取得する

AWS CloudFormation の場合、シークレットを取得して、別の AWS CloudFormation リソースで使用できます。一般的なシナリオでは、まず シークレットマネージャーが生成したパスワードを使ってシークレットを作成し、次に、シークレットから、新しいデータベースの認証情報として使用するユーザーネームとパスワードを取得します。AWS CloudFormation でシークレットを作成する方法の詳細については、「AWS CloudFormation で AWS Secrets Manager シークレットを作成する」を参照してください。

シークレットを取得するために、AWS CloudFormation テンプレートでは、ダイナミックリファレンスを使用します。スタックを作成すると、動的参照によってシークレット値が AWS CloudFormation リソースに取り込まれるため、シークレット情報をハードコーディングする必要はありません。代わりに、シークレットを名前または ARN で参照します。ダイナミックリファレンスは、任意のリソースプロパティ内のシークレットに対し使用できます。リソースメタデータ (AWS::CloudFormation::Init など) 内にあるシークレットに対しては、ダイナミックリファレンスを使用することはできません。これにより、シークレット値がコンソールに表示されてしまうためです。

シークレットに対するダイナミックリファレンスのパターンを、次に示します。

{{resolve:secretsmanager:secret-id:SecretString:json-key:version-stage:version-id}}
シークレットID

シークレット名またはシークレット ARN。AWS アカウントのシークレットにアクセスするには、シークレット名を使用するだけです。別の AWS アカウントのシークレットにアクセスするには、シークレット ARN を使用します。

json-key (オプション)

値を取得するペアのキー名を指定します。json-key を指定しない場合、AWS CloudFormation はシークレットテキスト全体を取得します。このセグメントにはコロン文字 (:) を含めることはできません。

version-stage (オプション)

使用するクエリのバージョン シークレットマネージャーは、ステージングラベルがローテーション処理中にさまざまなバージョンを追跡するために使用されます。version-stage を使用する場合は、version-id を指定することはできません。version-stage または version-id、を指定しない場合、デフォルトでは AWSCURRENT というラベルの付いたバージョンが取得されます。このセグメントにはコロン文字 (:) を含めることはできません。

version-id (オプション)

使用したいシークレットのバージョンの固有識別子を指定します。version-id を指定した場合は、version-stage を指定しないでください。version-stage または version-id を指定しない場合、次にデフォルトでは AWSCURRENT というバージョンが取得されます。このセグメントにはコロン文字 (:) を含めることはできません。

詳細については、「シークレットマネージャーのシークレットを指定するための、ダイナミックレファレンスを使用する」を参照してください。

注記

最終的な値としてバックスラッシュ (\) を使用する動的な参照を作成しないでください。AWS CloudFormation はそれらの参照を解決できず、リソース障害の原因になります。