管理 playbook 流
支持的语言:
本文档介绍了 Flow 组件如何使用分支系统做出决策,从而指导剧本的后续步骤。
条件流程对于让 playbook 能够做出决策至关重要,可根据传入的提醒数据、之前的操作结果或用户输入,将支持请求路由到不同的路径。
以下是可用的流程选项:
- 条件:基于占位符、现有支持请求数据和上一步操作流程的复杂条件。
- 选择题:分析师必须手动回答的问题。
添加条件流
本部分介绍如何使用条件流在剧本中创建动态分支逻辑。
添加单个条件流
如需添加单个“条件”流程,请按以下步骤操作:
- 在响应 > Playbook 页面上,点击打开步骤选择。
- 在步骤选择中,选择流程部分。
- 根据您构建 playbook 的方式,将条件拖动到相应步骤或两个操作之间。
- 双击相应条件以打开对话框。
- 选择所需的实体。如果您使用的是占位符,则占位符的范围限定为此实体组。
- 决定要创建多少个分支。每个分支之间都有一个 OR。
- 为每个分支选择并添加参数,如下所示:
- 从现有占位符列表中选择要评估的相关占位符。对于新用户,如果您尚未提取任何提醒,则此属性为空。
- 选择所需的运算符(例如等于、不包含)
- 选择一个值。
- 定义“后备分支”以避免条件失败。如果某个条件基于之前的操作,而其中一项操作失败(并被跳过),则该条件会继续执行回退分支,而不是停止。如需选择后备分支,请参阅定义后备分支。
- 点击保存。该 playbook 会创建您定义的分支(最多 19 个)以及一个 Else 分支(标记为 E)。
- 为(至少)一个分支设置结果,以将 playbook 标记为已完成。
添加多选题流程
- 将 MultiChoiceQuestion 流拖动到所需的剧本步骤。
- 双击该框以打开侧边栏。
- 在参数标签页中,添加一个问题,并根据需要添加任意数量的答案。
- 如需为分析师的回答配置超时时间,请执行以下操作:
- 点击侧边栏中的设置标签页。
- 将回答时间选项切换为
ON。 - 以天、小时和分钟为单位指定适当的时长。
- 在如果超出响应时间部分下,选择以下操作之一:
- 停止 playbook:如果用户未在规定时间内做出回应,则停止执行 playbook。
- 选择现有分支:从菜单中选择一个已定义的回答分支。如果响应时间超出,剧本会遵循此所选分支。
- 创建新分支:此选项会在 playbook 设计器中生成一个专用分支来处理超时。这样一来,您便可定义不同于流程标准回答选项的具体操作(例如,向经理发送电子邮件)。这个新分支将显示在剧本设计器中,并标记为超出响应时间。
- 可选:审批链接:如果此 MultiChoiceQuestion 用于从电子邮件等外部来源收集审批,请将审批链接切换为
ON。如需详细了解如何设置和使用审批链接,请参阅在操作中分配审批链接。 - 点击保存。该剧本会为提供的每个答案(最多 20 个)打开一个分支,如果已配置,还会打开一个额外的响应时间超出分支。
- 为至少一个答案分支设置结果,以将其标记为完成。
添加“条件”流程
如需添加“条件”流程,请按以下步骤操作:
- 将条件拖到最终步骤框中。
- 点击条件以打开相应对话框。
- 决定要创建多少个分支。每个分支之间都有一个 OR。
- 添加参数:选择所需参数。该列表仅显示相应剧本中的操作脚本结果。
- 选择所需的运算符:等于/不等于、包含/不包含、开头为或大于/小于。
- 选择值(操作结果)。
- 您可以为每个分支添加更多参数,并选择逻辑运算符:AND 或 OR。
- 点击保存。该剧本会打开您定义的最多 19 个分支,以及一个 Else 分支。
- 为至少一个分支设置结果,以完成剧本。
定义后备分支
- 在某个流程(条件)中,选择要用作回退分支的分支。此示例使用 Branch – not risky。 您无需添加回退分支。
- 当 playbook 运行时,如果之前的操作失败,playbook 会选择回退分支并继续运行。
管理步骤失败
playbook 步骤可能会在执行期间失败。默认情况下,如果某个步骤失败,剧本会停止运行,这是一项至关重要的安全机制,可防止继续使用不完整或不正确的数据。不过,在某些情况下,即使某个步骤未返回预期结果,您也希望 playbook 继续运行。对于扩充操作来说,这一点尤其重要,因为您要查找的数据可能并非在所有情况下都存在。您可以决定是停止 playbook 还是跳到下一步。如果失败的步骤对决策至关重要,您可以在下一步中检查上一步是否失败,并相应地决定如何继续(例如,如果某个步骤失败,则转到后备分支)。
失败时跳过
对于任何操作,您都可以将其配置为在失败时跳过相应步骤。启用此设置后,即使操作运行失败或返回错误,剧本也会继续执行下一步。
如需启用此设置,请按以下步骤操作:
- 双击操作块以打开其设置抽屉。
- 在设置标签页中,前往如果步骤失败部分。
- 选择跳过此步骤。
使用条件进行高级错误处理
“失败时跳过”选项适用于基本情况,但更可靠的方法是使用条件流程创建专门的错误处理路径。这样一来,当某个步骤失败时,剧本就可以采取不同的操作,例如通知分析师或记录错误。
如需创建错误处理路径,请按以下步骤操作:
- 在可能失败且您想为其定义特定失败路径的操作之后,添加一个条件流程块。
- 双击条件块以打开其对话框。
- 前往设置标签页,然后在如果上一个操作失败部分中,选择要将流程导向哪个分支。重要提示:如果上一个操作失败条件并非只是检查是否存在任何之前的失败;它会检查当前条件的评估中使用的结果所对应的上一个操作是否失败。如果该相关操作失败,则无法确定条件,并且流程会定向到所选分支。这样一来,您就可以处理依赖项失败的情况,防止条件无法得到解决。
- 在此失败分支中,您可以添加发送通知电子邮件、创建任务或记录失败等操作。
例如,假设有一个 playbook 尝试解析用户的所有者。如果解析用户所有者操作失败(例如,用户在 Active Directory 中不存在),该 playbook 不会停止。相反,条件块会检测到故障,并将流程定向到另一个分支,在该分支中,它可以向安全团队发送有关数据丢失的电子邮件,从而确保 playbook 继续运行而不会中断。<
移除流程
从剧本中移除流程时,系统会提示您移除整个分支还是仅移除其中的一个方面。
合并分支
您可以将 playbook 的不同分支合并为一个分支。为此,请从一个分支中拖动某个操作,然后将其放到另一个分支的最终步骤框中。playbook 可以在此之后继续,也可以在此处结束。
逻辑运算符在条件中的运作方式
本部分阐明了 playbook 中的条件运算符如何评估包含单个或多个项(例如,提醒中的实体或事件)的字段。了解字段是字符串还是列表对于 playbook 逻辑至关重要。
数据类型在条件评估中的作用
运算符行为 (Equals、Contains) 因数据类型而异:
- 单项背景信息:包含一个实体的提醒中的
[Entity.Identifier]等字段会被视为单个字符串。 - 多项内容情境:如果提醒包含多个实体,则其中的同一字段为字符串列表。
equals 和 contains 的运算符行为
以下部分将讨论这些运算符的运作方式。
Equals 运算符
Equals 运算符直接比较两个值。
- 单项字段(字符串)检查是否完全匹配。
- 假设
[Entity.Identifier]为"Tom"。 - 然后,条件
if [Entity.Identifier] equals "Tom"为 True。
- 假设
- 多项字段(列表)检查整个列表是否等于指定字符串。列表永远不会等于单个字符串。
- 假设
[Entity.Identifier]是列表(Tom, Kai) - 这样,条件
if [Entity.Identifier] equals "Tom, Kai"始终为 False。这是因为[Entity.Identifier]是一个列表,而“Tom, Kai”是一个字符串。
- 假设
Contains 运算符
Contains 运算符也会因数据类型而异:
- 单项字段(字符串)执行子字符串搜索。如果字符串包含相应值,则返回
True。- 假设
[Entity.Identifier]为"user-1234"。 - 然后,条件
if [Entity.Identifier] contains "user"为 True。
- 假设
- 多项字段(列表)会检查列表中的项是否完全匹配。不执行子字符串搜索。
- 假设
[Entity.Identifier]是一个列表 ("UserA@corp.com", "UserB@corp.com")。 - 然后,条件
if [Entity.Identifier] contains "corp"为 False。
- 假设
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。