【发布时间】:2021-07-27 01:28:07
【问题描述】:
使用 Terraform,我声明了一个 s3 存储桶和相关的策略文档,以及一个 iam_role 和 iam_role_policy。
s3 存储桶在 AWS 中创建良好,但是该存储桶被列为“访问:对象可以是公共的”,并且希望对象是私有的。如何明确将对象设为私有?
resource "aws_s3_bucket" "app" {
bucket = "${data.aws_caller_identity.current.account_id}-app"
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
}
data "aws_iam_policy_document" "app_s3_policy" {
statement {
effect = "Allow"
actions = [
"s3:PutObject"
]
resources = [
aws_s3_bucket.app.arn,
"${aws_s3_bucket.app.arn}/*"
]
}
}
【问题讨论】:
-
使用 Terraform AWS 提供商创建的 S3 存储桶的默认 ACL 是
private,那么您的配置中是否还有其他因素导致了这种行为? -
@MattSchuchard 我指定了
acl = private,它默认是公开的!