You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform无法为已创建的AWS Redis ElastiCache集群启用transit_encryption_enabled

解决方案:在不重建ElastiCache集群的情况下启用传输加密

1. 将现有集群导入Terraform状态

Terraform报错的核心原因是它未识别到已存在的service-cluster复制组,因此尝试创建新资源导致冲突。必须先将现有集群纳入Terraform状态管理:

执行以下导入命令:

terraform import aws_elasticache_replication_group.cache_cluster service-cluster

导入完成后,执行terraform state show aws_elasticache_replication_group.cache_cluster确认资源已被正确纳入状态,检查输出中的transit_encryption_enabled是否为false(匹配当前集群实际状态)。

2. 调整配置并执行更新

导入后,确保配置除transit_encryption_enabled外的所有参数与现有集群完全一致,再执行更新操作:

关键配置细节:

  • 保留apply_immediately = true(你的tfvars已设置),确保修改立即生效,无需等待维护窗口。
  • 若需要设置传输加密的模式(preferred/required),需升级AWS Provider到>=4.0.0版本,然后添加对应参数:
    transit_encryption_mode = "required" # 可选值:preferred/required,对应控制台的模式设置
    

执行更新:

先查看计划确认操作类型:

terraform plan

确认计划显示为更新现有资源而非创建/销毁后,执行应用:

terraform apply

3. 验证修改结果

执行完成后,通过CLI验证传输加密已启用:

aws elasticache describe-replication-groups --replication-group-id service-cluster --query "ReplicationGroups[0].TransitEncryptionEnabled"

同时检查集群状态正常,无数据丢失。

常见问题排查

  • 若导入后terraform plan仍显示销毁重建,检查配置中是否存在与实际集群不匹配的参数(如num_node_groups、replicas_per_node_group等),确保仅修改transit_encryption_enabled和transit_encryption_mode。
  • 若AWS Provider版本过低不支持transit_encryption_mode,升级Provider配置:
    terraform {
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = ">= 4.0.0"
        }
      }
    }
    

内容的提问来源于stack exchange,提问作者sudhir tataraju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:20:52