创建自定义访问权限级别

创建自定义访问权限级别后,可以采用与基本访问权限级别相同的方式进行管理

如需详细了解如何为自定义访问权限级别构建通用表达式语言 (CEL) 表达式,请参阅自定义访问权限级别规范

控制台

要创建自定义访问权限级别,请按以下步骤操作:

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

    打开 Access Context Manager 页面

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

  3. Access Context Manager 页面的顶部,点击新建

  4. 新建访问权限级别窗格中,执行以下操作:

    1. 访问权限级别标题框中,输入访问权限级别的标题。标题最多不能超过 50 个字符,以字母开头,并且只能包含数字、字母、下划线和空格。

    2. 按照在以下条件中创建条件,选择高级模式

    3. 条件部分中,输入自定义访问权限级别的表达式。条件必须解析为单个布尔值。

      有关通用表达式语言 (CEL) 支持和自定义访问权限级别的示例和更多信息,请参阅自定义访问权限级别规范

    4. 点击保存

gcloud

准备工作

要使用 gcloud 命令行工具创建自定义访问权限级别,请使用 gcloud access-context-manager levels create 命令。

gcloud access-context-manager levels create LEVEL_NAME \
  --title=TITLE \
  --custom-level-spec=FILE \
  --description=DESCRIPTION \
  --policy=POLICY_NAME

其中:

  • LEVEL_NAME 是访问权限级别的唯一名称。必须以字母开头,并且只包含字母、数字和下划线。 名称最多可以包含 50 个字符。

  • TITLE 是访问权限级别的简短且直观易懂的标题。

  • FILE是一个.yaml 文件,其中包含您的 CEL 表达式(格式为单个键值对):expression: "CEL_EXPRESSION"

    有关通用表达式语言 (CEL) 支持和自定义访问权限级别的示例和更多信息,请参阅自定义访问权限级别规范

  • DESCRIPTION(可选)是直观易懂的访问权限级别说明。

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

或者,您可以添加任何gcloud 范围适用的标志

custom-level-spec YAML 文件

使用 gcloud 命令行工具创建自定义访问权限级别时,必须为 custom-level-spec 选项提供.yaml 文件。.yaml 文件定义了解析为单个布尔值的 CEL 表达式。.yaml 文件必须包含一个格式为 expression: "CEL_EXPRESSION" 的键值对。expression 的值必须是字符串。

YAML 文件示例

expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && (origin.region_code in ['US'] || device.is_admin_approved_device)"

示例命令

gcloud access-context-manager levels create Custom_Trust \
    --custom-level-spec=customspec.yaml \
    --description="Custom access level for corp." \
    --title="Custom Trust Level" \
    --policy=1521580097614100

REST

准备工作

如需创建自定义访问权限级别,请使用 accessPolicies.accessLevels.create 方法。

请求正文

在调用的请求正文中,添加 AccessLevel 对象的实例。

{
  "name": string,
  "title": string,
  "description": string,
  "custom": {
    "expr": {
      "expression": string,
      "title": string,
      "description": string
    }
  }
}

对于 custom 字段,请创建一个对象,其中包含自定义访问权限级别的 CEL 表达式。完整表达式必须解析为布尔值。titledescription 字段为选填字段。

示例

{
  "name": "example_custom_level",
  "title": "Example custom level",
  "description": "An example custom access level.",
  "custom":  {
    "expr": {
      "expression": "device.is_corp_owned == true || (device.os_type != OsType.OS_UNSPECIFIED && device.is_admin_approved_device == true)",
      "title": "Check for known devices",
      "description": "Permits requests from corp-owned devices and admin-approved devices with a known OS."
    }
  }
}

RPC

准备工作

要创建自定义访问权限级别,请调用 CreateAccessLevel

对于 access_level 字段,请添加 AccessLevel 的实例。

字段
name
类型 字符串
说明

必需。

访问权限级别的资源名称。POLICY_ID 是您组织的访问权限政策的数字名称。SHORT_NAME 必须以字母开头,并且只包含字母,数字和下划线。

格式:

                accessPolicies/policy_id/accessLevels/short_name
                

title
类型 字符串
说明

直观易懂的访问权限级别标签。访问权限级别必须具有独一无二的名称。

description
类型 字符串
说明

访问权限级别的说明。

custom
类型 字符串
说明

自定义访问权限级别的 CEL 表达式。完整表达式必须解析为布尔值。