使用流进行定向数据治理
在某些业务情况下,您可能会通过连接器获取来自外部源的数据,这些数据会进入保存重要业务信息的服务。 涉及数据丢失防护 (DLP) 策略时,通常需要这两个连接器相互通信。 棘手的部分在于如何确保连接器单向通信,从而确保您宝贵的业务数据不会意外泄露给第三方。 我们将此过程称为管理数据流,比如确保数据只到达应该去的地方 - 这就是所谓的定向数据治理。
目前,DLP 策略不会自动处理定向数据治理。 但不用担心,您可以使用 Power Automate 捕获并阻止任何尝试将您的业务数据发送到外部位置的流。
以下是一个示例:假设您的组织要使用 SharePoint 跟踪 Twitter 数据。 组织担心私人信息最终会从 SharePoint 流向 Twitter。
要确保您的数据沿着正确的方向流动,首先要在 Power Platform 管理中心创建一条 DLP 策略。 在此策略中,您将 SharePoint 和 Twitter 连接器作为业务数据组合在一起。通过这种方式,您可以让人们使用这两个连接器创建流,同时也可确保数据是安全的,不会意外落入坏人之手。
实现定向数据治理的第一步是通过 Power Platform 管理中心创建 DLP 策略,其中包括业务数据组中的 SharePoint 和 Twitter 连接器。 使用本配置允许制作者生成包含这两种连接器的流。
接下来转换到 Power Automate Maker Portal,使用管理员帐户登录即可生成治理流程。 您的目标是生成每小时运行一次的计划流。
“定期”触发器将自动添加到流中。 现在,您将向流中添加初始化变量操作。 将本变量命名为 previousTimestamp,然后加入表达式
ticks(addMinutes(utcNow(),-60))
。 本表达式将计算截至 60 分钟前的时钟周期数。 加入本表达式是因为您要查看上次(即 60 分钟前)运行流后是否创建或修改任何流。添加另一个名为 isFlowAction 的布尔型变量,其默认值为 false。 稍后,您将在检测到流中包含 Twitter 操作时使用本变量。
接下来使用 Power Platform for Admins 连接器并执行以管理员身份列出环境操作,为流提供租户中环境的完整列表。 然后遍历每个环境,查找包含 Twitter 操作的流。
列出所有环境后,可添加流管理连接器并执行以管理员身份列出流操作,列出给定环境的所有流。
以管理员身份列出流操作需要环境名称作为输入参数。 使用以管理员身份列出环境调用返回的名称列。 提供本输入时,自动添加应用到每一个操作,以便允许遍历所有环境。
您只想了解最近修改的流,因此可向流添加条件,比较流上次修改时间戳的时钟周期与之前在流中建立的变量的时钟周期。 要完成本任务,请使用表达式计算上次修改时间戳的时钟周期。 完整语句为
ticks(items('Apply_to_each_2')?['properties']?['lastModifiedTime']) is greater than previousTimestamp
。检测到过去 60 分钟内修改过流时,要确保该流不属于管理员。 本验证有助于避免在后续步骤中尝试将管理员添加为流的共同所有者时出错。 要检测当前流是否属于管理员,请使用 Office 365 用户连接器并执行获取我的个人资料 (v2)操作。 本步骤将返回有关与连接器建立连接的用户信息,本例中为管理员。 接下来将 Office 365 用户操作添加到如果是分支。
现在添加另一个条件,验证创建者对象 ID(来自以管理员身份列出流操作)是否不等于 ID(来自获取我的个人资料 (V2) 操作)。 在如果是分支中,添加属于 Microsoft Flow for Admins 连接器的以管理员身份编辑流所有者角色操作。 此操作将管理员用户添加为流的共有者并且有助于提取流定义,后者要求您是流的共有者。 您可在后续步骤中检索流定义,但现在提供当前环境名称、当前流名称以及有关管理员用户的详细信息,例如电子邮件地址、显示名称和 ID。 可以通过获取我的个人资料 (V2)操作获取这些值。
将管理员帐户添加为流的共同所有者后,可以通过流管理连接器调用以管理员身份获取流操作。
以管理员身份获取流操作的输入包括当前环境名称和流名称。 此操作的输出包括允许您确定 Twitter 操作是否存在的流定义。
要检查是否正在使用 Twitter 操作,请向流中添加条件,验证操作 Api名称(来自以管理员身份获取流操作)是否等于shared_twitter。 添加本条件后,应用应用到每一个循环,因为操作 Api名称属性属于数组并且每个流都可能包含许多操作。
在如果是分支中,更新 isFlowAction 变量,将其设置为 true,因为现已找到包含 Twitter 操作的流。 稍后您将在流中使用本变量确定是否需要禁用流并向流所有者发送电子邮件。
在遍历流中所有操作的应用到每一个变量以外添加另一个条件。 本条件将验证isFlowAction变量值是否为true。
在如果是分支中添加 Microsoft Flow for Admins 连接器,然后选择以管理员身份禁用流操作。 此操作将禁用流,此时信息无法发送到 Twitter。 要调用此操作,请加入当前环境名称和流名称。
禁用某人的流时,需要向其发送电子邮件,告知他流不再运行。 要获取流所有者的电子邮件地址,请使用 Office 365 用户连接器并使用获取用户个人资料 (V2) 操作返回所有者的电子邮件地址。 要获取其电子邮件地址,需要添加可通过以管理员身份列出流操作检索的创建者对象 ID。
使用 Office 365 Outlook 连接器和发送电子邮件 (V2)操作向流所有者发送电子邮件。 使用获取用户个人资料 (V2)操作返回的信息发送本电子邮件,包括 Mail 和 Given Name 属性。 此外,还可以通过添加以管理员身份列出流输出中的 Flow Display Name 属性加入流名称。
由于遍历租户中的所有流,因此需要将 isFlowAction 变量设置为 false,以便查找其他可能包含 Twitter 操作的流。 现在可以保存管理流。
要测试流,请使用其他帐户登录 Power Automate Maker Portal。 现在要创建包含 SharePoint 触发器和 Twitter 操作的流。 DLP 策略不会阻止本应用场景,但您创建的管理流应检测到此应用场景。
现在可以运行之前以管理员身份创建的“检测 Twitter 操作”流。 此流运行时,应检测到流最近进行过修改并且其中包含 Twitter 操作。 因此,将向流所有者发送电子邮件。
如果检查 SharePoint 到 Twitter 的流,您会发现该流已禁用,因为管理员禁用了该流。
但从 Twitter 检索信息并将其发送到 SharePoint 并不会违反治理规则。 因此,可以使用流创建者的帐户创建另一个流,其中包括 Twitter 触发器和 SharePoint 操作。 运行“检测 Twitter 操作”治理流时,此流仍可正常工作并且不会被禁用,因为这是允许的用例。