翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 はそれらの参照を解決できず、リソース障害の原因になります。