【发布时间】:2022-11-21 13:39:27
【问题描述】:
AWS 的新建议是disable ACL by default,这样对象所有权默认为存储桶所有者。如何使用 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's documentation on S3 ACL,它没有说明任何示例,也没有提供任何支持禁用 ACL 的参数。
在手动更改 AWS 中的设置后,我试图通过运行 terraform plan 来强行解决该解决方案,以查看我将从该计划中获得哪些差异,但它说我的基础设施与配置相匹配。
有谁知道如何做到这一点?我目前正在使用 Terraform CLI v1.3.5 和 AWS provider v4.40.0。
【问题讨论】:
标签: amazon-web-services amazon-s3 terraform terraform-provider-aws