С учетной записью службы A, у которой есть настраиваемая роль со списком разрешений, я создаю новый экземпляр, используя API экземпляра вставки. Я хотел бы добавить учетную запись службы B к создаваемому экземпляру и предоставить ему определенные области доступа. Я устанавливаю соответствующие поля в теле json.
Вызов API возвращает 200 (ОК), но в фоновом режиме происходит сбой с «INVALID_ARGUMENT» и «SERVICE_ACCOUNT_ACCESS_DENIED». (наблюдается в журналах Stackdriver)
Есть ли разрешение, которое я пропускаю в служебной учетной записи A? Предоставление редактору проектов доступа к нему работает, но я хотел бы сузить точные требуемые разрешения.
Список разрешений учетной записи службы A имеет
compute.addresses.create
compute.addresses.createInternal
compute.addresses.delete
compute.addresses.deleteInternal
compute.addresses.use
compute.addresses.useInternal
compute.disks.create
compute.disks.createSnapshot
compute.disks.delete
compute.disks.get
compute.disks.list
compute.disks.setLabels
compute.disks.use
compute.disks.useReadOnly
compute.images.useReadOnly
compute.instances.addAccessConfig
compute.instances.attachDisk
compute.instances.create
compute.instances.delete
compute.instances.deleteAccessConfig
compute.instances.detachDisk
compute.instances.get
compute.instances.getIamPolicy
compute.instances.list
compute.instances.setDeletionProtection
compute.instances.setDiskAutoDelete
compute.instances.setIamPolicy
compute.instances.setLabels
compute.instances.setMachineResources
compute.instances.setMachineType
compute.instances.setMetadata
compute.instances.setMinCpuPlatform
compute.instances.setScheduling
compute.instances.setServiceAccount
compute.instances.setShieldedVmIntegrityPolicy
compute.instances.setTags
compute.instances.start
compute.instances.startWithEncryptionKey
compute.instances.stop
compute.instances.update
compute.instances.updateAccessConfig
compute.instances.updateNetworkInterface
compute.instances.updateShieldedVmConfig
compute.instances.use
compute.networks.get
compute.networks.use
compute.networks.useExternalIp
compute.projects.get
compute.regions.list
compute.snapshots.create
compute.snapshots.delete
compute.snapshots.get
compute.snapshots.setLabels
compute.snapshots.useReadOnly
compute.subnetworks.get
compute.subnetworks.list
compute.subnetworks.use
compute.subnetworks.useExternalIp
compute.zones.list
iam.serviceAccounts.update
resourcemanager.projects.get