移除主账号访问权限边界政策

通过主账号访问权限边界 (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 角色:

  • 组织的主账号访问权限边界用户 (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
}

后续步骤