当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Azure 自动化创建自己的自适应保留策略

作者:精品下载站 日期:2024-12-14 04:08:07 浏览:13 分类:玩电脑

使用 Azure 自动化创建自己的自适应保留策略


通过 DIY 自适应保留策略避免高端许可证

在我上一篇介绍 Microsoft 365 保留策略的自适应范围的文章中,我介绍了如何使用 Azure AD 自定义属性来识别用于保留处理的帐户集。除了花费太长时间来评估和报告范围查询找到的帐户集之外,自适应范围运行良好,并且是确保 Microsoft Purview 保留处理自动应用于特定帐户集而无需管理员持续更新的好方法。

自适应范围的缺点是需要 Office 365 E5 或 Microsoft 365 E5 合规性许可证。微软非常希望最大化其云用户群产生的收入,这可能是 Office 365 用户增长放缓的结果。结果是,任何包含自动处理的功能,尤其是在合规性领域,通常都需要高端许可证。

静态保留策略

具有静态范围的 Microsoft 365 保留策略可供 Office 365 E3 租户使用。静态范围意味着管理员负责管理策略处理的位置集。位置可以是邮箱、网站、组、团队或 OneDrive 帐户。

有时,不需要管理,例如保留策略适用于某种类型的所有位置(例如所有邮箱或所有站点)。在其他情况下,确保策略中指定的静态位置集准确可能需要付出相当大的努力。

PowerShell 和 Azure Automation 提供自适应保留策略更新

我突然想到,应该可以结合 PowerShell 脚本和 Azure 自动化来构建一种自助式自适应保留处理形式。该组合复制了自适应示波器的功能,无需高端许可证。在这种情况下,PowerShell 脚本:

  • 标识保留策略要处理的位置集。自适应范围查询 Azure AD 以查找此信息。我们的脚本也可以做同样的事情。
  • 检查保留策略中已指定的位置,以计算应删除的位置和要添加的位置。
  • 使用新位置更新保留策略。

Azure 自动化按计划运行脚本以检测并将更改应用到保留策略。 Exchange Online 管理模块 V3.0 最近添加了对托管身份的支持,使此过程变得更加容易,即使针对合规性终结点运行的 cmdlet 仍然需要凭据才能连接(Microsoft 正在努力解决此问题,并且修复可能会当您阅读本文时即可使用)。

实施示例

为了证明主体有效,我编写了一个 Azure 自动化 Runbook(在 Azure 自动化环境中运行的脚本版本)。自适应范围可以处理用户和组或 SharePoint Online 网站。对于本演示,脚本通过更新查询找到的用户帐户拥有的 Exchange Online 邮箱和 OneDrive for Business 帐户来处理用户帐户。

首先,我创建了一项具有静态范围的新静态保留策略,并为邮箱和 OneDrive 帐户定义了一个位置(图 1)。尽管这似乎是一个奇怪的步骤,但重要的是执行此操作,并且不要将策略定位于所有可用位置。针对某个位置显示“全部”的策略会查找并处理所有位置。例如,如果您选择处理所有邮箱,则策略将处理所有用户邮箱、共享邮箱和非活动邮箱。

[玩转系统] 使用 Azure 自动化创建自己的自适应保留策略

Microsoft Purview 在处理工作负载的所有可用位置(如所有邮箱)时以不同方式对待保留策略。仅当策略设置为处理选定位置时,脚本使用的 Set-RetentionCompliancePolicy cmdlet 才能更新位置。换句话说,Set-RetentionCompliancePolicy cmdlet 无法在全面处理和选择性处理之间切换策略。

编写脚本

