如何删除所有 Google Cloud Platform (GCP) 资源中的资源级权限

问题描述 投票:0回答:1

如何删除所有 Google Cloud Platform (GCP) 资源中的资源级权限? 例如,计算虚拟机实例可共享给另一个 GCP 用户,而无需分配 IAM 角色。有没有办法使用GCP SDK终端命令或GCP控制台来摆脱资源级权限?

我尝试了下面的终端命令,但不起作用

 gcloud resource-manager members remove [email protected] --project=project_name --member-type="roles/viewer"
google-cloud-platform
1个回答
0
投票

正如John Hanley评论中指出的那样:

对于支持 IAM 策略的资源,您必须管理每一项。

这意味着:

  • 确定您要删除权限的特定 GCP 资源(例如,计算虚拟机实例、Cloud Storage 存储桶)。
  • 使用
    gcloud
    命令或 GCP Console 列出每个资源的当前 IAM 政策。
  • 从每个资源的 IAM 策略中删除用户或角色。

例如,对于计算虚拟机实例,您将:

  • 列出实例的 IAM 策略

    gcloud compute instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --format=json
    
  • 通过创建排除要删除的用户或角色的修改后的 IAM 策略,从 IAM 策略中删除用户。
    在文本编辑器中打开

    policy.json
    。您将看到一个带有多个绑定的 JSON 结构。每个绑定将一个角色与一组成员(用户、服务帐户等)相关联。
    找到用户所属角色的绑定,然后从
    members
    列表中删除该用户。

    例如,如果

    [email protected]
    具有
    roles/viewer
    的角色,则找到并编辑相应的部分:

    {
    "bindings": [
        {
        "role": "roles/viewer",
        "members": [
            "user:[email protected]",
            // other members
        ]
        },
        // other bindings
    ]
    }
    

    "user:[email protected]"
    数组中删除
    members

  • 将新策略应用到资源。

    gcloud compute instances set-iam-policy INSTANCE_NAME policy.json --project=PROJECT_ID
    

同样,您必须对每种资源类型和实例重复此过程,因为没有全局命令可以立即从所有资源中删除用户。

© www.soinside.com 2019 - 2024. All rights reserved.