6.4. 创建自定义策略
除了使用默认策略外,您还可以在 Red Hat Advanced Cluster Security for Kubernetes 中创建自定义策略。
要构建新策略,您可以克隆现有策略或从头开始创建一个新策略。
- 您还可以根据 RHACS 门户中的 Risk 视图中的过滤器标准创建策略。
-
您还可以在策略条件中使用
AND
,OR
, 和NOT
逻辑运算符来创建高级策略。
6.4.1. 从系统策略视图创建安全策略
您可以从系统策略视图创建新的安全策略。
流程
-
在 RHACS 门户中,进入 Platform Configuration
Policy Management。 - 点击 Create policy。
在 Policy details 部分中,输入以下有关您的策略的详细信息:
- 输入策略的 Name。
可选:通过从 Attach notifiers 部分下的可用 Notifiers 选择,将通知程序附加到策略。
注意在转发警报前,您必须将 RHACS 与通知供应商(如 Webhook、JIRA、Pageruty、Spluty、Splunk 等)集成。
-
选择 此策略的严重性级别,可以是
Critical
、High
、Medium
或Low
。 - 选择您要 应用到 此策略的策略类别。有关创建类别的详情,请参考本文档后面的"创建和管理策略类别"。
- 在 Description 字段中输入策略详情。
- 在 Rationale 字段中输入有关为什么策略存在的解释。
- 在 Guidance 字段中输入步骤来解决此策略的违反情况。
可选:在 MITRE ATT&CK 部分中,选择您需要为策略指定的 tactics and the techniques。
- 单击 Add tactic,然后从下拉列表中选择 tactic。
- 点 Add Technology,为所选 tactic 添加技术。您可以为 tactic 指定多种技术。
- 点击 Next。
在 Policy behavior 部分中,执行以下步骤:
选择适用于 您的策略 的生命周期阶段: Build、deploy或 Runtime。您可以选择多个阶段。
- 构建时策略适用于镜像字段,如 CVE 和 Dockerfile 指令。
- deploy-time 策略可包括所有构建时策略标准,但它们也可以包含集群配置中的数据,如以特权模式运行或挂载 Docker 套接字。
- 运行时策略可以包含所有构建时间和部署时间策略标准,但它们也可以包含运行时进程执行的数据。
可选:如果您选择了 Runtime 生命周期阶段,请选择以下 事件源 之一:
- Deployment :当事件源包括进程和网络活动、pod exec 和 pod 端口转发时,RHACS 会触发策略违反情况。
- 当事件源与 Kubernetes 审计日志记录匹配时,RHACS 会触发策略违反情况。
对于 Response 方法,请选择以下选项之一:
- inform :在违反列表中包括违反情况。
- inform 和 enforce :强制操作。
可选:如果您选择了 Inform and enforce,在 Configure enforcement behavior 中,使用每个生命周期选择策略的强制行为。它仅适用于您在配置生命周期阶段时所选择的 阶段。每个生命周期阶段的强制行为都有所不同。
- 构建 :当镜像与策略条件匹配时,RHACS 无法构建您的持续集成(CI)。
部署 :对于 Deploy 阶段,RHACS 会阻止在 RHACS 准入控制器配置并运行时与策略条件匹配的部署。
- 在带有准入控制器强制的集群中,Kubernetes 或 OpenShift Container Platform API 服务器会阻止所有不合规的部署。在其他集群中,RHACS 编辑不合规部署,以防止调度 pod。
- 对于现有部署,策略更改仅在发生 Kubernetes 事件时在下次检测条件时导致强制。有关强制的更多信息,请参阅"部署阶段的安全策略强制"。
Runtime - 当 pod 中的事件与策略条件匹配时,RHACS 会删除所有 pod。
警告策略实施可能会影响运行应用程序或开发流程。在启用强制选项前,请通知所有利益相关者,并计划如何响应自动执行操作。
- 点击 Next。
在 Policy Criteria 部分中,配置您要触发该策略的属性。
单击策略字段并将它拖到 Policy Section 中,以添加条件。
注意可用的策略字段取决于您为策略选择的生命周期阶段。例如,在为运行时生命周期创建策略时,
Kubernetes 访问策略
或Networking
下的条件可用,但为构建生命周期创建策略时不可用。有关策略条件的更多信息,请参阅"附加资源"部分中的"策略标准"部分,包括有关条件及其可用的生命周期阶段的信息。-
可选:点 Add condition 来添加包括会触发策略的额外条件的策略部分(例如,为了触发一个旧的、稳定的镜像,您可以配置
image tag
不是latest
或image age
并指定自一个镜像构建后的需要经过的最少天数)。
- 点击 Next。
在 Policy scope 部分中,配置以下内容:
- 点 Add inclusion scope 使用 Restrict by scope 仅对特定集群、命名空间或标签启用此策略。您可以添加多个范围,并为命名空间和标签在 RE2 语法中使用正则表达式。
- 点 Add excluded scope 来使用 Exclude by scope 来排除您指定的部署、集群、命名空间和标签。该策略不适用于您选择的实体。您可以添加多个范围,并为命名空间和标签在 RE2 语法中使用正则表达式。但是,您不能使用正则表达式来选择部署。
对于 Excluded Images (仅限构建生命周期), 请选择您不想触发违反的所有镜像。
注意Excluded Images 设置仅在使用 Build 生命周期阶段检查持续集成系统中的镜像时适用。如果您使用此策略检查 Deploy 生命周期阶段中运行的部署,或检查在 Runtime 生命周期阶段中的运行时活动时,则不会生效。
- 点击 Next。
- 在 Review policy 部分中,预览策略违反情况。
- 点击 Save。
6.4.1.1. 部署阶段的安全策略强制
Red Hat Advanced Cluster Security for Kubernetes 支持两种类型的安全策略强制进行部署时间策略强制:通过准入控制器和 RHACS Sensor 的软强制进行硬强制。准入控制器会阻止创建或更新违反策略的部署。如果准入控制器被禁用或不可用,则 Sensor 可以通过将违反策略部署到 0
的部署来缩减副本来执行强制。
策略实施可能会影响运行应用程序或开发流程。在启用强制选项前,请通知所有利益相关者,并计划如何响应自动强制操作。
6.4.1.1.1. 硬强制
硬强制由 RHACS 准入控制器执行。在带有准入控制器强制的集群中,Kubernetes 或 OpenShift Container Platform API 服务器会阻止所有不合规的部署。准入控制器会阻止 CREATE
和 UPDATE
操作。任何满足启用了 deploy-time 强制配置的策略的 pod 创建或更新请求都将失败。
Kubernetes 准入 webhook 仅支持 CREATE
、UPDATE
、DELETE
或 CONNECT
操作。RHACS 准入控制器只支持 CREATE
和 UPDATE
操作。kubectl patch
、kubectl set
和 kubectl scale
等操作是 PATCH 操作,而不是 UPDATE 操作。因为 Kubernetes 不支持 PATCH 操作,所以 RHACS 无法对 PATCH 操作执行强制。
要进行阻塞,您必须在 RHACS 中为集群启用以下设置:
- 在 Object Creates 上强制 :此切换在 Dynamic Configuration 部分中,控制准入控制服务的行为。您必须在打开的 Static Configuration 部分中具有 Configure Admission Controller Webhook 来侦听 Object Creates 开关才能正常工作。
- 在对象更新上强制 :此切换在 Dynamic Configuration 部分中,控制准入控制服务的行为。您必须在打开的 Static Configuration 部分中具有 Configure Admission Controller Webhook 来侦听 Object Updates 切换。
如果您对 Static Configuration 设置进行了更改,您必须重新部署安全集群才能使这些更改生效。
6.4.1.1.2. 软强制
软强制由 RHACS Sensor 执行。这个强制可防止启动操作。使用软强制时,Sensor 将副本扩展到 0,并阻止调度 pod。在这个强制中,集群中提供了非就绪的部署。
如果配置了软强制,且 Sensor 停机,则 RHACS 无法执行强制。
6.4.1.1.3. 命名空间排除
默认情况下,RHACS 从强制阻止中排除某些管理命名空间,如 stackrox
、kube-system
和 istio-system
命名空间。这样做的原因是,必须部署这些命名空间中的一些项目才能使 RHACS 正常工作。
6.4.1.1.4. 对现有部署的强制
对于现有部署,策略更改仅在发生 Kubernetes 事件时在下次检测条件时导致强制。如果对策略进行更改,您必须通过选择 Policy Management 并点 Reassess All 来重新评估策略。此操作会在所有现有部署中应用部署策略,无论是否有新的传入的 Kubernetes 事件。如果违反了策略,则 RHACS 执行强制。
6.4.2. 从 risk 视图创建安全策略
在风险视图中评估部署的风险时,当您应用本地页面过滤时,您可以根据您使用的过滤标准创建新的安全策略。
流程
- 进入 RHACS 门户并从导航菜单中选择 风险。
- 应用您要为其创建策略的本地页面过滤条件。
- 选择 New Policy 并填写所需字段以创建新策略。
其他资源
6.4.3. 策略标准
在 Policy Criteria 部分中,您可以配置要触发策略的数据。
您可以根据下表中列出的属性来配置策略。
在这个表中:
Regular expressions, AND, OR, 和 NOT 列指示您可以使用正则表达式和其他逻辑运算符以及特定的属性。
-
!
用于 Regex (正则表达式)表示您只能对列出的字段使用正则表达式。 -
!
对于 AND,或 OR 表示您只能将上述逻辑运算符用于属性。 - Regex / NOT / AND, OR column 指示属性不支持任何这些(regex、Negation、logical operators)。
-
- RHACS 版本 列指示必须使用该属性的 Red Hat Advanced Cluster Security for Kubernetes 版本。
对于满足以下条件的属性,不能使用运算符
AND
和OR
的组合:-
布尔值
true
和false
最低值语义,例如:
- 最低 RBAC 权限
- 自镜像创建以来的天数
-
布尔值
您不能将
NOT
逻辑运算符用于具有以下属性:-
布尔值
true
和false
-
已使用进行比较(如
<
,>
,<=
,>=
操作符)的数字值。 compound 条件可以有多个值,例如:
- Dockerfile 行,其中包含指令和参数。
- 环境变量,由名称和值组成。
- 其他含义,包括 Add Capabilities、Drop Capabilities、自镜像创建后的第一天,以及 自镜像上次扫描以来的日期。
-
布尔值
属性 | Description | JSON 属性 | 允许的值 | regex,NOT,AND, OR | 阶段 |
---|---|---|---|---|---|
部分:镜像 registry | |||||
镜像 Registry | 镜像 registry 的名称。 | 镜像 Registry | 字符串 |
regex, |
构建, |
镜像名称 |
registry 中镜像的全名,如 | 镜像远程 | 字符串 |
regex, |
构建, |
镜像标签 | 镜像的标识符。 | 镜像标签 | 字符串 |
regex, |
构建, |
镜像签名 | 可用于验证镜像签名的签名集成列表。在没有签名或其签名的镜像上创建警报,至少可以由其中一个提供的签名集成来验证。 | 镜像签名验证者 | 已配置镜像签名集成的有效 ID |
!仅限 |
构建, |
部分:镜像内容 | |||||
CVE 可修复 | 只有您在评估的部署中的镜像具有可修复的 CVE 时,此条件才会导致违反情况。 | 可修复 | 布尔值 | ✕ |
构建, |
自 CVE Was First Discovered In images 中的 daysSince | 只有当 RHACS 在特定镜像中发现 CVE 后超过指定天数时,此条件才会导致违反情况。 | 自 CVE Was First Discovered In images 中的 daysSince | 整数 | ✕ |
构建, |
因 CVE Was First Discovered in System 的 day Since CVE Was | 只有由于 RHACS 在 RHACS 监控的所有部署的镜像中发现 CVE,所以这个条件才会超过指定天数。 | 因 CVE Was First Discovered in System 的 day Since CVE Was | 整数 | ✕ |
构建, |
镜像年龄 | 镜像创建日期起的最小天数。 | 镜像期限 | 整数 | ✕ |
构建, |
镜像扫描年龄 | 镜像上次扫描后的最小天数。 | 镜像扫描期限 | 整数 | ✕ |
构建, |
镜像用户 | 匹配 Dockerfile 中的 USER 指令。详情请查看 https://docs.docker.com/engine/reference/builder/#user。 | 镜像用户 | 字符串 |
regex, |
构建, |
Dockerfile 行 | Dockerfile 中的特定行,包括指令和参数。 | Dockerfile 行 | 其中一个: LABEL, RUN, CMD, EXPOSE, ENV, ADD, COPY, ENTRYPOINT,VOLUME, USER, WORKDIR, ONBUILD |
!正则表达式只适用于值 |
构建, |
镜像扫描状态 | 检查镜像是否已扫描。 | 未扫描的镜像 | 布尔值 | ✕ |
构建, |
CVSS |
通用漏洞评分系统,使用它来匹配分数大于 | CVSS |
<, >, <=, >= 或 nothing (represents equal to)
示例: | AND, OR |
构建, |
重要性 | 基于 CVSS 或供应商的严重性。可以是 Low, Moderate, Important 或 Critical 之一。 | 重要性 |
<, >, criu, >= or nothing (represents equal to)
示例: | AND, OR |
构建, |
修复人 | 修复镜像中标记的漏洞的软件包版本字符串。除了识别漏洞的其他条件外,也可以使用此条件,例如使用 CVE 条件。 | 修复人 | 字符串 |
regex, |
构建, |
CVE | 常见的漏洞和风险,将其与特定 CVE 编号一起使用。 | CVE | 字符串 |
regex, |
构建, |
镜像组件 | 镜像中存在的特定软件组件的名称和版本号。 | 镜像组件 |
key=value
值是可选的。 如果缺少值,则必须采用 "key=". |
regex, |
构建, |
镜像操作系统 |
镜像基础操作系统的名称和版本号。例如, | 镜像操作系统 | 字符串 |
regex, |
构建, |
需要镜像标签 |
确保存在 Docker 镜像标签。如果部署中的任何镜像没有指定标签,则策略会触发。您可以对 key 和 value 字段使用正则表达式来匹配标签。 | 所需的镜像标签 |
key=value
值是可选的。 如果缺少值,则必须采用 "key=". |
regex, |
构建, |
不允许镜像标签 | 确保不使用特定的 Docker 镜像标签。如果部署中的任何镜像具有指定标签,则策略会触发。您可以对 key 和 value 字段使用正则表达式来匹配标签。只有与 Docker registry 集成时,"Disallow Image Label 策略"条件才有效。有关 Docker 标签的详情,请参阅 Docker 文档 https://docs.docker.com/config/labels-custom-metadata/。 | 不允许的镜像标签 |
key=value
值是可选的。 如果缺少值,则必须采用 "key=". |
regex, |
构建, |
部分:容器配置 | |||||
环境变量 | 根据名称或值检查环境变量。 | 环境变量 |
RAW=key=value,将部署配置中直接指定的环境变量与特定的键和值匹配。 如果配置中没有直接定义环境变量,则可以使用 SOURCE=KEY 格式,其中 SOURCE 是 SECRET_KEY、CONFIG_MAP_KEY、FIELD 或 RESOURCE_FIELD 之一。在这种情况下,条件只能匹配键而不是值。 |
!正则表达式只适用于键和值(如果使用 RAW) |
部署, |
容器 CPU 请求 | 检查为给定资源保留的内核数。 | 容器 CPU 请求 |
<, >, numpy, >= 或 nothing (代表等于)
示例: | AND, OR |
部署, |
容器 CPU 限制 | 检查允许资源使用的最大内核数。 | 容器 CPU 限制 | (与容器 CPU 请求相同) | AND, OR |
部署, |
容器内存请求 | 检查为给定资源保留的内存量。 | 容器内存请求 | (与容器 CPU 请求相同) | AND, OR |
部署, |
容器内存限制 | 检查允许资源使用的最大内存量。 | 容器内存限制 | (与容器 CPU 请求相同) | AND, OR |
部署, |
特权容器 | 特权运行部署。 | 特权容器 | 布尔值 | ✕ |
部署, |
根文件系统写入性 | 使用 root 文件系统运行的容器配置为只读。 | 只读 Root 文件系统 | 布尔值 | ✕ |
部署, |
seccomp 配置集类型 | 容器允许的 seccomp 配置集类型。 | seccomp 配置集类型 |
其中之一:
UNCONFINED | ✕ |
部署, |
权限升级 | 在配置了开发时提供警报,以允许容器进程获得比父进程更多的特权。 | 允许权限升级 | 布尔值 | ✕ |
部署, |
drop Capabilities |
必须从容器中丢弃的 Linux 功能。在不丢弃指定功能时提供警报。例如,如果配置了 |
drop Capabilities |
其中之一:
ALL | 和 |
部署, |
添加功能 |
不得添加到容器中的 Linux 功能,例如发送原始数据包或覆盖文件权限的能力。在添加指定功能时提供警报。例如,如果使用 | 添加功能 |
AUDIT_CONTROL | 或者 |
部署, |
容器名称 | 容器的名称。 | 容器名称 | 字符串 |
regex, |
部署, |
Apparmor Profile | 容器中使用的应用程序 Armor ("AppArmor")配置集。 | Apparmor Profile | 字符串 |
regex, |
部署, |
存活度(Liveness)探测 | 容器是否定义了存活度探测。 | 存活度(Liveness)探测 | 布尔值 | ✕ |
部署, |
就绪度(Readiness)探测 | 容器是否定义了就绪度探测。 | 就绪度(Readiness)探测 | 布尔值 | ✕ |
部署, |
部分:部署元数据 | |||||
不允许注解 | 不允许在指定环境中的 Kubernetes 资源中存在的注解。 | 不允许注解 |
key=value
值是可选的。 如果缺少值,则必须采用 "key=". |
regex, |
部署, |
所需的标签 | 检查 Kubernetes 中是否存在所需的标签。 | 所需的标签 |
key=value
值是可选的。 如果缺少值,则必须采用 "key=". |
regex, |
部署, |
必需注解 | 检查 Kubernetes 中是否存在所需的注解。 | 必需注解 |
key=value
值是可选的。 如果缺少值,则必须采用 "key=". |
regex, |
部署, |
运行时类 |
部署的 | 运行时类 | 字符串 |
regex, |
部署, |
主机网络 |
检查 | 主机网络 | 布尔值 | ✕ |
部署, |
主机 PID | 检查在容器和主机间是否隔离了进程 ID (PID)命名空间。这允许不同 PID 命名空间中的进程具有相同的 PID。 | 主机 PID | 布尔值 | ✕ |
部署, |
主机 IPC | 检查主机上的 IPC (POSIX/SysV IPC)命名空间(提供命名共享内存片段、semaphores 和消息队列)的隔离是否与容器共享。 | 主机 IPC | 布尔值 | ✕ |
部署, |
命名空间 | 部署所属的命名空间的名称。 | 命名空间 | 字符串 |
regex, |
部署, |
Replicas |
部署副本数量。如果使用 | Replicas |
<, >, criu, >= 或 nothing (代表等于)
示例: |
NOT, |
部署, |
部分:存储 | |||||
卷名称 | 存储的名称。 | 卷名称 | 字符串 |
regex, |
部署, |
卷源 |
指明置备卷的表单。例如: | 卷源 | 字符串 |
regex, |
部署, |
卷目的地 | 挂载卷的路径。 | 卷目的地 | 字符串 |
regex, |
部署, |
卷类型 | 卷的类型。 | 卷类型 | 字符串 |
regex, |
部署, |
挂载的卷不稳定 | 挂载为可写的卷。 | 可写挂载的卷 | 布尔值 | ✕ |
部署, |
挂载传播 |
检查容器是否在双向中 | 挂载传播 |
其中之一:
NONE |
NOT, |
部署, |
主机挂载不稳定 | 资源已在主机上挂载了具有写入权限的路径。 | 可写主机挂载 | 布尔值 | ✕ |
部署, |
部分: Networking | |||||
协议 | 公开端口使用的协议,如 TCP 或 UDP。 | 公开端口协议 | 字符串 |
regex, |
部署, |
端口 | 部署公开的端口号。 | 公开端口 |
<, >, criu, >= 或 nothing (代表等于)
示例: |
NOT, |
部署, |
公开的节点端口 | 部署外部公开的端口号。 | 公开的节点端口 | (与公开端口相同) |
NOT, |
部署, |
端口公开 | 服务的暴露方法,如负载均衡器或节点端口。 | 端口公开方法 |
其中之一:
UNSET |
NOT, |
部署, |
期望的意外网络流 | 检查检测到的网络流量是否是部署的网络基准的一部分。 | 期望的意外网络流 | 布尔值 | ✕ | 仅 运行时 - 网络 |
Ingress 网络策略 | 检查入口 Kubernetes 网络策略是否存在。 | 具有 Ingress 网络策略 | 布尔值 |
regex, |
部署, |
出口网络策略 | 检查出口 Kubernetes 网络策略是否存在。 | 具有 Egress 网络策略 | 布尔值 |
regex, |
部署, |
部分:进程活动 | |||||
进程名称 | 部署中执行的进程的名称。 | 进程名称 | 字符串 |
regex, | 仅 运行时 - 进程 |
Process Ancestor | 部署中执行进程的任何父进程的名称。 | Process Ancestor | 字符串 |
regex, | 仅 运行时 - 进程 |
进程参数 | 部署中执行进程的命令参数。 | 进程参数 | 字符串 |
regex, | 仅 运行时 - 进程 |
Process UID | 部署期间执行的进程的 UNIX 用户 ID。 | Process UID | 整数 |
NOT, | 仅 运行时 - 进程 |
执行意外的进程 | 检查进程执行没有在部署锁定的进程基准中列出的部署。 | 执行意外的进程 | 布尔值 | ✕ | 仅 运行时 - 进程 |
部分:Kubernetes 访问 | |||||
服务帐户 | 服务帐户的名称。 | 服务帐户 | 字符串 |
regex, |
部署, |
自动挂载服务帐户令牌 | 检查部署配置是否自动挂载服务帐户令牌。 | 自动挂载服务帐户令牌 | 布尔值 | ✕ |
部署, |
最低 RBAC 权限 |
如果部署的 Kubernetes 服务帐户等于 | 最低 RBAC 权限 |
其中之一:
DEFAULT | 非 |
部署, |
部分:Kubernetes 事件 | |||||
Kubernetes 操作 |
Kubernetes 操作的名称,如 | Kubernetes 资源 |
其中之一:
PODS_EXEC |
!仅限 | 仅 运行时 - Kubernetes 事件 |
Kubernetes 用户名 | 访问资源的用户的名称。 | Kubernetes 用户名 | 仅限连字符(-)和冒号(:)的字母数字字符 |
regex, | 仅 运行时 - Kubernetes 事件 |
Kubernetes 用户组 | 访问资源所属用户的组名称。 | Kubernetes 用户组 | 仅限连字符(-)和冒号(:)的字母数字字符 |
regex, | 仅 运行时 - Kubernetes 事件 |
Kubernetes 资源 | 访问的 Kubernetes 资源的类型。 | Kubernetes 资源 |
其中之一:
配置映射 |
!仅限 | 仅 运行时 - 审计日志 |
Kubernetes API Verb |
用于访问资源的 Kubernetes API 动词,如 | Kubernetes API Verb |
其中之一:
CREATE |
!仅限 | 仅 运行时 - 审计日志 |
Kubernetes 资源名称 | 访问的 Kubernetes 资源的名称。 | Kubernetes 资源名称 | 仅限连字符(-)和冒号(:)的字母数字字符 |
regex, | 仅 运行时 - 审计日志 |
用户代理 |
用于访问资源的用户代理。例如, | 用户代理 | 字符串 |
regex, | 仅 运行时 - 审计日志 |
源 IP 地址 | 用户从中访问资源的 IP 地址。 | 源 IP 地址 | IPV4 或 IPV6 地址 |
regex, | 仅 运行时 - 审计日志 |
是 Impersonated User | 检查请求是否由服务帐户或某些其他帐户模拟。 | 是 Impersonated User | 布尔值 | ✕ | 仅 运行时 - 审计日志 |
6.4.3.1. 为策略条件添加逻辑条件
您可以使用 drag-and-drop 策略字段面板指定策略标准的逻辑条件。
先决条件
- 您必须使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.45 或更新版本。
流程
在 Policy Criteria 部分中,选择 Add a new condition 来添加新策略部分。
- 您可以点 Edit 图标重命名 policy 部分。
- Drag out a policy 字段 部分列出了多个类别中的可用策略标准。您可以扩展和折叠这些类别,以查看策略标准属性。
- 将属性拖到 Drop a policy 字段 到 policy 部分的区域。
根据您选择的属性的类型,您可以获得不同的选项来配置所选属性的条件。例如:
-
如果您选择了带有布尔值
Read-Only Root Filesystem
的属性,您会看到READ-ONLY
和WRITABLE
选项。 如果您选择了带有复合值
环境变量的属性
,您会看到输入Key
、Value
和Value From
字段的值的选项,以及一个图标,以为可用选项添加更多值。- 要组合一个属性的多个值,请点 Add 图标。
-
您也可以点策略部分中列出的逻辑运算符
AND
或OR
,以在AND
和OR
运算符之间进行切换。在 Operator 间的切换只在策略部分内工作,而不是在两个不同的策略部分之间工作。
-
如果您选择了带有布尔值
-
您可以通过重复这些步骤来指定多个
AND
和OR
条件。为添加的属性配置条件后,点 Next 继续创建策略。