У меня есть корзина GCP, которая предназначена для чтения всеми пользователями. Целью этого сегмента является размещение изображений для веб-сайта.
Я использую унифицированный доступ на уровне сегмента , и я предоставил 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