7

我正在使用 Terraform 在 AWS 上预置一些资源。运行 Terraform 的“计划”步骤失败并出现以下模糊错误(例如):

Error: Error loading state: AccessDenied: Access Denied
        status code: 403, request id: ABCDEF12345678, host id: SOMELONGBASE64LOOKINGSTRING===

给定一个请求 ID 和一个主机 ID,是否可以更深入地了解问题所在?

设置 TF_LOG=DEBUG(或其他级别)似乎有帮助,但我很好奇是否有 CLI 命令可以从 CloudTrail 或其他东西获取更多信息。

谢谢!

4

1 回答 1

4

Terraform 不会有任何有关拒绝访问的特权信息,但 AWS 有。因为您提到 S3 是我的答案基于查找 S3 请求 ID 的问题。您有几个选项可以在 AWS 中找到给定请求 ID 的请求。

  1. 在 AWS CloudTrail 中创建跟踪。CloudTrail 默认会在存储桶级别记录 API 调用(包括请求 ID)。如果请求是针对特定对象的,您需要在创建跟踪时启用 S3 数据事件。
  2. 打开S3 服务器访问日志

您可以在 S3 的日志文件中手动搜索请求 ID,也可以使用 Athena。对于 CloudTrail,您还可以配置 CloudWatch Logs 并在通过搜索栏创建的日志组中进行搜索。

CloudTrail 记录来自所有服务的 API 调用,而不仅仅是 S3。除了与 S3 相关的问题外,它可能是诊断问题的有用工具。请注意,日志显示在 CloudTrail 中最多可能有 15 分钟的延迟。

于 2018-03-28T04:31:59.117 回答