如何排查将弹性负载均衡访问日志上传到 Amazon S3 存储桶时的权限问题?

上次更新日期:2022 年 5 月 16 日

我在将弹性负载均衡访问日志上传到 Amazon Simple Storage Service(Amazon S3)存储桶时收到错误。如何排查此问题?

简短描述

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

注意:Network Load Balancers(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 托管的加密密钥(SSE-S3)。Network Load Balancer 访问日志不支持其他加密方法,例如 AWS KMS 密钥。

“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 指标


这篇文章对您有帮助吗?


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