Search code examples
pythonaws-cdkaws-secrets-manager

Retrieve secret value from SecretManager in AWS CDK


I am creating RDS engine using AWS cdk

self.cluster = rds.DatabaseInstance(self, kwargs['env_name'] + "-db",
                         instance_identifier=kwargs['env_name'] + "-db",
                         database_name=kwargs['env_name'] + "DB",
                         engine=self.engine,
                         vpc=kwargs['vpc_stack'],
                         security_groups = [self.rds_sg],
                         instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.SMALL),
                         storage_encrypted = True,
                         storage_encryption_key = self.kms_key,
                         vpc_subnets=ec2.SubnetSelection(
                             subnet_group_name=kwargs['env_name']+"-RDS"
                         )
                       )

self.cluster.secret returns object aws_cdk.aws_secretsmanager.Secret

After creation I need to create another resources with RDS host and password.

But I can not retrieve this values from self.cluster.secret. I am tried to use

self.cluster.secret.secret_value_from_json('password').unsafe_unwrap()

but i got

{resolve:secretsmanager:arn:aws:secretsmanager:us-east-1:606097445846:secret:vtselmdbSecretFFCAA3B9-ubFyc10Ln1aV-ZM3TeQ:SecretString:password::}}.

Can you help me? How can i get plain text password?


Solution

  • Solved. I can use self.cluster.secret.secret_value_from_json('password').unsafe_unwrap() in another resources, not in output