移除主账号访问边界政策

通过主账号访问边界 (PAB) 政策,您可以限制一组主账号有资格访问的资源。如果您不再希望对主账号集强制执行主账号访问边界政策,可以删除将该政策绑定到主账号集的政策绑定。如果您想从主账号访问边界政策绑定到的所有主账号集中移除该政策,可以将其删除。

从主账号集中移除主账号访问边界政策会产生以下影响之一:

  • 如果主账号集中的主账号不受任何其他主账号访问边界政策的约束,则它们将有资格访问所有 Google Cloud 资源。
  • 如果主账号集中的主账号受其他主账号访问边界政策的约束,则它们只能有资格访问这些政策包含的资源。

准备工作

  • 设置身份验证。

    Select the tab for how you plan to use the samples on this page:

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

  • 阅读主账号访问边界政策概览

删除主账号访问边界政策所需的角色

如需获得删除主账号访问边界政策所需的权限,请让您的管理员为您授予组织的 Principal Access Boundary Admin (roles/iam.principalAccessBoundaryAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色可提供删除主账号访问边界政策所需的 iam.principalaccessboundarypolicies.delete 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

删除主账号访问边界政策绑定所需的角色

删除主账号访问边界政策的政策绑定所需的权限取决于绑定到该政策的主账号集。

如需获得删除主账号访问边界政策的政策绑定所需的权限,请让您的管理员为您授予以下 IAM 角色:

  • 针对组织的 Principal Access Boundary User (roles/iam.principalAccessBoundaryUser)
  • 删除绑定到员工身份联合池的主账号访问边界政策的政策绑定:针对目标员工身份联合池的 IAM Workforce Pool Admin (roles/iam.workforcePoolAdmin)
  • 删除绑定到工作负载身份联合池的主账号访问边界政策的政策绑定:针对拥有目标员工身份联合池的项目的 IAM Workload Identity Pool Admin (roles/iam.workloadIdentityPoolAdmin)
  • 删除绑定到 Google Workspace 网域的主账号访问边界政策的政策绑定:针对组织的 Workspace Pool IAM Admin (roles/iam.workspacePoolAdmin)
  • 删除绑定到项目的主账号集的主账号访问边界政策的政策绑定:针对项目的 Project IAM Admin (roles/resourcemanager.projectIamAdmin)
  • 删除绑定到文件夹的主账号集的主账号访问边界政策的政策绑定:针对文件夹的 Folder IAM Admin (roles/resourcemanager.folderIamAdmin)
  • 删除绑定到组织的主账号集的主账号访问边界政策的政策绑定:针对组织的 Organization Administrator (roles/resourcemanager.organizationAdmin)

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

这些预定义角色可提供删除主账号访问边界政策的政策绑定所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

删除主账号访问边界政策的政策绑定需要以下权限:

  • 针对组织的 iam.principalaccessboundarypolicies.unbind 权限
  • 删除绑定到员工身份联合池的主账号访问边界政策的政策绑定:针对目标员工身份联合池的 iam.workforcePools.deletePolicyBinding
  • 删除绑定到工作负载身份联合池的主账号访问边界政策的政策绑定:针对拥有目标员工身份联合池的项目的 iam.workloadIdentityPools.deletePolicyBinding
  • 删除绑定到 Google Workspace 网域的主账号访问边界政策的政策绑定:针对组织的 iam.workspacePools.deletePolicyBinding
  • 删除绑定到项目的主账号集的主账号访问边界政策的政策绑定:针对项目的 resourcemanager.projects.deletePolicyBinding
  • 删除绑定到文件夹的主账号集的主账号访问边界政策的政策绑定:针对文件夹的 resourcemanager.folders.deletePolicyBinding
  • 删除绑定到组织的主账号集的主账号访问边界政策的政策绑定:针对组织的 resourcemanager.organizations.deletePolicyBinding

您也可以使用自定义角色或其他预定义角色来获取这些权限。

为移除主账号访问边界政策做准备

在移除主账号访问边界政策之前,请决定您要实现以下哪个目标:

  • 让主账号集中的主账号有资格访问所有资源
  • 减少主账号集中的主账号有资格访问的资源数量

以下各部分介绍了实现以上各目标所需执行的步骤。

让主账号有资格访问所有资源

如果您想让主账号集中的主账号有资格访问所有资源,请执行以下操作:

  1. 确定绑定到主账号集的所有主账号访问边界政策
  2. 通过删除相关的政策绑定,移除绑定到主账号集的所有主账号访问边界政策。

如果主账号不受任何主账号访问边界政策的约束,则该主账号有资格访问所有 Google Cloud 资源。

有资格访问资源并不一定意味着用户能够访问资源。如需了解详情,请参阅政策评估

减少主账号有资格访问的资源

如果主账号集中的主账号受多项主账号访问边界政策的约束,则您可以通过移除主账号受约束的一项或多项主账号访问边界政策,减少主账号有资格访问的资源数量。不过,在任何时候都不要移除主账号受约束的所有主账号访问边界政策,否则主账号将有资格访问所有 Google Cloud 资源。

如需移除主账号访问边界政策,同时确保主账号集中的主账号始终受至少一项主账号访问边界政策约束,请按照以下步骤操作:

  1. 确定绑定到主账号集的所有主账号访问边界政策
  2. 确定仅包含您希望主账号集中的主账号有资格访问的资源的主账号访问边界政策。这些是您不会从主账号集中移除的政策。

    如果您没有任何此类政策,请创建新的主账号访问边界政策,其中仅包含您希望主账号有资格访问的资源。然后,将该政策附加到主账号集

  3. 确定包含您不希望主账号集中的主账号有资格访问的资源的主账号访问边界政策。然后,通过删除相关的政策绑定来移除这些主账号访问边界政策。

    如果您想减少特定主账号的访问权限,请为政策绑定添加条件,而不是删除它。

如果您想减少主账号有资格访问的资源数量,但不想移除任何主账号访问边界政策,则可以改为修改主账号受约束的主账号访问边界政策。如需了解如何修改主账号访问边界政策,请参阅修改主账号访问边界政策

从主账号集中移除主账号访问边界政策

在从主账号集中移除主账号访问边界政策之前,请先为移除该政策做准备。然后,通过删除将该政策绑定到主账号集的政策绑定来移除该政策。

您可以使用 Google Cloud 控制台、gcloud CLI 或 IAM REST API 删除政策绑定。

控制台

  1. 在 Google Cloud 控制台中,前往主账号访问权限边界政策页面。

    前往“主账号访问权限边界政策”

  2. 选择拥有您要删除其绑定的主账号访问边界政策的组织。

  3. 点击您要删除其绑定的主账号访问边界政策的政策 ID。

  4. 点击绑定标签页。

  5. 找到要删除的绑定的 ID。在该绑定所在的行中,点击 操作,然后点击删除绑定

  6. 在确认对话框中点击删除

gcloud

gcloud beta iam policy-bindings delete 命令可删除政策绑定。

在使用下面的命令数据之前,请先进行以下替换:

  • BINDING_ID:您要删除的政策绑定的 ID,例如 example-binding
  • RESOURCE_TYPE:政策绑定是其子级的 Resource Manager 资源(项目、文件夹或组织)的类型。使用值 projectfolderorganization

    资源类型取决于在政策绑定中设置的主账号。如需了解要使用哪种资源类型,请参阅支持的主账号类型

  • RESOURCE_ID:政策绑定是其子级的项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta iam policy-bindings delete BINDING_ID \
    --RESOURCE_TYPE=RESOURCE_ID --location=global

Windows (PowerShell)

gcloud beta iam policy-bindings delete BINDING_ID `
    --RESOURCE_TYPE=RESOURCE_ID --location=global

Windows (cmd.exe)

gcloud beta iam policy-bindings delete BINDING_ID ^
    --RESOURCE_TYPE=RESOURCE_ID --location=global

响应包含表示请求的长时间运行的操作。

Delete request issued for: [example-binding]
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374724030-6181fcd1520c5-d21b0a12-b704e1ce] to complete...done.
Deleted policyBinding [example-binding].

REST

policyBindings.delete 方法可删除政策绑定。

在使用任何请求数据之前,请先进行以下替换:

  • RESOURCE_TYPE:政策绑定是其子级的 Resource Manager 资源(项目、文件夹或组织)的类型。使用值 projectsfoldersorganizations

    资源类型取决于在政策绑定中设置的主账号。如需了解要使用哪种资源类型,请参阅支持的主账号类型

  • RESOURCE_ID:政策绑定是其子级的项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • BINDING_ID:您要删除的政策绑定的 ID,例如 example-binding

HTTP 方法和网址:

DELETE https://iam.googleapis.com/v3beta/RESOURCE_TYPE/RESOURCE_ID/locations/global/policyBindings/BINDING_ID

如需发送您的请求,请展开以下选项之一:

响应包含表示请求的长时间运行的操作。

{
  "name": "organizations/123456789012/locations/global/operations/operation-1715373190994-6181f71b4daad-6d8168c1-13cc6600",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata",
    "createTime": "2024-05-10T20:33:11.165728913Z",
    "target": "organizations/123456789012/locations/global/policyBindings/example-binding",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v3beta"
  },
  "done": false
}

删除主账号访问边界政策

在删除主账号访问边界政策之前,我们建议您确定删除所有引用该主账号访问边界政策的主账号访问边界政策绑定。

如果您删除包含现有政策绑定的主账号访问边界政策,则这些绑定最终也会被删除。不过,在删除之前,政策绑定仍会计入可引用单个主账号集的 10 个绑定的上限。

您可以使用 Google Cloud 控制台、gcloud CLI 或 IAM REST API 删除主账号访问边界政策。

控制台

  1. 在 Google Cloud 控制台中,前往主账号访问权限边界政策页面。

    前往“主账号访问权限边界政策”

  2. 选择拥有您要删除其绑定的主账号访问边界政策的组织。

  3. 找到要删除的政策的 ID。在该政策所在的行中,点击 操作,然后点击删除政策

  4. 在确认对话框中,确认您要删除政策:

    • 如需只有在政策没有任何与之关联的绑定的情况下删除该政策,请点击删除
    • 如需删除政策和所有关联的绑定,请选中强制删除政策复选框,然后点击删除

gcloud

gcloud iam gcloud beta iam principal-access-boundary-policies delete 命令可删除主账号访问边界政策和所有关联的绑定。

在使用下面的命令数据之前,请先进行以下替换:

  • PAB_POLICY_ID:您要删除的主账号访问边界政策的 ID,例如 example-policy
  • ORG_ID:拥有主账号访问边界政策的组织的 ID。组织 ID 是数字,例如 123456789012
  • FORCE_FLAG:可选。如需强制该命令删除政策(即使现有政策绑定中引用了该政策),请使用 --force 标志。如果未设置此标志,并且现有政策绑定中引用了该政策,则该命令会失败。

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta iam principal-access-boundary-policies delete PAB_POLICY_ID \
    --organization=ORG_ID --location=global FORCE_FLAG

Windows (PowerShell)

gcloud beta iam principal-access-boundary-policies delete PAB_POLICY_ID `
    --organization=ORG_ID --location=global FORCE_FLAG

Windows (cmd.exe)

gcloud beta iam principal-access-boundary-policies delete PAB_POLICY_ID ^
    --organization=ORG_ID --location=global FORCE_FLAG

响应包含表示请求的长时间运行的操作。

Delete request issued for: [example-policy]
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374811191-6181fd2471ab4-f0947406-85778c43] to complete...
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374811191-6181fd2471ab4-f0947406-85778c43] to complete...done.
Deleted principalAccessBoundaryPolicy [example-policy].

REST

principalAccessBoundaryPolicies.delete 方法可删除主账号访问边界政策和所有关联的绑定。

在使用任何请求数据之前,请先进行以下替换:

  • ORG_ID:拥有主账号访问边界政策的组织的 ID。组织 ID 是数字,例如 123456789012
  • PAB_POLICY_ID:您要删除的主账号访问边界政策的 ID,例如 example-policy
  • FORCE_DELETE:可选。如需强制请求删除政策(即使现有政策绑定中引用了该政策),请添加查询参数 force=true。如果未设置此查询参数,并且现有政策绑定中引用了该政策,则请求会失败。

HTTP 方法和网址:

DELETE https://iam.googleapis.com/v3beta/organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID?FORCE_DELETE

如需发送您的请求,请展开以下选项之一:

响应包含表示请求的长时间运行的操作。

{
  "name": "organizations/123456789012/locations/global/operations/operation-1715373190994-6181f71b4daad-6d8168c1-13cc6600",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata",
    "createTime": "2024-05-10T20:33:11.165728913Z",
    "target": "organizations/123456789012/locations/global/policyBindings/example-policy",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v3beta"
  },
  "done": false
}

后续步骤