有什么工具/命令可以检查 Google Cloud Storage 存储桶是否真的无法供公众访问?

有什么工具/命令可以检查 Google Cloud Storage 存储桶是否真的无法供公众访问?

我在我的 Google App Engine 日志中发现了几个奇怪的请求:

2620:0:1000:3001:1c2f:1188:9a2a:f8d8 - - [26/Oct/2015:16:29:55 -0700]“HEAD /an/object/path HTTP/1.1”404 - -“curl/7.35.0”“xxx.appspot.com”ms=2 cpu_ms=0 cpm_usd=0 instance=- app_engine_release=1.9.27 trace_id=-

其中 /an/object/path 是 Google Cloud Storage 默认存储桶中对象的路径,用户应该不知道该路径。

我曾尝试使用另一个帐户列出存储桶内容:

gsutil ls gs://xxx.appspot.com

给出“AccessDeniedException:403 Forbidden”,并且

https://storage.cloud.google.com/xxx.appspot.com/

什么也没显示。

gsutil acl 获取 gs://xxx.appspot.com/...

输出:

[
  {
    "entity": "project-owners-1096471376163",
    "projectTeam": {
      "projectNumber": "1096471376163",
      "team": "owners"
    },
    "role": "OWNER"
  },
  {
    "entity": "project-editors-1096471376163",
    "projectTeam": {
      "projectNumber": "1096471376163",
      "team": "editors"
    },
    "role": "OWNER"
  },
  {
    "entity": "project-viewers-1096471376163",
    "projectTeam": {
      "projectNumber": "1096471376163",
      "team": "viewers"
    },
    "role": "READER"
  },
  {
    "entity": "user-00b4903a978e00507e97b8a0898de74c6896e15ea3bf3e4c4fcdcbc4eb209c8f",
    "entityId": "00b4903a978e00507e97b8a0898de74c6896e15ea3bf3e4c4fcdcbc4eb209c8f",
    "role": "OWNER"
  }
]

所以我怀疑

  1. 我的帐户被黑客入侵,并且/或者
  2. 存储桶/对象的权限设置错误,以及/或
  3. 有一些有缺陷的 API 可能可以列出/查询存储桶内容。

假设我的账户被黑了,黑客可以直接获取 bucket 对象,他/她实际上并不需要向 GAE 发送请求,所以 2 和 3 的可能性也很高。

所以我想问一下我可以使用什么工具/命令来检查我的存储桶是否真的可以安全地防止公众访问。

对于情况 3,也许许多其他帐户也会受到影响。

答案1

正如解释的那样文档,您可以使用 gsutil 来完成。

就像是 :

gsutil acl get gs://«path-to-object»

从我读到的您更新的问题来看,回顾我刚刚链接的相同文档,您可以看到返回的含义如下:

项目业主还拥有该物体的所有权,

项目编辑者也拥有该对象的所有权,

项目查看者还具有该对象的读取权限,

第一个上传该对象的人拥有它的所有权。

相关内容