如何使用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
相关产品推荐
相关产品推荐

