【发布时间】:2020-01-17 20:07:05
【问题描述】:
尝试将日志记录添加到两个存储桶时,我的 Terraform 脚本出现错误。这些是我的一个模块的一部分,我之前已经成功使用过它们。我回来部署一个新环境……但现在它不工作了。
我收到以下错误:
module.dev2_environment.module.portal.aws_s3_bucket.portal_bucket:发生 1 个错误: * aws_s3_bucket.portal_bucket:放置 S3 日志记录时出错:InvalidTargetBucketForLogging:您必须提供日志传递组 目标存储桶的 WRITE 和 READ_ACP 权限 状态码:400,请求ID:51AB42EFCACC9924,主机ID:nYCUxjHZE+xTisA1xG5syLTKVN/Rtwu8z3xF+O9GAPMdC2yGcafP4uwDUURUGKd9Lx1SD8aHTcEI=
我通过 CLI 使用管理员凭据执行。在工作状态和错误之间没有进行任何代码更改。有什么想法可以改变吗?句法? AWS 在某个地方配置?
Terraform 11.14 和 aws 提供程序 2.16
日志桶:
resource "aws_s3_bucket" "logs_bucket" {
bucket = "XYZ-${var.env}-cdnlogs"
acl = "log-delivery-write"
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
tags {
Finance = "dev_env"
Environment = "${var.env}"
}
}
目标桶:
resource "aws_s3_bucket" "portal_bucket" {
bucket = "XYZ-${var.env}-portal"
acl = "private"
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
logging {
target_bucket = "${aws_s3_bucket.logs_bucket.id}"
target_prefix = "logs/portal/"
}
website {
index_document = "index.html"
error_document = "index.html"
}
// Needed to allow logos to be uploaded the "Portal"
cors_rule {
allowed_headers = ["*"]
allowed_methods = ["GET", "HEAD", "PUT", "POST"]
allowed_origins = ["*"]
max_age_seconds = 3000
}
tags {
Finance = "dev_env"
Environment = "${var.env}"
}
}
【问题讨论】:
标签: amazon-s3 terraform terraform-provider-aws