から値を取得する AWS Secrets Manager - AWS Cloud Development Kit (AWS CDK) v2

これは AWS CDK v2 開発者ガイドです。古い CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

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

から値を取得する AWS Secrets Manager

AWS CDK アプリ AWS Secrets Manager で の値を使用するには、 fromSecretAttributes() メソッドを使用します。これは、Secrets Manager から取得され、 AWS CloudFormation デプロイ時に使用される値を表します。以下に例を示します。

TypeScript
import * as sm from "aws-cdk-lib/aws-secretsmanager"; export class SecretsManagerStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const secret = sm.Secret.fromSecretAttributes(this, "ImportedSecret", { secretCompleteArn: "arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name>-<random-6-characters>" // If the secret is encrypted using a KMS-hosted CMK, either import or reference that key: // encryptionKey: ... });
JavaScript
const sm = require("aws-cdk-lib/aws-secretsmanager"); class SecretsManagerStack extends cdk.Stack { constructor(scope, id, props) { super(scope, id, props); const secret = sm.Secret.fromSecretAttributes(this, "ImportedSecret", { secretCompleteArn: "arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name>-<random-6-characters>" // If the secret is encrypted using a KMS-hosted CMK, either import or reference that key: // encryptionKey: ... }); } } module.exports = { SecretsManagerStack }
Python
import aws_cdk.aws_secretsmanager as sm class SecretsManagerStack(cdk.Stack): def __init__(self, scope: cdk.App, id: str, **kwargs): super().__init__(scope, name, **kwargs) secret = sm.Secret.from_secret_attributes(self, "ImportedSecret", secret_complete_arn="arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name>-<random-6-characters>", # If the secret is encrypted using a KMS-hosted CMK, either import or reference that key: # encryption_key=.... )
Java
import software.amazon.awscdk.services.secretsmanager.Secret; import software.amazon.awscdk.services.secretsmanager.SecretAttributes; public class SecretsManagerStack extends Stack { public SecretsManagerStack(App scope, String id) { this(scope, id, null); } public SecretsManagerStack(App scope, String id, StackProps props) { super(scope, id, props); Secret secret = (Secret)Secret.fromSecretAttributes(this, "ImportedSecret", SecretAttributes.builder() .secretCompleteArn("arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name>-<random-6-characters>") // If the secret is encrypted using a KMS-hosted CMK, either import or reference that key: // .encryptionKey(...) .build()); } }
C#
using Amazon.CDK.AWS.SecretsManager; public class SecretsManagerStack : Stack { public SecretsManagerStack(App scope, string id, StackProps props) : base(scope, id, props) { var secret = Secret.FromSecretAttributes(this, "ImportedSecret", new SecretAttributes { SecretCompleteArn = "arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name>-<random-6-characters>" // If the secret is encrypted using a KMS-hosted CMK, either import or reference that key: // encryptionKey = ..., }); }
ヒント

AWS CLI create-secret CLI コマンドを使用して、テスト時などにコマンドラインからシークレットを作成します。

aws secretsmanager create-secret --name ImportedSecret --secret-string mygroovybucket

このコマンドは、前の例で使用できる ARN を返します。

Secret インスタンスを作成したら、インスタンスの secretValue 属性からシークレットの値を取得できます。値は、特殊なタイプの であるSecretValueインスタンスで表されますトークン。トークンであるため、解決後にのみ意味があります。CDK アプリは実際の値にアクセスする必要はありません。代わりに、アプリケーションはSecretValueインスタンス (またはその文字列または数値表現) を CDK メソッドが値を必要とする任意の に渡すことができます。