StorageException: server@<project>.iam.gserviceaccount.com не имеет storage.buckets.create доступ к проекту - PullRequest
0 голосов
/ 26 января 2020

Во время запуска моего сервера я получаю следующую ошибку:

StorageException: server@<project>.iam.gserviceaccount.com does not have storage.buckets.create access to project <project-id>.

Отсюда документы Я понимаю, что добавление Storage Object Creator в роли моей учетной записи службы должно быть достаточным для получения разрешений storage.buckets.create.

Однако приведенное выше исключение говорит мне, что я что-то упустил.

1 Ответ

0 голосов
/ 27 января 2020

Роль Object Creator предназначена для создания объектов хранения, а не контейнеров. Для администрирования сегментов необходима роль администратора хранилища.

Чтобы создать учетную запись службы из облачной оболочки:

gcloud iam service-accounts create buckets-sa \
    --description "Storage admin Service account" \
    --display-name "buckets-sa"
# Main role to create Buckets in Google Storage
gcloud projects add-iam-policy-binding [PROJECT] \
  --member serviceAccount:buckets-sa@[PROJECT].iam.gserviceaccount.com \
  --role roles/storage.admin
# Role for testing: Service Account Token Creator
gcloud projects add-iam-policy-binding [PROJECT] \
  --member serviceAccount:buckets-sa@[PROJECT].iam.gserviceaccount.com \
  --role roles/iam.serviceAccountTokenCreator
# Create Key
gcloud iam service-accounts keys create key-file.json \
 --iam-account buckets-sa@[PROJECT].iam.gserviceaccount.com 
# Test: Impersonate service account 
gcloud auth activate-service-account buckets-sa@[PROJECT].iam.gserviceaccount.com --key-file=key-file.json
gsutil -i "buckets-sa@[PROJECT].iam.gserviceaccount.com" mb gs://new-bucket
# To restore your account in Cloud Shell uncomment execute the following line.
# gcloud auth login
...