{"id":19508833,"url":"https://github.com/rhythmictech/terraform-aws-secure-password","last_synced_at":"2025-06-11T03:37:36.355Z","repository":{"id":51235559,"uuid":"278154021","full_name":"rhythmictech/terraform-aws-secure-password","owner":"rhythmictech","description":"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","archived":false,"fork":false,"pushed_at":"2024-01-29T21:55:57.000Z","size":94,"stargazers_count":18,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-25T22:46:13.156Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhythmictech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-08T17:33:52.000Z","updated_at":"2024-04-06T16:27:35.000Z","dependencies_parsed_at":"2025-01-09T00:46:43.766Z","dependency_job_id":null,"html_url":"https://github.com/rhythmictech/terraform-aws-secure-password","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":"rhythmictech/terraform-terraform-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-secure-password","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-secure-password/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-secure-password/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-secure-password/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhythmictech","download_url":"https://codeload.github.com/rhythmictech/terraform-aws-secure-password/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fterraform-aws-secure-password/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259192704,"owners_count":22819461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T23:10:02.308Z","updated_at":"2025-06-11T03:37:36.321Z","avatar_url":"https://github.com/rhythmictech.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-secure-password\nCreates 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\n\n[![tflint](https://github.com/rhythmictech/terraform-aws-secure-password/workflows/tflint/badge.svg?branch=main\u0026event=push)](https://github.com/rhythmictech/terraform-aws-secure-password/actions?query=workflow%3Atflint+event%3Apush+branch%3Amain)\n[![tfsec](https://github.com/rhythmictech/terraform-aws-secure-password/workflows/tfsec/badge.svg?branch=main\u0026event=push)](https://github.com/rhythmictech/terraform-aws-secure-password/actions?query=workflow%3Atfsec+event%3Apush+branch%3Amain)\n[![yamllint](https://github.com/rhythmictech/terraform-aws-secure-password/workflows/yamllint/badge.svg?branch=main\u0026event=push)](https://github.com/rhythmictech/terraform-aws-secure-password/actions?query=workflow%3Ayamllint+event%3Apush+branch%3Amain)\n[![misspell](https://github.com/rhythmictech/terraform-aws-secure-password/workflows/misspell/badge.svg?branch=main\u0026event=push)](https://github.com/rhythmictech/terraform-aws-secure-password/actions?query=workflow%3Amisspell+event%3Apush+branch%3Amain)\n[![pre-commit-check](https://github.com/rhythmictech/terraform-aws-secure-password/workflows/pre-commit-check/badge.svg?branch=main\u0026event=push)](https://github.com/rhythmictech/terraform-aws-secure-password/actions?query=workflow%3Apre-commit-check+event%3Apush+branch%3Amain)\n\u003ca href=\"https://twitter.com/intent/follow?screen_name=RhythmicTech\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/RhythmicTech?style=social\u0026logo=twitter\" alt=\"follow on Twitter\"\u003e\u003c/a\u003e\n\n## Example\nHere's what using the module will look like\n```hcl\nmodule \"secure_password\" {\n  source  = \"rhythmictech/secure-password/aws\"\n  version = \"~\u003e 1.0.0-rc1\"\n\n  name    = \"my-secure-pass\"\n  length  = 24\n}\n\noutput \"secret_name\" {\n  value = module.secure_password.secret_name\n}\n\n```\n\n## About\nCreates 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\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.12.28 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 2.45 |\n| \u003ca name=\"requirement_external\"\u003e\u003c/a\u003e [external](#requirement\\_external) | \u003e= 1.2 |\n| \u003ca name=\"requirement_null\"\u003e\u003c/a\u003e [null](#requirement\\_null) | \u003e= 2.1 |\n| \u003ca name=\"requirement_random\"\u003e\u003c/a\u003e [random](#requirement\\_random) | \u003e= 2.3 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 2.45 |\n| \u003ca name=\"provider_external\"\u003e\u003c/a\u003e [external](#provider\\_external) | \u003e= 1.2 |\n| \u003ca name=\"provider_null\"\u003e\u003c/a\u003e [null](#provider\\_null) | \u003e= 2.1 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | \u003e= 2.3 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_lambda_invocation\"\u003e\u003c/a\u003e [lambda\\_invocation](#module\\_lambda\\_invocation) | matti/resource/shell | ~\u003e1.0.7 |\n| \u003ca name=\"module_lambda_invocation_result\"\u003e\u003c/a\u003e [lambda\\_invocation\\_result](#module\\_lambda\\_invocation\\_result) | matti/resource/shell | ~\u003e1.0.7 |\n| \u003ca name=\"module_lambda_version\"\u003e\u003c/a\u003e [lambda\\_version](#module\\_lambda\\_version) | rhythmictech/find-release-by-semver/github | ~\u003e 1.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_iam_role.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy.secret_write](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |\n| [aws_iam_role_policy_attachment.lambda_basic_execution](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_lambda_function.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function) | resource |\n| [aws_secretsmanager_secret.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret) | resource |\n| [null_resource.lambda_zip](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n| [random_string.trigger](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string) | resource |\n| [aws_iam_policy_document.assume](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.secret_write](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [external_external.sha](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/external) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_length\"\u003e\u003c/a\u003e [length](#input\\_length) | Length of the password to be created | `number` | n/a | yes |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Moniker to apply to all resources in the module | `string` | n/a | yes |\n| \u003ca name=\"input_keepers\"\u003e\u003c/a\u003e [keepers](#input\\_keepers) | Arbitrary map of values that when changed will force a new password | `map(string)` | `{}` | no |\n| \u003ca name=\"input_lambda_version_constraint\"\u003e\u003c/a\u003e [lambda\\_version\\_constraint](#input\\_lambda\\_version\\_constraint) | NPM-style version constraint for the version of the lambda code you want to use | `string` | `\"^1.0.3\"` | no |\n| \u003ca name=\"input_lower\"\u003e\u003c/a\u003e [lower](#input\\_lower) | Whether to use lower case characters | `bool` | `true` | no |\n| \u003ca name=\"input_min_lower\"\u003e\u003c/a\u003e [min\\_lower](#input\\_min\\_lower) | Minimum number of lowercase letters | `number` | `0` | no |\n| \u003ca name=\"input_min_numeric\"\u003e\u003c/a\u003e [min\\_numeric](#input\\_min\\_numeric) | Minimum number of numeric characters to use. Must be at least 1 | `number` | `1` | no |\n| \u003ca name=\"input_min_special\"\u003e\u003c/a\u003e [min\\_special](#input\\_min\\_special) | Minimum number of special characters to use. Must be at least 1 | `number` | `1` | no |\n| \u003ca name=\"input_min_upper\"\u003e\u003c/a\u003e [min\\_upper](#input\\_min\\_upper) | Minimum number of uppercase characters to use. Must be at least 1 | `number` | `1` | no |\n| \u003ca name=\"input_number\"\u003e\u003c/a\u003e [number](#input\\_number) | Whether to use numbers | `bool` | `true` | no |\n| \u003ca name=\"input_override_special\"\u003e\u003c/a\u003e [override\\_special](#input\\_override\\_special) | Supply your own list of special characters to use for string generation | `string` | `\"!@#$%\u0026*()-_=+[]{}\u003c\u003e:?\"` | no |\n| \u003ca name=\"input_secret_description\"\u003e\u003c/a\u003e [secret\\_description](#input\\_secret\\_description) | Set a description for the secret | `string` | `\"A password created by Terraform\"` | no |\n| \u003ca name=\"input_special\"\u003e\u003c/a\u003e [special](#input\\_special) | Whether to use special characters | `bool` | `true` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | User-Defined tags | `map(string)` | `{}` | no |\n| \u003ca name=\"input_upper\"\u003e\u003c/a\u003e [upper](#input\\_upper) | Whether to use uppercase characters | `bool` | `true` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_lambda_version\"\u003e\u003c/a\u003e [lambda\\_version](#output\\_lambda\\_version) | The selected version of the Lambda code |\n| \u003ca name=\"output_lambda_version_info\"\u003e\u003c/a\u003e [lambda\\_version\\_info](#output\\_lambda\\_version\\_info) | all information about the selected version of the Lambda code |\n| \u003ca name=\"output_result\"\u003e\u003c/a\u003e [result](#output\\_result) | String result of Lambda execution |\n| \u003ca name=\"output_secret_arn\"\u003e\u003c/a\u003e [secret\\_arn](#output\\_secret\\_arn) | ARN of the secret containing the password |\n| \u003ca name=\"output_secret_name\"\u003e\u003c/a\u003e [secret\\_name](#output\\_secret\\_name) | Name of the secret containing the password |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## The Giants Underneath this Module\n- [pre-commit.com](pre-commit.com)\n- [terraform.io](terraform.io)\n- [github.com/tfutils/tfenv](github.com/tfutils/tfenv)\n- [github.com/segmentio/terraform-docs](github.com/segmentio/terraform-docs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhythmictech%2Fterraform-aws-secure-password","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhythmictech%2Fterraform-aws-secure-password","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhythmictech%2Fterraform-aws-secure-password/lists"}