Понимание учетной записи службы и областей для экземпляров вычислений gcloud

Я создал вычислительный экземпляр gcloud, в котором я хотел бы выполнять операции в одном проекте с использованием областей видимости storage.objects.get и firebasedatabase.instances.update.

Каждый экземпляр создается с использованием учетной записи службы Compute Engine по умолчанию [email protected], которая имеет Editor роли в проекте. Из-за этого я предположил, что экземпляр будет иметь необходимые разрешения при инициализации с использованием

admin.initializeApp({
  credential: admin.credential.applicationDefault()
});

Однако запрос экземпляра firestore приводит к ошибке Request had insufficient authentication scopes.

Теперь я заметил, что если я gcloud compute instances describe my-instance, в результате упоминаются как электронное письмо, так и области для serviceAccounts:

"serviceAccounts": [
    {
      "email": "[email protected]",
      "scopes": [
        "https://www.googleapis.com/auth/devstorage.read_only",
        "https://www.googleapis.com/auth/logging.write",
        "https://www.googleapis.com/auth/monitoring.write",
        "https://www.googleapis.com/auth/pubsub",
        "https://www.googleapis.com/auth/service.management.readonly",
        "https://www.googleapis.com/auth/servicecontrol",
        "https://www.googleapis.com/auth/trace.append"
      ]
    }
  ]

Какая связь между адресом электронной почты учетной записи службы и предопределенными областями действия? Экземпляр не применяет все области учетной записи службы?

Даже если я захочу скорректировать свои области видимости, мне понадобится помощь в переводе определений storage.objects.get и firebasedatabase.instances.update iam в формат https://www.googleapis.com/auth/scope. (https://www.googleapis.com/auth/firebasedatabase.instances.update не существует)


person Raven    schedule 25.09.2019    source источник


Ответы (1)


Такие роли, как Владелец, Редактор и Наблюдатель, мы называем примитивными ролями [1]. Они не содержат разрешений для каждого ресурса в GCP. Я бы предложил создать собственную роль с желаемыми разрешениями или выбрать соответствующую предопределенную роль [2].

[1] https://cloud.google.com/iam/docs/understanding-roles#primitive_roles

[2] https://cloud.google.com/iam/docs/understanding-roles#firebase-roles

person Alexandre    schedule 25.09.2019