Public 存储桶要求用户登录
Public bucket requires user to be logged in
我有一个 GCP 存储桶,旨在供所有用户读取。此存储桶的用途是为网站托管图像。
我正在使用 uniform bucket-level access,并且我已经授予 allUsers
和 allAuthenticatedUsers
访问存储桶的权限。
这里是 gsutil iam get
的输出(一些信息被编辑):
$ gsutil iam get gs://my-bucket
{
"bindings": [
{
"members": [
"user:admin@company.com"
],
"role": "roles/storage.admin"
},
{
"members": [
"projectEditor:my-project",
"projectOwner:my-project",
],
"role": "roles/storage.legacyBucketOwner"
},
{
"members": [
"allAuthenticatedUsers",
"allUsers",
"projectViewer:my-project",
],
"role": "roles/storage.legacyBucketReader"
},
{
"members": [
"user:admin@company.com"
],
"role": "roles/storage.objectAdmin"
},
{
"members": [
"allAuthenticatedUsers",
"allUsers",
],
"role": "roles/storage.objectViewer"
}
],
"etag": "<redacted>"
}
请注意 allUsers
和 allAuthenticatedUsers
具有 roles/storage.objectViewer
的作用。
但是,当我尝试访问这些对象之一时,我看到了一个登录页面。然后我可以以 任何用户 的身份登录并访问该对象。这几乎就像 GCP 忽略了 allUsers
指令并使用 allAuthenticatedUsers
,但我不明白为什么它会那样做。
要访问该对象,我使用的是 URL,如下所示:
https://storage.cloud.google.com/bucket/path/to/file.png
尝试以下任何格式url在存储桶中形成对象以访问
没有登录
http(s)://storage.googleapis.com/<bucket>/<object>
http(s)://<bucket>.storage.googleapis.com/<object>
我有一个 GCP 存储桶,旨在供所有用户读取。此存储桶的用途是为网站托管图像。
我正在使用 uniform bucket-level access,并且我已经授予 allUsers
和 allAuthenticatedUsers
访问存储桶的权限。
这里是 gsutil iam get
的输出(一些信息被编辑):
$ gsutil iam get gs://my-bucket
{
"bindings": [
{
"members": [
"user:admin@company.com"
],
"role": "roles/storage.admin"
},
{
"members": [
"projectEditor:my-project",
"projectOwner:my-project",
],
"role": "roles/storage.legacyBucketOwner"
},
{
"members": [
"allAuthenticatedUsers",
"allUsers",
"projectViewer:my-project",
],
"role": "roles/storage.legacyBucketReader"
},
{
"members": [
"user:admin@company.com"
],
"role": "roles/storage.objectAdmin"
},
{
"members": [
"allAuthenticatedUsers",
"allUsers",
],
"role": "roles/storage.objectViewer"
}
],
"etag": "<redacted>"
}
请注意 allUsers
和 allAuthenticatedUsers
具有 roles/storage.objectViewer
的作用。
但是,当我尝试访问这些对象之一时,我看到了一个登录页面。然后我可以以 任何用户 的身份登录并访问该对象。这几乎就像 GCP 忽略了 allUsers
指令并使用 allAuthenticatedUsers
,但我不明白为什么它会那样做。
要访问该对象,我使用的是 URL,如下所示:
https://storage.cloud.google.com/bucket/path/to/file.png
尝试以下任何格式url在存储桶中形成对象以访问 没有登录
http(s)://storage.googleapis.com/<bucket>/<object>
http(s)://<bucket>.storage.googleapis.com/<object>