Недостаточная ошибка областей проверки подлинности при использовании Google API

Я настроил Google SDK для использования Google API сУчетные данные приложения по умолчанию, Для моего локального компьютера создал JSON-файл учетных данных и установите его путь какGOOGLE_APPLICATION_CREDENTIALS в качестве переменной среды. Это работает, как и ожидалось, без проблем.

Однако при развертывании приложения на виртуальной машине Google Cloud выдается следующая ошибка:

[Google_Service_Exception]                                             
{                                                                      
    "error": {                                                           
      "code": 403,                                                       
      "message": "Request had insufficient authentication scopes.",      
      "errors": [                                                        
        {                                                                
          "message": "Request had insufficient authentication scopes.",  
          "domain": "global",                                            
          "reason": "forbidden"                                          
        }                                                                
      ],                                                                 
      "status": "PERMISSION_DENIED"                                      
    }                                                                    
}

Согласнодокументациявстроенная учетная запись службы должна быть связана с экземпляром виртуальной машины. Чтобы заставить его работать, я пытался использовать json-файл с учетными данными, как на локальной машине (что работало нормально), но он тоже не работал.

Отметим, что сообщение об ошибке касается областей, но не проблемы с аутентификацией. Что нужно сделать, чтобы он работал на экземпляре виртуальной машины Compute Engine?

Чтобы дать код инициализации клиента:

$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Pubsub::PUBSUB);

Ответы на вопрос(2)

Ваш ответ на вопрос