管理访问权限政策

本页面介绍如何管理现有访问权限政策。您可以执行以下操作:

获取访问权限政策的名称和 etag

控制台

控制台不支持管理访问权限政策。如果要管理访问政策,则必须使用 gcloud 命令行工具或 API。

gcloud

要获取访问政策的名称,请使用 list 命令。gcloud 命令行工具的所有访问权限级别命令均需要访问政策名称。

gcloud access-context-manager policies list \
    --organization ORGANIZATION_ID

其中:

  • ORGANIZATION_ID 是您的组织的数字 ID。

您应看到如下输出:

NAME           ORGANIZATION  TITLE        ETAG
1034095178592  511928527926  Corp Policy  10bc3c76ca809ab2

API

要获取访问政策的名称,请调用 accessPolicies.list

GET https://accesscontextmanager.googleapis.com/v1/accessPolicies

请求正文

请求正文必须为空。

响应正文

如果成功,响应正文将类似于以下内容:

{
  "accessPolicies": [
    {
      object(AccessPolicy)
    }
  ],
  "nextPageToken": string
}

其中:

gcloud 命令行工具设置默认访问权限政策

使用 gcloud 命令行工具时,您可以设置默认访问权限政策。设置默认政策时,每次使用 Access Context Manager 命令时都不再需要指定政策。

要设置默认访问政策,请使用 config 命令。

gcloud config set access_context_manager/policy POLICY_NAME

其中:

委托政策

控制台

控制台不支持管理访问权限政策。如果要管理访问政策,则必须使用 gcloud 命令行工具或 API。

gcloud

要通过将主帐号和角色绑定到范围限定的访问权限政策来委派管理,请使用 add-iam-policy-binding 命令。

gcloud access-context-manager policies add-iam-policy-binding \
[POLICY] --member=PRINCIPAL --role=ROLE

其中:

  • POLICY 是政策的 ID 或政策的完全限定标识符。

  • PRINCIPAL 是要添加绑定的主账号。请按以下格式指定:user|group|serviceAccount:emaildomain:domain

  • ROLE 是要分配给主帐号的角色名称。角色名称是预定义角色的完整路径(例如 roles/accesscontextmanager.policyReader),或自定义角色的角色 ID(例如 organizations/{ORGANIZATION_ID}/roles/accesscontextmanager.policyReader)。

API

如需委派范围限定访问权限政策的管理,请执行以下操作:

  1. 创建请求正文。

    {
    "policy": "IAM_POLICY",
    }
    

    其中:

    • IAM_POLICY 是绑定的集合。绑定操作会将一个或多个成员或主帐号绑定到单个角色。主帐号可以是用户帐号、服务帐号、Google 群组和网域。角色是一组指定的权限;每个角色可以是 IAM 预定义角色或用户创建的自定义角色。
  2. 通过调用 accessPolicies.setIamPolicy 委派访问权限政策。

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies
    

响应正文

如果成功,则响应正文包含一个 policy 实例。

描述访问权限政策

控制台

控制台不支持管理访问权限政策。如果要管理访问政策,则必须使用 gcloud 命令行工具或 API。

gcloud

要描述您的访问政策,请使用 describe 命令。

gcloud access-context-manager policies describe POLICY_NAME

其中:

  • POLICY_NAME 是您的政策的数字名称。

此时会显示以下输出:

name: accessPolicies/1034095178592
parent: organizations/511928527926
title: Corp Policy

API

要描述您的访问政策,请调用 accessPolicies.get

GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME

其中:

  • POLICY_NAME 是您的政策的数字名称。

请求正文

请求正文必须为空。

响应正文

如果成功,则响应正文包含一个 AccessPolicy 对象

更新访问权限政策

控制台

控制台不支持管理访问权限政策。如果要管理访问政策,则必须使用 gcloud 命令行工具或 API。

gcloud

要更新访问政策,请使用 update 命令。目前,您只能更改政策的标题。

gcloud access-context-manager policies update POLICY_NAME \
    --title=POLICY_TITLE

其中:

  • POLICY_NAME 是您的政策的数字名称。

  • POLICY_TITLE 是直观易懂的政策标题。

此时会显示以下输出:

Waiting for PATCH operation [accessPolicies/POLICY_NAME/update/1542234231134882]...done.

API

目前,您只能更改访问权限政策的标题。

要更新您的政策,请执行以下操作:

  1. 创建请求正文。

    {
     "parent": "ORGANIZATION_ID",
     "title": "POLICY_TITLE"
    }
    

    其中:

    • ORGANIZATION_ID 是您的组织的数字 ID。

    • POLICY_TITLE 是直观易懂的政策标题。

  2. 调用 accessPolicies.patch

    PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/UPDATE_MASK
    

    其中:

    • POLICY_NAME 是您的政策的数字名称。

    • UPDATE_MASK 是一个字符串,表示要更新的值。例如 title

    响应正文

    如果成功,调用的响应正文将包含一个 Operation 资源,用于提供与 PATCH 操作相关的详细信息。

删除访问权限政策

控制台

控制台目前不支持管理访问权限政策。如果要管理访问政策,则必须使用 gcloud 命令行工具或 API。

gcloud

要删除访问权限政策,请执行以下操作:

  1. 使用 delete 命令。

    gcloud access-context-manager policies delete POLICY_NAME
    

    其中:

    • POLICY_NAME 是您的政策的数字名称。
  2. 确认您要删除访问权限政策。

    例如:

    You are about to delete policy [POLICY_NAME]
    
    Do you want to continue (Y/n)?
    

    此时会显示以下输出:

    Deleted policy [1034095178592].
    

API

要删除访问政策,请调用 accessPolicies.delete

DELETE https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME

其中:

  • POLICY_NAME 是您的政策的数字名称。

请求正文

请求正文必须为空。

响应正文

如果成功,调用的响应正文将包含一个 Operation 资源,用于提供与 DELETE 操作相关的详细信息。

后续步骤