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

如何在Terraform中获取AWS账号ID并配置IAM用户的STS策略

解决Terraform中IAM策略填入AWS账号ID的方法

获取AWS账号ID的常用方式

  • 推荐方式:使用aws_caller_identity数据源:自动获取当前Terraform执行环境对应的AWS账号ID,无需硬编码,适配多环境复用场景。
  • 不推荐方式:直接硬编码账号ID,灵活性差且存在泄露风险。

修改后的完整代码示例

# 添加数据源获取当前AWS账号ID
data "aws_caller_identity" "current" {}

resource "aws_iam_user" "product_upload_user" {
  name = "cc-${terraform.workspace}-product-upload-user"
}

resource "aws_iam_user_policy" "allow_upload" {
  user   = aws_iam_user.product_upload_user.name
  policy = data.aws_iam_policy_document.allow_upload.json
}

data "aws_iam_policy_document" "allow_upload" {
  statement {
    sid       = "STSToken"
    effect    = "Allow"
    actions   = ["sts:GetFederationToken"]
    # 用数据源返回的账号ID填充ARN
    resources = ["arn:aws:sts::${data.aws_caller_identity.current.account_id}:federated-user/S3UploadWebToken"]
  }
}

对应教程策略的中文说明

你参考的英文教程是用于配置Next.js S3上传功能的设置指南,核心策略要求授权IAM用户调用sts:GetFederationToken接口,生成前端上传文件所需的临时凭证。该策略的作用是允许用户获取联邦令牌,后续可通过此令牌生成具备S3上传权限的临时凭证,实现安全的前端直传S3功能。完整配置通常还需补充对应S3桶的操作权限(如s3:PutObject等),可根据教程后续步骤添加到策略文档中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:05:18