管理 playbook 流程
支持的语言:
本文档介绍了 Flow 组件如何使用分支系统来做出决策,从而指导剧本的后续步骤。
条件流对于让 playbook 做出决策至关重要,它可以根据传入的提醒数据、之前的操作结果或用户输入,将案例路由到不同的路径。
您可以使用以下流程选项:
- 条件:基于占位符、现有案例数据和之前的操作流程的复杂条件。
- 选择题:分析师必须手动回答的问题。
添加条件流程
本部分介绍了如何使用条件流在 playbook 中创建动态分支逻辑。
添加单个条件流
如需添加单个“条件”流程,请按以下步骤操作:
- 在响应 > Playbook 页面上,点击打开步骤选择。
- 在步骤选择中,选择流程部分。
- 根据您构建 playbook 的方式,将条件拖动到相应步骤或两个操作之间。
- 双击该条件以打开对话框。
- 选择所需的实体。如果您使用的是占位内容,则它们的作用范围限定为此实体组。
- 决定要创建多少个分支。每个分支之间都有一个 OR。
- 为每个分支选择并添加参数,如下所示:
- 从现有占位符列表中选择要评估的相关占位符。对于新用户,如果您尚未注入任何提醒,则此字段为空。
- 选择所需的运算符(例如等于、不包含)
- 选择一个值。
- 定义“后备分支”以避免条件失败。如果某个条件基于之前的操作,而其中一项操作失败(并被跳过),则该条件会继续执行回退分支,而不是停止。如需选择后备分支,请参阅定义后备分支。
- 点击保存。该 playbook 会创建您定义的最多 19 个分支,以及一个 Else 分支(标记为 E)。
- 为(至少)一个分支设置结果,以将 playbook 标记为已完成。
添加单选题流程
- 将 MultiChoiceQuestion 流拖动到所需的策略方案步骤。
- 双击该框即可打开侧边栏。
- 在参数标签页中,添加一个问题,并根据需要提供多个回答。
- 如需为分析师的回答配置超时时间,请执行以下操作:
- 点击侧边栏中的设置标签页。
- 将回答时间选项切换为
ON。 - 以天、小时和分钟为单位指定适当的时长。
- 在如果超出响应时间部分下,选择以下操作之一:
- 停止 Playbook:如果用户未在指定时间内做出回应,Playbook 执行会停止。
- 选择现有分支:从菜单中选择一个已定义的答案分支。如果超出响应时间,playbook 会遵循此所选分支。
- 创建新分支:此选项会在 playbook 设计器中生成一个专用分支来处理超时。这样,您就可以定义与流程的标准回答选项不同的特定操作(例如,向经理发送电子邮件)。这个新分支将显示在剧本设计器中,并标记为“超出响应时间”。
- 可选:审批链接:如果此 MultiChoiceQuestion 用于从电子邮件等外部来源收集审批,请将审批链接切换为
ON。如需详细了解如何设置和使用审批链接,请参阅在操作中分配审批链接。 - 点击保存。Playbook 会为提供的每个回答(最多 20 个)打开一个分支,如果已配置,还会打开一个额外的响应超时分支。
- 为至少一个答案分支设置结果,以将其标记为完成。
添加条件流
如需添加“条件”流程,请按以下步骤操作:
- 将条件拖到最终步骤框中。
- 点击条件以打开对话框。
- 决定要创建多少个分支。每个分支之间都有一个 OR。
- 添加形参:选择所需的形参。该列表仅显示此 playbook 中的操作脚本结果。
- 选择所需的运算符:等于/不等于、包含/不包含、开头为或大于/小于。
- 选择值(操作结果)。
- 您可以向每个分支添加更多参数,并选择逻辑运算符:AND 或 OR。
- 点击保存。剧本会打开您定义的最多 19 个分支,以及一个 Else 分支。
- 请为至少一个分支设置结果,以完成 playbook。
定义后备分支
- 在某个流程(条件)中,选择要用作回退分支的分支。此示例使用 Branch – not risky。 您无需添加后备分支。
- 当 playbook 运行时,如果之前的操作失败,playbook 会选择回退分支并继续运行。
管理步骤失败
在执行期间,playbook 步骤可能会失败。默认情况下,Playbook 会在某个步骤失败时停止运行,这是一项重要的安全机制,可防止继续使用不完整或不正确的数据。不过,在某些情况下,即使某个步骤未返回预期结果,您也希望剧本继续执行。对于丰富化操作,情况尤其如此,因为您要查找的数据可能并非在所有情况下都存在。您可以决定是停止 playbook 还是跳到下一步。如果失败的步骤对决策至关重要,您可以在下一步中检查上一步是否失败,并据此决定如何继续(例如,如果某个步骤失败,则转到后备分支)。
失败时跳过
对于任何操作,您都可以将其配置为在失败时跳过相应步骤。启用此设置后,即使操作运行失败或返回错误,剧本也会继续执行下一步。
如需启用此设置,请按以下步骤操作:
- 双击操作区块以打开其设置抽屉。
- 在设置标签页中,前往如果步骤失败部分。
- 选择跳过此步骤。
使用条件进行高级错误处理
“失败时跳过”选项适用于基本情况,但更可靠的方法是使用条件流程来创建专门的错误处理路径。这样一来,当某个步骤失败时,playbook 就可以采取一组不同的操作,例如通知分析师或记录错误。
如需创建错误处理路径,请按以下步骤操作:
- 在可能失败的操作之后,如果您想定义特定的失败路径,请添加条件流程块。
- 双击条件块以打开其对话框。
- 前往设置标签页,然后在如果上一个操作失败部分中,选择要将流程定向到哪个分支。重要提示:如果上一个操作失败条件不仅仅是检查是否有任何上一个操作失败,还会检查当前条件评估中使用的上一个操作是否失败。如果该相关操作失败,则无法确定条件,并且流程会定向到所选分支。这样一来,您就可以处理依赖项失败的情况,防止条件无法解析。
- 在此失败分支中,您可以添加发送电子邮件通知、创建任务或记录失败等操作。
例如,假设有一个 playbook 尝试解决用户的“所有者”问题。如果“解决用户所有者”操作失败(例如,用户在 Active Directory 中不存在),剧本不会停止。相反,条件块会检测到失败,并将流程定向到另一个分支,在该分支中,它可以向安全团队发送有关数据缺失的电子邮件,从而确保 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 专业人士的解答。