在设置 ELB 访问日志时如何排除 S3 相关错误?

上次更新日期:2022 年 11 月 11 日

我在使用 Amazon Simple Storage Service(Amazon S3)桶设置弹性负载均衡(ELB)访问日志时遇到了错误。

简短描述

要对负载均衡器使用访问日志,负载均衡器和 Amazon S3 存储桶必须位于同一账户中。您还必须将桶策略附加到 Amazon S3 桶,以允许 ELB 对桶的写入权限。根据您收到的错误消息,请参阅相关的解决方法部分。

注意:网络负载均衡器(NLB)仅支持传输层安全性协议(TLS)侦听器的访问日志。该日志包含有关向 Network Load Balancer 发出的 TLS 请求的信息。不支持传输控制协议(TCP)。

解决方法

“S3Bucket: my-access-log-bucket is not located in the same region with ELB: app/my-load-balancer/50dc6c495c0c9188(S3Bucket:my-access-log-bucket 与 ELB 不在同一区域:app/my-load-balancer/50dc6c495c0c9188)”

此错误表示您的 Amazon S3 存储桶和负载不在同一区域中。Amazon S3 存储桶可以位于不同的区域,但必须与负载均衡器位于同一账户中。

“Access Denied for bucket: my-access-log-bucket.Please check S3bucket permission(存储桶的访问被拒绝:my-access-log-bucket。请检查 S3bucket 权限)”

此错误表示 Amazon S3 存储桶没有授予写入访问日志权限的策略。

要解决此错误,请验证存储桶策略是否授予将日志写入存储桶的权限。确认您的存储桶名称和前缀的占位符是否正确。根据负载均衡器的区域,确认您拥有用于弹性负载均衡的 AWS 账户的正确 ID。

有关所需权限的更多信息,请参阅:

Amazon S3 托管密钥选项可用于加密所有类型的 ELB 的访问日志。此外,网络负载均衡器支持 AWS KMS 客户管理的密钥来加密访问日志。您不能使用 AWS KMS AWS 托管式密钥加密 ELB 访问日志。

"The requested bucket name is not available.The bucket namespace is shared by all users of the system.Please select a different name and try again.(请求的存储桶名称不可用。存储桶命名空间由系统的所有用户共享。请选择其他名称,然后重试。)”

如果您收到此错误,请验证您的访问日志存储桶前缀不包含“AWSLogs”。

其他问题排查方法

如果您验证了 S3 存储桶策略和配置,但仍无法查看日志,请验证负载均衡器是否正在接收流量。要验证负载均衡器是否正在接收流量,请检查 ActiveConnectionCountRequestCount 指标


这篇文章对您有帮助吗?


您是否需要账单或技术支持?