hashicorp / terraform-provider-aws

The AWS Provider enables Terraform to manage AWS resources.
https://registry.terraform.io/providers/hashicorp/aws
Mozilla Public License 2.0
9.81k stars 9.16k forks source link

Validate elasticache user password is between 16-128 #24273

Closed scottd018 closed 2 years ago

scottd018 commented 2 years ago

Community Note

Description

Add validation for password for the aws_elasticache_user resource. The below configuration will get through deployment and fail with an AWS validation error. This is especially problematic for long-running Terraform modules as the input is not validated up front.

image

Without this validation the following error may occur:

│ Error: error creating ElastiCache User: InvalidParameterValue: Passwords length must be between 16-128 characters.
│       status code: 400, request id: <ID>
│ 
│   with module.test.aws_elasticache_user.this,
│   on ../elasticache.tf line 56, in resource "aws_elasticache_user" "this":
│   56: resource "aws_elasticache_user" "this" {

New or Affected Resource(s)

N/A

Potential Terraform Configuration

# Copy-paste your Terraform configurations here - for large Terraform configs,
# please use a service like Dropbox and share a link to the ZIP file. For
# security, you can also encrypt the files using our GPG public key.

resource "aws_elasticache_user" "this" {
  user_id       = var.redis_user
  user_name     = var.redis_user
  access_string = "on ~app::* -@all +@read +@hash +@bitmap +@geo -setbit -bitfield -hset -hsetnx -hmset -hincrby -hincrbyfloat -hdel -bitop -geoadd -georadius -georadiusbymember"
  engine        = "REDIS"
  passwords     = ["small"]

  # there will likely be a separate process that handles updates here, so we do not want the changes in this module to
  # overwrite those changes.  we simply want to ensure that all of the possible values exist
  lifecycle {
    ignore_changes = [passwords]
  }
}

References

github-actions[bot] commented 2 years ago

This functionality has been released in v4.11.0 of the Terraform AWS Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you!

github-actions[bot] commented 2 years ago

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.