Javascript Can';在Google云平台中,通过api为角色/编辑器用户添加用户
我一直在尝试使用api在Google云平台中添加project editor的用户 我使用的API是Javascript Can';在Google云平台中,通过api为角色/编辑器用户添加用户,javascript,google-apps-script,google-cloud-platform,google-cloud-iam,Javascript,Google Apps Script,Google Cloud Platform,Google Cloud Iam,我一直在尝试使用api在Google云平台中添加project editor的用户 我使用的API是资源管理器API setIampolicy 要添加用户,请使用Google应用程序脚本 程序 使用[Resource Manager API getIampolicy]获取Google云平台上的当前所有策略 添加用户并修复1.0响应json 使用[ResourceManager API setIampolicy]发布2.json 但是,我无法添加用户。 出现以下错误/异常: { "erro
资源管理器API setIampolicy
要添加用户,请使用Google应用程序脚本
程序
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.cloudresourcemanager.v1.ProjectIamPolicyError",
"type": "SOLO_REQUIRE_TOS_ACCEPTOR",
"role": "roles/owner"
}
]
}
}
其他资料
我可以通过[Try it!]的文档来完成,但不能通过谷歌应用程序脚本来完成
我使用OAuth库的Google应用程序脚本和OAuth身份验证
为什么?不要使用您尝试使用的方法(使用get iam policy编辑JSON/YAML文件拉取iam策略,这将使用set iam policy推送更改),因为这是一种不好的做法,文件中的小错误可能会导致无法访问您的项目。也就是说,你处理的数据太多了,你要拉一个完整的文件,编辑它,然后把它推回去重新处理(所有的文件) 你应该使用
gcloud [GROUP] add-iam-policy-binding [RESOURCE-NAME] --role
[ROLE-ID-TO-GRANT] --member user:[USER-EMAIL]
和
gcloud [GROUP] remove-iam-policy-binding [RESOURCE-NAME] --role
[ROLE-ID-TO-GRANT] --member user:[USER-EMAIL]
相反
gcloud [GROUP] remove-iam-policy-binding [RESOURCE-NAME] --role
[ROLE-ID-TO-GRANT] --member user:[USER-EMAIL]
例如:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--role roles/editor \
--member serviceAccount:$SA_EMAIL
这两种方法更好,因为:
- 与编辑JSON/YAML相比,更改更简单,工作量更少,更不容易出错
- 您将避免竞争条件,因为您可以同时执行多个角色绑定,并且它们不会相互确认
gcloud [GROUP] add-iam-policy-binding [RESOURCE-NAME] --role
[ROLE-ID-TO-GRANT] --member user:[USER-EMAIL]
和
gcloud [GROUP] remove-iam-policy-binding [RESOURCE-NAME] --role
[ROLE-ID-TO-GRANT] --member user:[USER-EMAIL]
相反
gcloud [GROUP] remove-iam-policy-binding [RESOURCE-NAME] --role
[ROLE-ID-TO-GRANT] --member user:[USER-EMAIL]
例如:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--role roles/editor \
--member serviceAccount:$SA_EMAIL
这两种方法更好,因为:
- 与编辑JSON/YAML相比,更改更简单,工作量更少,更不容易出错
- 您将避免竞争条件,因为您可以同时执行多个角色绑定,并且它们不会相互确认
gcloud[GROUP]删除iam策略绑定[RESOURCE-NAME]--角色[role-ID-TO-GRANT]--成员用户:[user-EMAIL]
谢谢! 如何使用gcloud命令自动添加project editor的用户?云调度器或GCE或Composer的GAE或cron?我想每周一自动添加电子表格中列出的用户。嘿@takechoco,你应该为此创建另一个stackoverflow问题。但是,如果你想实现你所要求的用例,简单地说:1-创建一个添加问题2中的角色的应用程序-创建一个每周一运行的应用程序,它的目标应该是你所创建的函数的url。最后一件事,请接受我的回答,以提高社区的知名度。@Methkalkalawi还有其他类似的吗gcloud[GROUP]删除iam策略绑定[RESOURCE-NAME]--角色[role-ID-TO-GRANT]--成员用户:[user-EMAIL]