管理访问权限级别

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

准备工作

  • 设置默认访问权限政策,以使用 gcloud 命令行工具。

    获取您的政策名称。使用 gcloud 命令行工具并进行 API 调用的命令需要政策名称。如果您设置了默认访问权限政策,则无需为 gcloud 命令行工具指定政策。

  • 确保在组织级层拥有 Identity and Access Management (IAM) 角色,该角色允许您管理访问权限级别。请让您的管理员授予您以下角色之一或具有相同权限的自定义角色:

列出访问权限级别

控制台

如需列出所有访问权限级别,请在 Google Cloud 控制台中打开 Access Context Manager 页面,然后在系统提示时选择贵组织。您组织的访问权限级别显示在页面的网格中,包括有关每个访问权限级别的配置详细信息。

打开 Access Context Manager 页面

gcloud

要列出所有访问权限级别,请使用 list 命令。

gcloud access-context-manager levels list \
  [--policy=POLICY_NAME]

其中:

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

输出结果如下所示:

NAME             TITLE                  LEVEL_TYPE
Device_Trust     Device_Trust Extended  Basic
Service_Group_A  Service_Group_A        Basic

API

要列出一项政策的所有访问权限级别,请调用 accessLevels.list

GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels

其中:

  • POLICY_NAME 是您的组织的访问权限政策的名称。

请求正文

请求正文必须为空。

可选参数

可包含以下一个或多个查询参数。

参数
pageSize

number

默认情况下,会将 accessLevels.list 返回的访问权限级别列表分页。每个页面 100 个访问权限级别。

您可以使用此参数来修改每页返回的访问权限级别数量。

pageToken

string

如果调用返回的访问权限级别数量超过了页面大小,响应正文将包含一个页标记。

在后续调用中,您可以使用此参数来获取下一页结果。

accessLevelFormat

enum(LevelFormat)

一般来说,访问权限级别会以定义的方式返回,即作为 BasicLevelCustomLevel

您可以为此参数指定值 CEL,以采用 Cloud 通用表达式语言将 BasicLevels 作为 CustomLevels 返回。

响应正文

如果成功,则调用的响应正文包含一个列出访问权限级别的 AccessLevels 对象,以及一个 nextPageToken 字符串。仅当返回的访问权限级别数量超过页面大小时,nextPageToken 才会有值。否则,nextPageToken 将作为空字符串返回。

列出访问权限级别(有格式)

您可以使用 gcloud 命令行工具,获取 YAML 或 JSON 格式的访问权限级别列表。

要获取有格式的访问权限级别列表,请使用 list 命令。

gcloud access-context-manager levels list \
  --format=FORMAT \
  [--policy=POLICY_NAME]

其中:

  • FORMAT 是以下任一值:

    • list(YAML 格式)

    • json(JSON 格式)

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

YAML 输出结果如下所示:

- basic: {'conditions': [{'ipSubnetworks': ['8.8.0/24']}]}
  description: Level for corp access.
  name: accessPolicies/165717541651/accessLevels/corp_level
  title: Corp Level
- basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['8.8.0/24']}]}
  description: Level for net access.
  name: accessPolicies/165717541651/accessLevels/net_level
  title: Net Level

JSON 输出如下所示:

[
  {
    "basic": {
      "conditions": [
        {
          "ipSubnetworks": [
            "8.8.0/24"
          ]
        }
      ]
    },
    "description": "Level for corp access.",
    "name": "accessPolicies/165717541651/accessLevels/corp_level",
    "title": "Corp Level"
  },
  {
    "basic": {
      "combiningFunction": "OR",
      "conditions": [
        {
          "ipSubnetworks": [
            "8.8.0/24"
          ]
        }
      ]
    },
    "description": "Level for net access.",
    "name": "accessPolicies/165717541651/accessLevels/net_level",
    "title": "Net Level"
  }
]

描述访问权限级别

控制台

使用 Google Cloud 控制台,请参阅 列出访问权限级别。列出访问权限级别时,出现的网格中会提供其详细信息。

gcloud

列出访问权限级别时,仅会显示其名称、标题和级别类型。要获取有关级别实际作用的详细信息,请使用 describe 命令。

gcloud access-context-manager levels describe LEVEL_NAME \
    [--policy=POLICY_NAME]

其中:

  • LEVEL_NAME 是您要描述的访问权限级别名称。

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

该命令将以 YAML 格式输出关于级别的信息。例如,如果级别限制仅某些操作系统版本可以访问,输出可能类似于以下内容:

basic:
  conditions:
  - devicePolicy:
      allowedEncryptionStatuses:
      - ENCRYPTED
      osConstraints:
      - minimumVersion: 10.13.6
        osType: DESKTOP_MAC
      - minimumVersion: 10.0.18219
        osType: DESKTOP_WINDOWS
      - minimumVersion: 68.0.3440
        osType: DESKTOP_CHROME_OS
      requireScreenlock: true
