Я создал вычислительный экземпляр 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
не существует)