使用Terraform创建Secrets Manager密钥后遇AWSCURRENT标签报错
排查Secrets Manager提示“找不到AWSCURRENT标签的密钥值”问题
以下是针对该问题的排查方向和解决方法:
Terraform状态与云端资源不同步
本地Terraform状态可能和AWS云端的实际资源状态不一致,导致操作异常。执行以下命令检查并同步状态:# 查看Terraform记录的密钥版本信息 terraform state show aws_secretsmanager_secret_version.secrets-version # 刷新状态,同步云端最新数据 terraform refresh对比输出结果和AWS CLI的查询内容,如果版本ID、阶段标签存在差异,刷新状态后重新尝试获取密钥。
显式指定
version_stages引发的阶段管理冲突
你的代码中显式设置了version_stages = ["AWSCURRENT"],但Secrets Manager默认会为第一个密钥版本自动添加AWSCURRENT标签。显式指定该参数后,Terraform会严格管理阶段列表,若后续有手动修改标签等操作,可能引发状态冲突。
尝试移除version_stages参数,让Secrets Manager自动处理标签逻辑:resource "aws_secretsmanager_secret_version" "secrets-version" { secret_id = aws_secretsmanager_secret.secrets.id secret_string = jsonencode(var.secrets) # 移除version_stages配置 }重新应用Terraform配置后再尝试获取密钥。
密钥获取时的区域/标识符错误
确认获取密钥的操作使用的是us-east-1区域(与CLI查询的区域一致),且密钥标识符(ARN或名称)正确。Secrets Manager的ARN会包含随机后缀(如secrets-bRFXt2),但使用名称secrets也可正常查询,建议优先使用ARN避免名称歧义。验证密钥值是否实际存在
用AWS CLI直接尝试获取密钥值,确认云端状态是否正常:aws secretsmanager get-secret-value --secret-id secrets --version-stage AWSCURRENT --region us-east-1如果该命令能正常返回密钥值,说明问题出在应用代码或调用方式上;如果仍返回相同错误,需联系AWS技术支持排查云端异常。
内容的提问来源于stack exchange,提问作者Paulo Frugis Neto
相关产品推荐
相关产品推荐

