Skip to content

Creates a password with a Lambda data source and saves it in a secrets manager secret, allowing the creation of passwords without saving them in state

License

Notifications You must be signed in to change notification settings

rhythmictech/terraform-aws-secure-password

Repository files navigation

terraform-aws-secure-password

Creates a password with a Lambda data source and saves it in a secrets manager secret, allowing the creation of passwords without saving them in state

tflint tfsec yamllint misspell pre-commit-check follow on Twitter

Example

Here's what using the module will look like

module "secure_password" {
  source  = "rhythmictech/secure-password/aws"
  version = "~> 1.0.0-rc1"

  name    = "my-secure-pass"
  length  = 24
}

output "secret_name" {
  value = module.secure_password.secret_name
}

About

Creates a password with a Lambda data source and saves it in a secrets manager secret, allowing the creation of passwords without saving them in state

Requirements

Name Version
terraform >= 0.12.28
aws >= 2.45
external >= 1.2
null >= 2.1
random >= 2.3

Providers

Name Version
aws >= 2.45
external >= 1.2
null >= 2.1
random >= 2.3

Modules

Name Source Version
lambda_invocation matti/resource/shell ~>1.0.7
lambda_invocation_result matti/resource/shell ~>1.0.7
lambda_version rhythmictech/find-release-by-semver/github ~> 1.0

Resources

Name Type
aws_iam_role.this resource
aws_iam_role_policy.secret_write resource
aws_iam_role_policy_attachment.lambda_basic_execution resource
aws_lambda_function.this resource
aws_secretsmanager_secret.this resource
null_resource.lambda_zip resource
random_string.trigger resource
aws_iam_policy_document.assume data source
aws_iam_policy_document.secret_write data source
external_external.sha data source

Inputs

Name Description Type Default Required
length Length of the password to be created number n/a yes
name Moniker to apply to all resources in the module string n/a yes
keepers Arbitrary map of values that when changed will force a new password map(string) {} no
lambda_version_constraint NPM-style version constraint for the version of the lambda code you want to use string "^1.0.3" no
lower Whether to use lower case characters bool true no
min_lower Minimum number of lowercase letters number 0 no
min_numeric Minimum number of numeric characters to use. Must be at least 1 number 1 no
min_special Minimum number of special characters to use. Must be at least 1 number 1 no
min_upper Minimum number of uppercase characters to use. Must be at least 1 number 1 no
number Whether to use numbers bool true no
override_special Supply your own list of special characters to use for string generation string "!@#$%&*()-_=+[]{}<>:?" no
secret_description Set a description for the secret string "A password created by Terraform" no
special Whether to use special characters bool true no
tags User-Defined tags map(string) {} no
upper Whether to use uppercase characters bool true no

Outputs

Name Description
lambda_version The selected version of the Lambda code
lambda_version_info all information about the selected version of the Lambda code
result String result of Lambda execution
secret_arn ARN of the secret containing the password
secret_name Name of the secret containing the password

The Giants Underneath this Module

About

Creates a password with a Lambda data source and saves it in a secrets manager secret, allowing the creation of passwords without saving them in state

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •