Восстановление доступа после первоначальной подготовки неправильных областей для экземпляра - PullRequest
0 голосов
/ 07 ноября 2018

Я недавно создал виртуальную машину, но по ошибке дал учетной записи службы по умолчанию Storage: Read Only разрешения вместо запланированных Read Write в разделе «Идентификация и доступ к API», поэтому операции записи GCS с виртуальной машины теперь не выполняются.

enter image description here enter image description here

Я осознал свою ошибку, поэтому, следуя совету этого ответа , я остановил ВМ, изменил область действия на Read Write и запустил ВМ. Однако, когда я вхожу по SSH, я все еще получаю 403 ошибки при попытке создать сегменты.

$ gsutil mb gs://some-random-bucket
Creating gs://some-random-bucket/...
AccessDeniedException: 403 Insufficient OAuth2 scope to perform this operation.
Acceptable scopes: https://www.googleapis.com/auth/cloud-platform

Как я могу это исправить? Я использую учетную запись службы по умолчанию и не имею разрешений IAM для возможности создания новых.

$ gcloud auth list
Credentialed Accounts
ACTIVE  ACCOUNT
*       (projectnum)-compute@developer.gserviceaccount.com

Ответы [ 3 ]

0 голосов
/ 11 ноября 2018

Модель безопасности имеет две вещи: разрешения API и IAM. Доступ определяется по И из них. Таким образом, вам требуется приемлемая область действия и достаточные привилегии IAM для выполнения любых действий.

  • Области API привязаны к учетным данным. Они представлены в виде URL, например, https://www.googleapis.com/auth/cloud-platform.
  • Разрешения IAM привязаны к личности. Они настраиваются в разделе IAM & admin> IAM облачной консоли.

Это означает, что вы можете иметь 2 виртуальные машины с учетной записью службы по умолчанию, но обе имеют разные уровни доступа.

Для простоты вы обычно хотите просто установить разрешения IAM и использовать область проверки подлинности API облачной платформы.

Чтобы проверить, есть ли у вас эта настройка, перейдите на виртуальную машину в облачной консоли, и вы увидите что-то вроде:

Области доступа к облачному API

Разрешить полный доступ ко всем облачным API

При подключении SSH к виртуальной машине по умолчанию gcloud будет зарегистрирован как учетная запись службы на виртуальной машине. Я бы не рекомендовал входить в систему под своим именем, иначе вы более или менее нарушите конфигурацию gcloud для чтения учетной записи службы по умолчанию.

Как только вы настроите эту настройку, вы сможете правильно использовать gsutil.

0 голосов
/ 13 ноября 2018

Я предлагаю вам попробовать добавить область «облачная платформа» к экземпляру, выполнив команду gcloud ниже

gcloud альфа-вычисления экземпляров set-scopes INSTANCE_NAME [--zone = ZONE] [--scopes = [SCOPE,…] [--service-account = SERVICE_ACCOUNT

В качестве области действия введите "https://www.googleapis.com/auth/cloud-platform", поскольку он предоставляет полный доступ ко всем ресурсам Google Cloud Platform.

Вот документация gcloud

0 голосов
/ 10 ноября 2018

Попробуйте создать корзину Google Cloud Storage с вашей учетной записью.

Введите gcloud auth login и получите доступ к предоставленной ссылке, скопировав код и вставив его в командную строку.

Тогда сделай gsutil mb gs://bucket-name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...