Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';在Google云平台中,通过api为角色/编辑器用户添加用户_Javascript_Google Apps Script_Google Cloud Platform_Google Cloud Iam - Fatal编程技术网

Javascript Can';在Google云平台中,通过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在Google云平台中添加project editor的用户

我使用的API是
资源管理器API setIampolicy

要添加用户,请使用Google应用程序脚本

程序

  • 使用[Resource Manager API getIampolicy]获取Google云平台上的当前所有策略
  • 添加用户并修复1.0响应json
  • 使用[ResourceManager API setIampolicy]发布2.json
  • 但是,我无法添加用户。 出现以下错误/异常:

    {
      "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相比,更改更简单,工作量更少,更不容易出错
    • 您将避免竞争条件,因为您可以同时执行多个角色绑定,并且它们不会相互确认

    不要使用您尝试使用的方法(使用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相比,更改更简单,工作量更少,更不容易出错
    • 您将避免竞争条件,因为您可以同时执行多个角色绑定,并且它们不会相互确认

    您不能以编程方式使未接受谷歌云平台服务条款的用户成为所有者。确保用户接受ToS或使用组织(项目和用户都是组织/域的一部分)我应该如何通过访问console.Cloud.Google.com接受ToS来接受谷歌云平台的服务条款。但我无法添加用户。[试穿]没问题。但GAS是错误的。您不能通过编程方式使未接受谷歌云平台服务条款的用户成为所有者。确保用户接受ToS或使用组织(项目和用户都是组织/域的一部分)我应该如何通过访问console.Cloud.Google.com接受ToS来接受谷歌云平台的服务条款。但我无法添加用户。[试穿]没问题。但是汽油是错误的,谢谢! 如何使用gcloud命令自动添加project editor的用户?云调度器或GCE或Composer的GAE或cron?我想每周一自动添加电子表格中列出的用户。嘿@takechoco,你应该为此创建另一个stackoverflow问题。但是,如果你想实现你所要求的用例,简单地说:1-创建一个添加问题2中的角色的应用程序-创建一个每周一运行的应用程序,它的目标应该是你所创建的函数的url。最后一件事,请接受我的回答,以提高社区的知名度。@Methkalkalawi还有其他类似的吗
    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]