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

使用Terraform aws_iam_access_key获取密钥返回tostring(null)的问题排查

问题:Terraform创建IAM访问密钥后输出encrypted_ses_smtp_password_v4为null

我使用Terraform的AWS Provider,通过aws_iam_access_key资源创建IAM用户访问密钥,但获取相关值时遇到问题。

资源配置

resource "aws_iam_access_key" "main_user_access_key" {
  user = aws_iam_user.main_user.name
}

子模块输出块

output "main_user_secret_key" {
  value = aws_iam_access_key.main_user_access_key.encrypted_ses_smtp_password_v4
  sensitive = true
}

根模块输出块

output "main_module_outputs" {
  value = module.main
}

最终输出结果

"main_user_secret_key" = tostring(null)

请问哪里操作有误?该如何解决?


解决方案

核心问题:属性使用错误

encrypted_ses_smtp_password_v4并非IAM访问密钥的Secret Key,它是专门用于生成SES(简单邮件服务)的SMTP加密密码的属性,只有满足以下全部条件时才会返回有效值:

  • AWS账号已启用SES服务
  • 目标IAM用户拥有SES相关权限(如ses:SendEmail)
  • 部署区域为SES支持的区域(如us-east-1、us-west-2等)

正确获取IAM访问密钥Secret Key

如果你需要的是IAM访问密钥的Secret Key,应使用secret属性修改输出块:

output "main_user_secret_key" {
  value = aws_iam_access_key.main_user_access_key.secret
  sensitive = true
}

注意事项

  • secret属性仅在资源首次创建时返回值,后续执行terraform apply或terraform refresh不会再输出——因为AWS不会存储明文Secret Key,仅在创建时可获取一次
  • 若确实需要SES SMTP密码,先确认上述SES相关条件是否满足,同时确保AWS Provider为最新版本,旧版本可能存在兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:54:55