これは 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インスタンス、特別なタイプのトークン、 AWS CDK で表されます。トークンであるため、解決後にのみ意味があります。CDK アプリは実際の値にアクセスする必要はありません。代わりに、アプリは値を必要とする CDK メソッドに SecretValue インスタンス (またはその文字列や数値表現) を渡すことができます。