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

Terraform是否具备原生功能将aws_iam_access_key密钥存入AWS参数存储/Secrets Manager?

回答

Terraform本身没有专门的原生功能自动将aws_iam_access_key生成的访问密钥和秘密访问密钥存入AWS Parameter Store或Secrets Manager,但你可以通过定义对应的AWS资源来实现全自动化存储,完全省去手动操作步骤,同时确保密钥安全存储。

存入AWS Parameter Store

你可以使用aws_ssm_parameter资源,将访问密钥ID和秘密访问密钥分别以SecureString类型存储(这是敏感信息的推荐存储类型):

resource "aws_iam_user" "example" {
  name = "example-user"
}

resource "aws_iam_access_key" "example" {
  user = aws_iam_user.example.name
}

# 存储访问密钥ID到Parameter Store
resource "aws_ssm_parameter" "iam_access_key_id" {
  name        = "/iam/example-user/access-key-id"
  type        = "SecureString"
  value       = aws_iam_access_key.example.id
  description = "Access Key ID for example IAM user"
}

# 存储秘密访问密钥到Parameter Store
resource "aws_ssm_parameter" "iam_secret_access_key" {
  name        = "/iam/example-user/secret-access-key"
  type        = "SecureString"
  value       = aws_iam_access_key.example.secret
  description = "Secret Access Key for example IAM user"
}

存入AWS Secrets Manager

如果希望将密钥对存储在同一个秘密中,推荐使用Secrets Manager,通过aws_secretsmanager_secret和aws_secretsmanager_secret_version资源实现:

resource "aws_iam_user" "example" {
  name = "example-user"
}

resource "aws_iam_access_key" "example" {
  user = aws_iam_user.example.name
}

# 创建Secrets Manager秘密容器
resource "aws_secretsmanager_secret" "iam_user_creds" {
  name        = "example-iam-user-credentials"
  description = "Access credentials for example IAM user"
}

# 将密钥对以JSON格式存入秘密
resource "aws_secretsmanager_secret_version" "iam_user_creds" {
  secret_id     = aws_secretsmanager_secret.iam_user_creds.id
  secret_string = jsonencode({
    access_key_id     = aws_iam_access_key.example.id
    secret_access_key = aws_iam_access_key.example.secret
  })
}

关键注意事项

  • 状态文件安全:Terraform会在状态文件中保留这些敏感密钥,务必确保状态文件的安全(比如使用加密的S3后端存储状态,或借助Terraform Cloud的加密状态管理)。
  • 权限配置:执行Terraform的角色需要具备对应的权限,比如ssm:PutParameter(针对Parameter Store)、secretsmanager:CreateSecret和secretsmanager:PutSecretValue(针对Secrets Manager)。
  • 密钥轮换:如果需要后续轮换密钥,可以结合aws_iam_access_key的轮换设置,同时更新对应的存储资源来同步新密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:54:14