有了目标策略后,我们就可以继续找到一些邮箱和 OneDrive 帐户进行处理。该脚本执行以下操作:

  • 使用托管标识连接到 Microsoft Graph PowerShell SDK,以运行 Get-MgOrganization cmdlet 来查找租户的默认域。我们需要它来计算目标 OneDrive for Business 帐户的 URL。
  • 使用托管标识连接到 Exchange Online。
  • 使用存储在 Azure Key Vault 中的帐户凭据连接到合规性终结点。当 Microsoft 升级合规性 cmdlet 以使用托管身份(或修复基于证书的身份验证)时,将不再需要使用存储的凭据。
  • 使用相同的帐户凭据连接到 SharePoint Online 管理终结点。
  • 查找目标邮箱集。此示例使用与上一篇文章中相同的自定义属性来标记邮箱。
  • 查找租户中的 OneDrive for Business 帐户集,并将所有者名称和 URL 存储在哈希表中。
  • 循环遍历邮箱集,根据 OneDrive 哈希表检查每个邮箱的用户主体名称。如果找到匹配项,我们就知道该 OneDrive 帐户属于邮箱所有者,因此我们将其存储在列表中。
  • 使用 Get-RetentionCompliancePolicy cmdlet 检索策略中的当前位置集。
  • 检查哪些邮箱不在当前位置集中,并创建要添加到策略中的邮箱列表。对 OneDrive 帐户执行相同的操作。
  • 检查是否有任何邮箱和 OneDrive 帐户在策略范围内但不应该在范围内。如果我们发现任何内容,请将其添加到要从策略中删除的位置列表中。
  • 调用 Set-RetentionCompliancePolicy cmdlet 添加应包含在策略中的位置并删除不应包含在策略中的位置。
  • 调用 Get-RetentionCompliancePolicy cmdlet 报告策略现在涵盖的位置集。

我从未见过 Microsoft 用于实现保留策略的活动范围的代码,但我确信会发生类似的处理来找出策略应覆盖的位置集。我确信 Microsoft 代码比我的代码更优雅、更精确(并且不是用 PowerShell 编写的),但重点是该代码可以正常工作,并且可以完成与自适应作用域相同的工作。

请注意,合规性策略最多支持 1,000 个单独邮箱。更重要的是,SharePoint Online 网站和 OneDrive for Business 帐户的限制较低 (100)。生产中使用的脚本的测试和错误处理需要处理这些限制。要绕过这些限制,您可以针对不同的邮箱、网站和帐户组创建具有相同保留设置的多个策略。

Active Directory 的网络安全风险管理

了解如何通过这些网络安全风险管理解决方案预防 AD 攻击并从中恢复。

运行脚本

您可以从 GitHub 下载脚本并自行测试。该脚本在 Azure 自动化中运行。对代码的身份验证部分进行一些更改将使其以交互方式运行。

图 2 显示了脚本在 Azure 自动化会话的测试窗格中运行后的结果。输出显示要添加和删除的邮箱的对象标识符,而 URL 用于 OneDrive for Business 帐户。这些是用于在内部识别位置的值。如果您愿意,可以很容易地更改输出以显示帐户名称。但是,由于脚本作为计划的 Azure 自动化任务运行,除非出现问题,否则没有人可能会查看输出。

[玩转系统] 使用 Azure 自动化创建自己的自适应保留策略

图 3 显示了脚本运行后保留策略的属性。此前,Exchange Online 和 OneDrive for Business 仅标注一个位置,而现在该策略涵盖 24 个邮箱和 23 个帐户。两个数字之间的差异是由于尚未登录 OneDrive 的新帐户造成的。

[玩转系统] 使用 Azure 自动化创建自己的自适应保留策略

此处解释的相同原理可以扩展到为 Microsoft 365 组或 SharePoint Online 网站创建自适应保留策略。这只是 PowerShell 编程的问题。

DIY 并不总是可行

使用 DIY 代码重新创建 Microsoft 365 功能并不总是可行。在这种情况下,创建自定义形式的自适应保留处理相当简单。 PowerShell 和 Azure Automation 的组合有效地复制了 Microsoft 在自适应范围内提供的内容。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