2016-02-09 6 views
1

Я использую 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()?

ответ

0

Облако ресурсов API-менеджер не поддерживает добавление владельца через setIamPolicy, see the documentation on setIamPolicy:

Чтобы быть добавлен в качестве владельца, пользователь должен быть приглашен через Cloud Platform консоли и должны принять приглашение.

После того, как вы пригласили [email protected] и они приняли (они будут появляться в качестве владельца проекта в консоли Cloud Platform, а также в качестве члена owner связывания возвращаемого getIamPolicy), вы можете сделать setIamPolicy позвонить, чтобы сделать [email protected] a editor.

+0

В этом [doc] (https://cloud.google.com/iam/docs/managing-policies) упоминаемые в нем методы управления облачными ресурсами IAM поддерживают только предоставление роли владельца пользователю и serviceAccount. " – Surya

+0

Только пользователи или учетные записи служб могут быть владельцами проекта (имеется в виду только «пользователь»: foo @ ... »' и '' serviceAccount: bar @ ... "' являются поддерживаемыми членами в привязке владельца, но CRM API в настоящее время не поддерживает использование 'setIamPolicy', чтобы сделать их собственниками. Пока что единственный способ сделать это - через консоль Cloud Platform. – Zack

Смежные вопросы