{"id":28423216,"url":"https://github.com/terraform-aws-modules/terraform-aws-ssm-parameter","last_synced_at":"2025-06-24T23:30:48.742Z","repository":{"id":161481959,"uuid":"635303934","full_name":"terraform-aws-modules/terraform-aws-ssm-parameter","owner":"terraform-aws-modules","description":"Terraform module to create AWS SSM Parameter resources 🇺🇦","archived":false,"fork":false,"pushed_at":"2024-10-11T17:14:29.000Z","size":29,"stargazers_count":22,"open_issues_count":0,"forks_count":20,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-05T08:45:44.468Z","etag":null,"topics":["aws","aws-parameter-store","aws-ssm-parameter-store","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/terraform-aws-modules/ssm-parameter/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terraform-aws-modules.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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},"funding":{"github":["antonbabenko"],"custom":"https://www.paypal.me/antonbabenko"}},"created_at":"2023-05-02T12:10:19.000Z","updated_at":"2025-04-04T04:44:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"18ece64a-fa33-47cb-85de-65967a18b945","html_url":"https://github.com/terraform-aws-modules/terraform-aws-ssm-parameter","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/terraform-aws-modules/terraform-aws-ssm-parameter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-ssm-parameter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-ssm-parameter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-ssm-parameter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-ssm-parameter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terraform-aws-modules","download_url":"https://codeload.github.com/terraform-aws-modules/terraform-aws-ssm-parameter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-ssm-parameter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261774504,"owners_count":23207754,"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","aws-parameter-store","aws-ssm-parameter-store","terraform-module"],"created_at":"2025-06-05T08:35:59.655Z","updated_at":"2025-06-24T23:30:48.736Z","avatar_url":"https://github.com/terraform-aws-modules.png","language":"HCL","funding_links":["https://github.com/sponsors/antonbabenko","https://www.paypal.me/antonbabenko"],"categories":[],"sub_categories":[],"readme":"# AWS SSM Parameter Store Terraform module\n\nTerraform module which creates [AWS SSM Parameters](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) on AWS.\n\n[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)\n\n## Available Features\n\n- One of multiple SSM Parameters can be created\n- Value type guesser\n- Allow SSM Parameter to ignore changes in the value\n- Wrapper module which allows managing multiple resources with less code\n\n## Usage\n\n### Parameter as String\n\n```hcl\nmodule \"string\" {\n  source  = \"terraform-aws-modules/ssm-parameter/aws\"\n\n  name  = \"my-parameter\"\n  value = \"some-value\"\n}\n```\n\n### Parameter as SecureString\n\n```hcl\nmodule \"secret\" {\n  source  = \"terraform-aws-modules/ssm-parameter/aws\"\n\n  name        = \"my-secret-token\"\n  value       = \"secret123123!!!\"\n  secure_type = true\n}\n```\n\n### Parameter as StringList\n\n```hcl\nmodule \"list\" {\n  source  = \"terraform-aws-modules/ssm-parameter/aws\"\n\n  name   = \"my-list-parameter\"\n  values = [\"item1\", \"item2\"] # \"values\" not \"value\"\n}\n```\n\n### Parameter with ignored value changes\n\n```hcl\nmodule \"list\" {\n  source  = \"terraform-aws-modules/ssm-parameter/aws\"\n\n  ignore_value_changes = true\n\n  name  = \"my-parameter-ignore-value-changes\"\n  value = \"some-value\"\n}\n```\n\n### Multiple parameters\n\n```hcl\nlocals {\n  parameters = {\n    #########\n    # String\n    #########\n    \"string_simple\" = {\n      value = \"string_value123\"\n    }\n    \"string\" = {\n      type            = \"String\"\n      value           = \"string_value123\"\n      tier            = \"Intelligent-Tiering\"\n      allowed_pattern = \"[a-z0-9_]+\"\n    }\n\n    ###############\n    # SecureString\n    ###############\n    \"secure\" = {\n      type        = \"SecureString\"\n      value       = \"secret123123!!!\"\n      tier        = \"Advanced\"\n      description = \"My awesome password!\"\n    }\n    \"secure_encrypted_true\" = {\n      secure_type = true\n      value       = \"secret123123!!!\"\n      key_id      = \"c938de44-1c09-4c91-89fd-b5881f06f317\"\n    }\n\n    #############\n    # StringList\n    #############\n    \"list_as_autoguess_type\" = {\n      values = [\"item1\", \"item2\"]\n    }\n    \"list_as_jsonencoded_string\" = {\n      type  = \"StringList\"\n      value = jsonencode([\"item1\", \"item2\"])\n    }\n    \"list_as_plain_string\" = {\n      type  = \"StringList\"\n      value = \"item1,item2\"\n    }\n    \"list_as_autoconvert_values\" = {\n      type   = \"StringList\"\n      values = [\"item1\", \"item2\"]\n    }\n    \"list_empty_as_jsonencoded_string\" = {\n      type  = \"StringList\"\n      value = jsonencode([])\n    }\n  }\n}\n\nmodule \"multiple\" {\n  source  = \"terraform-aws-modules/ssm-parameter/aws\"\n\n  for_each = local.parameters\n\n  name            = try(each.value.name, each.key)\n  value           = try(each.value.value, null)\n  values          = try(each.value.values, [])\n  type            = try(each.value.type, null)\n  secure_type     = try(each.value.secure_type, null)\n  description     = try(each.value.description, null)\n  tier            = try(each.value.tier, null)\n  key_id          = try(each.value.key_id, null)\n  allowed_pattern = try(each.value.allowed_pattern, null)\n  data_type       = try(each.value.data_type, null)\n}\n```\n\n## Module wrappers\n\nUsers of this Terraform module can create multiple similar resources by using [`for_each` meta-argument within `module` block](https://www.terraform.io/language/meta-arguments/for_each) which became available in Terraform 0.13.\n\nUsers of Terragrunt can achieve similar results by using modules provided in the [wrappers](https://github.com/terraform-aws-modules/terraform-aws-ssm-parameter/tree/master/wrappers) directory, if they prefer to reduce amount of configuration files.\n\n\n## Examples\n\n- [Complete](https://github.com/terraform-aws-modules/terraform-aws-ssm-parameter/tree/master/examples/complete) - shows all possible ways to create parameters.\n\n## Conditional Creation\n\nThe following values are provided to toggle on/off creation of the associated resources as desired:\n\n```hcl\nmodule \"parameter\" {\n  source  = \"terraform-aws-modules/ssm-parameter/aws\"\n\n  # Disable creation of all resources\n  create = false\n\n  # ... omitted\n}\n```\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 4.37 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 4.37 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_ssm_parameter.ignore_value](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n| [aws_ssm_parameter.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_allowed_pattern\"\u003e\u003c/a\u003e [allowed\\_pattern](#input\\_allowed\\_pattern) | Regular expression used to validate the parameter value. | `string` | `null` | no |\n| \u003ca name=\"input_create\"\u003e\u003c/a\u003e [create](#input\\_create) | Whether to create SSM Parameter | `bool` | `true` | no |\n| \u003ca name=\"input_data_type\"\u003e\u003c/a\u003e [data\\_type](#input\\_data\\_type) | Data type of the parameter. Valid values: text, aws:ssm:integration and aws:ec2:image for AMI format. | `string` | `null` | no |\n| \u003ca name=\"input_description\"\u003e\u003c/a\u003e [description](#input\\_description) | Description of the parameter | `string` | `null` | no |\n| \u003ca name=\"input_ignore_value_changes\"\u003e\u003c/a\u003e [ignore\\_value\\_changes](#input\\_ignore\\_value\\_changes) | Whether to create SSM Parameter and ignore changes in value | `bool` | `false` | no |\n| \u003ca name=\"input_key_id\"\u003e\u003c/a\u003e [key\\_id](#input\\_key\\_id) | KMS key ID or ARN for encrypting a parameter (when type is SecureString) | `string` | `null` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Name of SSM parameter | `string` | `null` | no |\n| \u003ca name=\"input_secure_type\"\u003e\u003c/a\u003e [secure\\_type](#input\\_secure\\_type) | Whether the type of the value should be considered as secure or not? | `bool` | `false` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A mapping of tags to assign to resources | `map(string)` | `{}` | no |\n| \u003ca name=\"input_tier\"\u003e\u003c/a\u003e [tier](#input\\_tier) | Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are Standard, Advanced, and Intelligent-Tiering. Downgrading an Advanced tier parameter to Standard will recreate the resource. | `string` | `null` | no |\n| \u003ca name=\"input_type\"\u003e\u003c/a\u003e [type](#input\\_type) | Type of the parameter. Valid types are String, StringList and SecureString. | `string` | `null` | no |\n| \u003ca name=\"input_value\"\u003e\u003c/a\u003e [value](#input\\_value) | Value of the parameter | `string` | `null` | no |\n| \u003ca name=\"input_values\"\u003e\u003c/a\u003e [values](#input\\_values) | List of values of the parameter (will be jsonencoded to store as string natively in SSM) | `list(string)` | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_insecure_value\"\u003e\u003c/a\u003e [insecure\\_value](#output\\_insecure\\_value) | Insecure value of the parameter |\n| \u003ca name=\"output_raw_value\"\u003e\u003c/a\u003e [raw\\_value](#output\\_raw\\_value) | Raw value of the parameter (as it is stored in SSM). Use 'value' output to get jsondecode'd value |\n| \u003ca name=\"output_secure_type\"\u003e\u003c/a\u003e [secure\\_type](#output\\_secure\\_type) | Whether SSM parameter is a SecureString or not? |\n| \u003ca name=\"output_secure_value\"\u003e\u003c/a\u003e [secure\\_value](#output\\_secure\\_value) | Secure value of the parameter |\n| \u003ca name=\"output_ssm_parameter_arn\"\u003e\u003c/a\u003e [ssm\\_parameter\\_arn](#output\\_ssm\\_parameter\\_arn) | The ARN of the parameter |\n| \u003ca name=\"output_ssm_parameter_name\"\u003e\u003c/a\u003e [ssm\\_parameter\\_name](#output\\_ssm\\_parameter\\_name) | Name of the parameter |\n| \u003ca name=\"output_ssm_parameter_tags_all\"\u003e\u003c/a\u003e [ssm\\_parameter\\_tags\\_all](#output\\_ssm\\_parameter\\_tags\\_all) | All tags used for the parameter |\n| \u003ca name=\"output_ssm_parameter_type\"\u003e\u003c/a\u003e [ssm\\_parameter\\_type](#output\\_ssm\\_parameter\\_type) | Type of the parameter |\n| \u003ca name=\"output_ssm_parameter_version\"\u003e\u003c/a\u003e [ssm\\_parameter\\_version](#output\\_ssm\\_parameter\\_version) | Version of the parameter |\n| \u003ca name=\"output_value\"\u003e\u003c/a\u003e [value](#output\\_value) | Parameter value after jsondecode(). Probably this is what you are looking for |\n\u003c!-- END_TF_DOCS --\u003e\n\n## Authors\n\nModule is maintained by [Anton Babenko](https://github.com/antonbabenko) with help from [these awesome contributors](https://github.com/terraform-aws-modules/terraform-aws-ssm-parameter/graphs/contributors).\n\n## License\n\nApache 2 Licensed. See [LICENSE](https://github.com/terraform-aws-modules/terraform-aws-ssm-parameter/tree/master/LICENSE) for full details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-ssm-parameter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-ssm-parameter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-ssm-parameter/lists"}