AWS的新建议是默认禁用ACL,以便对象所有权默认为Bucket所有者。如何使用Terraform实现aws_s3_bucket资源?
我尝试了以下操作,但没有成功
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计划来强制解决方案,以查看我将从计划中获得什么差异,但它说我的基础设施与配置匹配。
有谁知道怎么做吗?我目前使用的是Terraform CLI v1.3.5和AWS provider v4.40.0。
这是使用aws_s3_bucket_ownership_controls设置的,而不是使用aws_s3_bucket_acl
。您可以将控件设置为bucketownerforced。