Я использую Google Cloud Resource Manager API с авторизацией учетной записи службы в скрипте Google Apps. В программе я заинтересован в обновлении ролей проекта консоли разработчика.API диспетчера облачных ресурсов Google - предоставить владельцу роль владельца
В частности, я пытаюсь изменить владельца проекта разработчика Console редактору и другому пользователю как владельцу. Это, я считаю, с точки зрения HTTP запроса полезной нагрузки будет выглядеть следующим образом:
// before (taken from response of getIamPolicy REST call)
{
"bindings": [{
"role": "roles/owner",
"members": ["user:[email protected]"]
}],
"version": "0",
"etag": "acbqwcada="
}
// after (modified policy) used in setIamPolicy REST call
{
"bindings": [{
"role": "roles/owner",
"members": ["user:[email protected]"]
},
{
"role": "roles/editor",
"members": ["user:[email protected]"]
}],
"version": "0",
"etag": "acbqwcada="
}
Несколько вещей, которые я заметил:
При изменении тока владелец (электронной почты пользователя) в редактор и добавляющих новый владелец (адрес электронной почты пользователя), вызов API возвращает
SOLO_MUST_INVITE_OWNERS
. Здесь я олицетворяю учетную запись службы в качестве первоначального владельца проекта со всем необходимым доступом к доменуОднако, когда я делаю тот же звонок в Google API Explorer с той же полезной нагрузкой, его работа отлично!
Документация Google Cloud и Identity Management выглядит запутанной. Он говорит в одном пункте
"Cloud Resource Manager IAM methods only support granting the owner role to user and serviceAccount"
, а в другом месте"A user cannot be granted owner access using setIamPolicy(). The user must be granted the owner role using the Cloud Platform Console and he must explicitly accept the invitation."
- Мне интересно, есть ли другой способ установить политики, кроме setIamPolicy()?
В этом [doc] (https://cloud.google.com/iam/docs/managing-policies) упоминаемые в нем методы управления облачными ресурсами IAM поддерживают только предоставление роли владельца пользователю и serviceAccount. " – Surya
Только пользователи или учетные записи служб могут быть владельцами проекта (имеется в виду только «пользователь»: foo @ ... »' и '' serviceAccount: bar @ ... "' являются поддерживаемыми членами в привязке владельца, но CRM API в настоящее время не поддерживает использование 'setIamPolicy', чтобы сделать их собственниками. Пока что единственный способ сделать это - через консоль Cloud Platform. – Zack