{"id":16725244,"url":"https://github.com/unfor19/terraform-aws-ssm-parameters","last_synced_at":"2025-07-14T03:06:09.799Z","repository":{"id":122057792,"uuid":"406854030","full_name":"unfor19/terraform-aws-ssm-parameters","owner":"unfor19","description":"Create AWS SSM Parameter Store parameters with a Terraform module. The creation/deletion (schema) is managed with Terraform, and the values should be maintained via AWS Console.","archived":false,"fork":false,"pushed_at":"2021-12-07T22:39:44.000Z","size":49,"stargazers_count":5,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-02T17:09:14.955Z","etag":null,"topics":["aws","parameters","parameterstore","ssm","terraform"],"latest_commit_sha":null,"homepage":"https://meirg.co.il","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/unfor19.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-15T16:53:34.000Z","updated_at":"2024-01-03T17:09:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"50837e83-5278-4d12-a0e7-48c9aa5ae923","html_url":"https://github.com/unfor19/terraform-aws-ssm-parameters","commit_stats":null,"previous_names":[],"tags_count":2,"template":true,"template_full_name":null,"purl":"pkg:github/unfor19/terraform-aws-ssm-parameters","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fterraform-aws-ssm-parameters","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fterraform-aws-ssm-parameters/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fterraform-aws-ssm-parameters/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fterraform-aws-ssm-parameters/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unfor19","download_url":"https://codeload.github.com/unfor19/terraform-aws-ssm-parameters/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fterraform-aws-ssm-parameters/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265236713,"owners_count":23732496,"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":["aws","parameters","parameterstore","ssm","terraform"],"created_at":"2024-10-12T22:48:27.452Z","updated_at":"2025-07-14T03:06:09.781Z","avatar_url":"https://github.com/unfor19.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-ssm-parameters\n\n[![tests](https://github.com/unfor19/terraform-aws-ssm-parameters/actions/workflows/tests.yml/badge.svg)](https://github.com/unfor19/terraform-aws-ssm-parameters/actions/workflows/tests.yml) [![Terraform-Registry](https://img.shields.io/github/v/release/unfor19/terraform-aws-ssm-parameters?color=purple\u0026label=terraform-registry\u0026logo=terraform)](https://registry.terraform.io/modules/unfor19/ssm-parameters/aws/latest)\n\nCreate AWS SSM Parameter Store parameters with a Terraform module. The creation/deletion (schema) is managed with Terraform, and the values should be maintained via AWS Console.\n\nTo manage AWS SSM Parameters **values** programatically, use [unfor19/parzival](https://github.com/unfor19/parzival#parzival) - *\"A CLI that can get/set more than 10 SSM Parameters by path in a single command.\"*\n\n## Usage\n\n```ruby\nmodule \"app_params\" {\n    source  = \"unfor19/ssm-parameters/aws\"\n    version = \"0.0.2\"\n\n    prefix = \"/myapp/dev/\"\n\n    string_parameters = [\n        \"LOG_LEVEL\",\n    ]\n    securestring_parameters = [\n        \"GOOGLE_CLIENT_ID\",\n        \"GOOGLE_CLIENT_SECRET\"\n    ]\n}\n```\n\n\u003c!-- terraform_docs_start --\u003e\n\n## Requirements\n\n| Name | Version |\n|------|---------|\n| terraform | \u003e= 0.12.31 |\n| aws | \u003e= 3.38 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| aws | \u003e= 3.38 |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| key_id | When using SecureString, use a specific KMS key | `string` | `\"alias/aws/ssm\"` | no |\n| overwrite | **DANGEROUS** Overwrites parameter if exists, use carefully | `bool` | `false` | no |\n| prefix | Set a prefix to all variables, for example: `/myapp/dev/` | `string` | `\"\"` | no |\n| securestring_initial_value | Initial value for SecureString(s) | `string` | `\"empty\"` | no |\n| securestring_parameters | List of SecureString(s) | `list(string)` | `[]` | no |\n| securestring_tier | Valid values: `Standard`, `Advanced` and `Intelligent-Tiering` | `string` | `\"Standard\"` | no |\n| string_initial_value | Initial value for String(s) | `string` | `\"empty\"` | no |\n| string_parameters | List of String(s) | `list(string)` | `[]` | no |\n| string_tier | Valid values: `Standard`, `Advanced` and `Intelligent-Tiering` | `string` | `\"Standard\"` | no |\n| stringlist_initial_value | Initial value for StringList(s) | `string` | `\"empty\"` | no |\n| stringlist_parameters | List of StringList(s) | `list(string)` | `[]` | no |\n| stringlist_tier | Valid values: `Standard`, `Advanced` and `Intelligent-Tiering` | `string` | `\"Standard\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| securestring_arns | List of SecureString ARNs |\n| securestring_names | List of SecureString names |\n| string_arns | List of String ARNs |\n| string_names | List of String names |\n| stringlist_arns | List of StringList ARNs |\n| stringlist_names | List of StringList names |\n\n\u003c!-- terraform_docs_end --\u003e\n## Troubleshooting\n\n- **ParameterAlreadyExists** - to overcome this error, you'll have to pass the `overwrite = true` variable. This also means that the current values will be overwritten with the dummy initial value `empty`. This is very dangerous and should be used with cautious.\n\n  ```\n  Error: error updating SSM parameter (/myapp/dev/GOOGLE_CLIENT_ID): ParameterAlreadyExists: Parameter /myapp/dev/GOOGLE_CLIENT_ID already exists.\n  ```\n\n\n## Local Development\n\n\u003cdetails\u003e\n\n\u003csummary\u003eExpand/Collapse\u003c/summary\u003e\n\nFor local development, we'll use the following services\n\n- [localstack](https://github.com/localstack/localstack) - A fully functional local cloud (AWS) stack\n- [unfor19/tfcoding](https://github.com/unfor19/tfcoding) - Triggers a whole terraform pipeline of `terraform init` and `terraform fmt` and `terraform apply` upon changing the file [examples/basic/tfcoding.tf](./examples/basic/tfcoding.tf)\n\n### Requirements\n\n- [Docker](https://docs.docker.com/get-docker/)\n- [Docker Compose](https://docs.docker.com/compose/install/)\n\n### Development Process\n\nRun `tfcoding` and `localstack` locally with `docker-compose`\n\n```bash\nmake up-localstack-aws\n```\n\nMake changes in [examples/basic/tfcoding.tf](./examples/basic/tfcoding.tf) and save the file\n\nCheck the logs of the `tfcoding` Docker container\n\n```bash\n# ... omitted for brevity\ntfcoding-aws    | Outputs:\ntfcoding-aws    | \ntfcoding-aws    | securestring_arns = [\ntfcoding-aws    |   \"arn:aws:ssm:us-east-1:000000000000:parameter/myapp/dev/GOOGLE_CLIENT_ID\",\ntfcoding-aws    |   \"arn:aws:ssm:us-east-1:000000000000:parameter/myapp/dev/GOOGLE_CLIENT_SECRET\",\ntfcoding-aws    | ]\ntfcoding-aws    | securestring_names = [\ntfcoding-aws    |   \"/myapp/dev/GOOGLE_CLIENT_ID\",\ntfcoding-aws    |   \"/myapp/dev/GOOGLE_CLIENT_SECRET\",\ntfcoding-aws    | ]\ntfcoding-aws    | string_arns = [\ntfcoding-aws    |   \"arn:aws:ssm:us-east-1:000000000000:parameter/myapp/dev/LOG_LEVEL\",\ntfcoding-aws    | ]\ntfcoding-aws    | string_names = [\ntfcoding-aws    |   \"/myapp/dev/LOG_LEVEL\",\ntfcoding-aws    | ]\ntfcoding-aws    | stringlist_arns = []\ntfcoding-aws    | stringlist_names = []\n```\n\n### Test Suite\n\nExecute the script [scripts/tests.sh](./scripts/tests.sh)\n\n```bash\nmake test\n```\n\nExamine the output\n\n```bash\n... # omitted for brevity\nOutputs:\n\nsecurestring_arns = [\n  \"arn:aws:ssm:us-east-1:000000000000:parameter/myapp/dev/GOOGLE_CLIENT_ID\",\n  \"arn:aws:ssm:us-east-1:000000000000:parameter/myapp/dev/GOOGLE_CLIENT_SECRET\",\n]\nsecurestring_names = [\n  \"/myapp/dev/GOOGLE_CLIENT_ID\",\n  \"/myapp/dev/GOOGLE_CLIENT_SECRET\",\n]\nstring_arns = [\n  \"arn:aws:ssm:us-east-1:000000000000:parameter/myapp/dev/LOG_LEVEL\",\n]\nstring_names = [\n  \"/myapp/dev/LOG_LEVEL\",\n]\nstringlist_arns = []\nstringlist_names = []\n\n\\e[92m[SUCCESS]\\e[0m Test passed as expected\n```\n\n**NOTE**: `\\e[92m]...\\e[0m]` is colorizing the text in CI/CD services logs such as [GitHub Actions](https://github.com/features/actions)\n\n\u003c/details\u003e\n\n## Contributing\n\nReport issues/questions/feature requests on the [Issues](https://github.com/unfor19/terraform-aws-ssm-parameters/issues) section.\n\nPull requests are welcome! These are the steps:\n\n1. Fork this repo\n1. Create your feature branch from master (`git checkout -b my-new-feature`)\n1. Add the code of your new feature; expand the above *Local Development* section to learn how\n1. Run tests on your code, feel free to add more tests\n   ```bash\n   make test\n   ... # All good? Move on to the next step\n   ```\n1. Commit your remarkable changes (`git commit -am 'Added new feature'`)\n1. Push to the branch (`git push --set-up-stream origin my-new-feature`)\n1. Create a new Pull Request and provide details about your changes\n\n## Authors\n\nCreated and maintained by [Meir Gabay](https://github.com/unfor19)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/unfor19/terraform-aws-ssm-parameters/blob/master/LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfor19%2Fterraform-aws-ssm-parameters","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funfor19%2Fterraform-aws-ssm-parameters","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfor19%2Fterraform-aws-ssm-parameters/lists"}