The CDK Construct Library for AWS::SecretsManager
Project description
AWS Secrets Manager Construct Library
This is a developer preview (public beta) module. Releases might lack important features and might have future breaking changes.
const secretsmanager = require('@aws-cdk/aws-secretsmanager');
Create a new Secret in a Stack
In order to have SecretsManager generate a new secret value automatically, you can get started with the following:
// Default secret
const secret = new secretsManager.Secret(this, 'Secret');
secret.grantRead(role);
new iam.User(this, 'User', {
password: secret.secretValue
});
// Templated secret
const templatedSecret = new secretsManager.Secret(this, 'TemplatedSecret', {
generateSecretString: {
secretStringTemplate: JSON.stringify({ username: 'user' }),
generateStringKey: 'password'
}
});
new iam.User(this, 'OtherUser', {
userName: templatedSecret.secretValueFromJson('username').toString(),
password: templatedSecret.secretValueFromJson('password')
});
The Secret
construct does not allow specifying the SecretString
property
of the AWS::SecretsManager::Secret
resource (as this will almost always
lead to the secret being surfaced in plain text and possibly committed to
your source control).
If you need to use a pre-existing secret, the recommended way is to manually
provision the secret in AWS SecretsManager and use the Secret.fromSecretArn
or Secret.fromSecretAttributes
method to make it available in your CDK Application:
const secret = Secret.fromSecretAttributes(scope, 'ImportedSecret', {
secretArn: '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,
});
SecretsManager secret values can only be used in select set of properties. For the list of properties, see the CloudFormation Dynamic References documentation.
Rotating a Secret
A rotation schedule can be added to a Secret:
const fn = new lambda.Function(...);
const secret = new secretsManager.Secret(this, 'Secret');
secret.addRotationSchedule('RotationSchedule', {
rotationLambda: fn,
automaticallyAfterDays: 15
});
See Overview of the Lambda Rotation Function on how to implement a Lambda Rotation Function.
For RDS credentials rotation, see aws-rds.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aws-cdk.aws-secretsmanager-0.36.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9f5e87b135f1e480cfbeaaf8644d0842726919d966a314f495e8ee2a18ec1a2 |
|
MD5 | 3f31da9e817d77ea77f941c5bcd96313 |
|
BLAKE2b-256 | fcb5c452cfe6ab5fa62f6198d418b01c5352fb372ec0b1e4086d53062da62741 |
Hashes for aws_cdk.aws_secretsmanager-0.36.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 300c28047bb1cf143f5d1d7f3a55c36aed21902ad36978d50832a3b8f49b80a3 |
|
MD5 | 6970d6b8684741b18f7a48affe5dddf1 |
|
BLAKE2b-256 | 622a1e2c4f73604db2d5cc57dfe8ffd88f237cc22e9db92890265bb720723194 |