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

如何使用Terraform在AWS中为单个S3对象设置ACL?

如何用Terraform为S3单个对象设置ACL

Terraform支持两种方式为S3单个对象配置ACL:

1. 上传对象时直接指定ACL

如果是通过Terraform上传新对象,可以在aws_s3_object资源中直接设置acl参数,一步完成对象上传与ACL配置:

resource "aws_s3_object" "example_object" {
  bucket = "your-target-bucket"
  key    = "documents/report.pdf"
  source = "./local-files/report.pdf"
  acl    = "public-read" # 替换为实际需要的ACL规则
}

2. 为已存在的对象单独配置ACL

如果对象已经存在于S3中,可以使用aws_s3_object_acl资源单独设置其ACL,支持自定义权限授予:

resource "aws_s3_object_acl" "existing_object_acl" {
  bucket = "your-target-bucket"
  key    = "assets/image.jpg"
  acl    = "authenticated-read"

  # 自定义授予特定IAM用户读权限的示例
  grant {
    id         = aws_iam_user.marketing_user.id
    type       = "CanonicalUser"
    permission = "READ"
  }
}

常用ACL规则说明

  • private:仅对象所有者拥有读写权限(默认值)
  • public-read:所有者读写,所有公开用户可读
  • authenticated-read:所有者读写,所有AWS认证用户可读
  • bucket-owner-read:所有者读写,存储桶所有者可读
  • bucket-owner-full-control:存储桶所有者拥有对象完全控制权

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:10:56