使用 terraform 创建 aws_flow_log 时出现访问错误

Access error while creating an aws_flow_log using terraform

我正在为 VPC 创建流日志,将日志发送到 cloudwatch 组。我使用的是来自此 link 的 CloudWatch 日志记录部分的完全相同的代码:https://www.terraform.io/docs/providers/aws/r/flow_log.html 并且只是将 vpc_id 更改为我的 VPC 的 ID。

虽然流日志已创建,但大约 15 分钟后状态从 "Active" 变为 "Access error: The log destination is not accessible."

1) 这不是政策问题,因为当我从控制台执行相同操作时,我使用的是 terraform 创建的相同 IAM 角色,并且工作正常。

2) 我尝试输入一个已存在的 cloudwatch 日志组的 ARN,而不是从 terraform 代码创建一个,但效果不佳。

请让我知道哪里出错了。

原来是terraform的bug。看来问题 https://github.com/terraform-providers/terraform-provider-aws/issues/6373 将在下一个版本 1.43.0(提供商 AWS)中得到解决。

要解决此问题,请查看我的示例:

resource "aws_flow_log" "management-vpc-flow-log-reject" {
  log_destination = "arn:aws:logs:ap-southeast-2:XXXXXXXXXXX:log-group:REJECT-TRAFFIC-VPC-SHARED-SERVICES"
  iam_role_arn    = "${aws_iam_role.management-flow-log-role.arn}"
  vpc_id          = "${aws_vpc.management.id}"
  traffic_type    = "REJECT"
}

错误在 log_destinationTerraform 在 ARN 的末尾添加一个“:*”。我通过在 AWS 控制台中手动创建日志组,然后将其导入 terraform,然后执行 terraform state show 来比较两者来对此进行测试。

我的日志组和流现在可以正常工作了。