name: accessPolicies/330193482019/accessLevels/Device_Trust
title: Device_Trust Extended

API

列出访问权限级别时,仅会显示级别的名称、标题和类型。 要获取有关访问权限级别的详细信息,请调用 accessLevels.get

GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

其中:

  • POLICY_NAME 是您组织的访问权限政策名称。

  • LEVEL_NAME 是您要描述的访问权限级别名称。

请求正文

请求正文必须为空。

可选参数

(可选)包括 accessLevelFormat 查询参数。一般来说,访问权限级别会以定义的方式返回,即作为 BasicLevelCustomLevel

您可以为此参数指定值 CEL,以采用 Cloud 通用表达式语言将 BasicLevels 作为 CustomLevels 返回。

响应正文

如果成功,调用的响应正文将包含一个 AccessLevel 资源,提供关于该访问权限级别的作用、该级别上次更新时间等详细信息。

更新访问权限级别

本部分介绍如何更新单个访问权限级别。要通过一项操作更新贵组织的所有访问权限级别,请参阅对访问权限级别进行批量更改

控制台

要更新访问权限级别,请执行以下操作:

  1. 在 Google Cloud 控制台中打开 Access Context Manager 页面。

    打开 Access Context Manager 页面

  2. 如果出现提示,请选择您的组织。

  3. 在网格中,点击您要更新的访问权限级别名称。

  4. 修改访问权限级别窗格中,更改访问权限级别。

    如需可添加或修改的属性完整列表,请参阅访问权限级别属性

  5. 点击保存

    除了更新或移除任何现有条件外,您还可以添加新的条件,以及向现有条件添加新的属性。

gcloud

使用 update 命令更新访问权限级别。

基本访问权限级别

gcloud access-context-manager levels update LEVEL_NAME \
    --basic-level-spec=FILE \
    [--policy=POLICY_NAME]

自定义访问权限级别

gcloud access-context-manager levels update LEVEL_NAME \
    --custom-level-spec=FILE \
    [--policy=POLICY_NAME]

其中:

  • LEVEL_NAME 是您要更新的访问权限级别名称。

  • FILE 是.yaml 文件的名称,用于定义访问权限级别的条件(针对基本访问权限级别)或解析为单个布尔值的 CEL 表达式(针对自定义访问权限级别)。

    如需了解可在基本访问权限级别条件中使用的属性完整列表,请参阅访问权限级别属性

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

  • 您可以添加一个或多个以下选项。

    选项
    combine-function

    此选项仅用于基本访问权限级别

    确定条件的合并方式。

    有效值:ANDOR

    description

    访问权限级别的详细说明。

    title

    访问权限级别的简短标题。访问权限级别的标题 会显示在 Google Cloud 控制台中。

    您可以添加任何在 gcloud 范围内适用的标志

示例命令

gcloud access-context-manager levels update Device_Trust \
    --basic-level-spec=corpdevspec.yaml \
    --combine-function=OR \
    --description='Access level that conforms to updated corporate spec.' \
    --title='Device_Trust Extended' \
    --policy=1034095178592

API

要更新访问权限级别,请调用 accessLevels.patch

PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS

其中:

  • POLICY_NAME 是您组织的访问权限政策名称。

  • LEVEL_NAME 是您要描述的访问权限级别名称。

  • FIELDS 是您要更新的完全限定字段名称的逗号分隔列表。

请求正文

请求正文必须包含一个 AccessLevel 资源,用于指定您要对访问权限级别进行的更改。

响应正文

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

删除访问权限级别

Console

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

  1. 在 Google Cloud 控制台中打开 Access Context Manager 页面

    打开 Access Context Manager 页面

  2. 如果出现提示,请选择您的组织。

  3. 在网格中,针对您要删除的访问权限级别所对应行,点击 按钮。

  4. 点击删除

  5. 在出现的对话框中,确认您要删除访问权限级别。

gcloud

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

  1. 使用 delete 命令来删除访问权限级别。

    gcloud access-context-manager levels delete LEVEL_NAME \
        [--policy=POLICY_NAME]

    其中:

    • LEVEL_NAME 是您要删除的访问权限级别名称。

    • POLICY_NAME 是您组织的访问权限政策名称。 只有在未设置默认访问权限政策的情况下,才需要指定此值。

  2. 确认您要删除访问权限级别。

    例如:

    You are about to delete level Device_Trust
    
    Do you want to continue (Y/n)?
    
    
    You should see output similar to the following:
    
    
    Waiting for operation [accessPolicies/330193482019/accessLevels/Device_Trust/delete/1531171874311645] to complete...done.
    Deleted level [Device_Trust].
    

API

要删除访问权限级别,请调用 accessLevels.delete

DELETE https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

其中:

  • POLICY_NAME 是您组织的访问权限政策名称。

  • LEVEL_NAME 是您要描述的访问权限级别名称。

请求正文

请求正文必须为空。

响应正文

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