为何Cloud Logging中未显示Google Cloud Storage的「403: Access Denied」错误?
解决Cloud Storage 403错误日志未显示的问题
1. 启用Cloud Storage数据访问日志
默认情况下Cloud Storage不会自动记录所有操作日志,需手动配置:
- 进入Cloud Storage控制台,找到目标存储桶
- 切换到权限标签页,点击日志记录选项
- 启用数据访问日志(覆盖读、写、删除操作),指定一个存储桶用于存放日志(可选择当前桶或其他桶,确保日志桶给
storage-logging@system.gserviceaccount.com分配了写入权限) - 保存配置后,后续操作日志会同步到Cloud Logging的
cloudstorage.googleapis.com/data_access日志流
2. 调整Log Explorer查询条件
如果已启用日志但未找到目标错误,使用精准查询语句:
resource.type="gcs_bucket" AND logName="projects/[你的项目ID]/logs/cloudstorage.googleapis.com%2Fdata_access" AND severity="ERROR" AND protoPayload.status.code=403
- 替换
[你的项目ID]为实际项目ID,可添加时间范围(如最近1小时)缩小检索范围 - 若从特定Compute Engine实例发起请求,追加
resource.labels.instance_id="[你的实例ID]"过滤实例日志
3. 识别请求主体
日志的protoPayload.authenticationInfo.principalEmail字段会明确显示发起请求的身份:
- Compute Engine服务账号:格式为
[服务账号ID]@[项目ID].iam.gserviceaccount.com - 操作系统用户:显示本地用户关联的个人邮箱或IAM身份(如通过
gcloud auth login登录的账号)
4. 排查日志未生成的额外情况
- 确认403错误确实由Cloud Storage返回:检查
gsutil cp等工具的终端输出,排除本地权限或网络问题 - 等待日志延迟:Cloud Logging日志可能存在数分钟延迟,执行操作后稍作等待再查询
- 验证日志桶权限:确保
storage-logging@system.gserviceaccount.com拥有日志桶的storage.objects.create权限
内容的提问来源于stack exchange,提问作者Thorsten Staerk
相关产品推荐
相关产品推荐

