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

如何在Terraform中通过for_each为多个S3桶分配同一个桶策略

问题解决方法

错误原因

  • 冗余的插值语法:HCL(Terraform的配置语言)中,资源参数的赋值位置默认就是表达式上下文,直接写变量引用即可,不需要用${}包裹,这个是HCL 0.11及更早版本的旧插值语法,新版本使用会触发语法报错。
  • 无效的属性调用:你传入for_each的是字符串类型的集合,each.key直接对应集合里的字符串桶名,本身没有.id属性,多余的属性调用会触发报错。

修正后的配置

variable "my_bucket_names" {
  type = list(string)
  default = [
    "b1",
    "b2",
  ]
}

resource "aws_s3_bucket_policy" "tf-thing-audit-policy" {
  for_each = toset(var.my_bucket_names)
  bucket   = each.key
  # 剩余配置保持不变
  ...
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:48:04