에서 가치 가져오기 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 메서드에 전달할 수 있습니다.