resource "aws_s3_bucket_acl" "example_bucket_acl" {
bucket = aws_s3_bucket.s3-bucket.id
acl = "private"
expected_bucket_owner = data.aws_caller_identity.current.account_id
}
data "aws_caller_identity" "current" {}
此代码设置 ACL,使得只有存储桶所有者才能读取和写入存储桶以及存储桶内的对象,但对象所有权配置仍设置为“对象写入者”。此外,ACL 不会因设置而被禁用。来自
Terraform 关于 S3 ACL 的文档
,它没有说明任何示例,也没有提供任何支持禁用 ACL 的参数。在手动更改 AWS 中的设置后,我尝试通过运行 terraform plan 来暴力破解该解决方案,看看我会从该计划中得到什么差异,但它说我的基础设施与配置匹配。
有人知道如何做到这一点吗?我目前正在使用 Terraform CLI v1.3.5 和 AWS 提供商 v4.40.0。
这是使用
api error InvalidBucketAclWithObjectOwnership: Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting