Кажется, что обновления разрешений для учетной записи службы Compute Engine по умолчанию недостаточно для установки правильного уровня доступа, который вы пытаетесь предоставить вашему экземпляру Compute Engine, поскольку, как описано здесь :
Когда вы настраиваете экземпляр для запуска в качестве учетной записи службы, уровень доступа к учетной записи службы определяется комбинацией областей доступа, предоставленных экземпляру, и ролей IAM, предоставленных учетной записи службы .
Насколько я понимаю, вы предоставляете роли IAM только учетной записи службы, поэтому для обеспечения желаемого уровня доступа вам также следует обновить области доступа для вашего экземпляра Compute Engine.
Когда вы создаете новый экземпляр Compute Engine, в области доступа он выбирается по умолчанию «Разрешить доступ по умолчанию», как вы можете видеть здесь Новый экземпляр . При этом доступе по умолчанию отключен доступ к Cloud SQL и доступ к облачному хранилищу только для чтения.
Вы можете обратиться к этой документации , которая объясняет, как изменить области доступа для экземпляра Compute Engine:
Чтобы изменить учетную запись службы экземпляра и области доступа, экземпляр должен быть временно остановлен. Чтобы остановить ваш экземпляр, прочитайте документацию для Остановка экземпляра . После изменения учетной записи службы или областей доступа не забудьте перезапустить экземпляр .
После того как вы остановите свой экземпляр, вы можете изменить области доступа на «Установить доступ для каждого API» или «Разрешить полный доступ ко всем облачным API».
Если вы решите установить доступ для каждого API, вам придется искать «Cloud SQL», а затем выбрать «Enabled», а также «Storage» и выбрать желаемую опцию (только для чтения, только для записи, для чтения и записи, Full)
Для получения дополнительной информации о областях доступа см. этот документ , а для получения дополнительной информации о запуске экземпляров Compute Engine в качестве учетной записи службы (включая учетную запись службы по умолчанию) см. этот документ .