在 Exchange 2013 中开发 DLP 策略模板文件
适用于:Exchange Server 2013
本概述阐明了用于数据丢失防护 (DLP) 策略模板文件的 XML 架构定义组件,还提供了 XML 格式的示例策略文件。 在开始之前,了解整个 DLP 体系结构和规则开发过程很有帮助。 有关详细信息,请参阅数据丢失防护和定义您自己的 DLP 模板和信息类型。
为了便于采纳和管理数据丢失防护解决方案,Microsoft Exchange Server 2013 中引入了被称为 DLP 策略和策略模板的概念模型。 DLP 策略模板为您预期的 DLP 策略提供初步设计。 为了使策略更富有意义,DLP 策略模板必须封装为满足特定策略目标(如管理或业务需求)所需的所有指令和数据对象。 模板不是特定于环境的。 它只是策略的定义或模型,可以作为产品配置的一部分提供,或者由独立软件发布者和合作伙伴提供。 另一方面,DLP 策略是特定于开发环境的模板的运行时实例化。 通过使用传输规则,现有消息策略框架可以包括 DLP 策略。 传输规则在采纳和表达 DLP 解决方案的丰富性方面给予了很大的灵活性。
策略模板源和结构
DLP 策略模板通常受到许多源的影响,例如基于服务器的处理指令、客户端计算机策略,以及其他策略结构,如下图所示:
可通过 Exchange 命令行管理程序和基于 Internet 的界面(例如 Exchange 管理中心)为 DLP 策略模板提供简单的管理操作,其中包括导入、导出、删除和查询功能。 在创建过程中引用 DLP 策略模板可以创建 DLP 策略。 这些引用的 DLP 策略模板可以是系统中安装的策略所引用的模板(存储在 Active Directory 域服务中),也可以作为直接来自外部提供策略的输入。
DLP 策略模板表示为 XML 文档。 Exchange 内部及外部提供的策略使用单个 XML 架构。 XML 文档的概念结构如下表所示,其中显示了一些主要元素。 策略组件定义集可帮助你实现特定的策略目标,例如法规或业务需求。
结构元素 | 含义或示例 |
---|---|
Publisher | Microsoft 或合作伙伴 |
Version | 15.0.1.0 |
Policy Name | PCI-DSS |
说明 | PCI-DSS DLP 策略可帮助检测是否存在受 PCI 数据安全标准约束的信息 (PCI DSS) ,包括信用卡或借方卡号码等信息。 使用此策略并不能确保遵守任何法规。 在您的测试完成之后,请在 Exchange 中进行所需的配置更改,使信息传输符合您组织的策略。 相关示例包括,配置已知业务合作伙伴的 TLS 或添加更多限制的传输规则操作,比如向包含此类型数据的邮件添加权限保护。 |
Metadata | 用来描述地方法规、国家或地区、关键字以及其他信息的标记。 |
Set of policy constructs | 传输规则定义,例如条件和操作。 通过交互式通知控制客户端体验的电子邮件客户端行为定义。 需要与客户端的特定环境设置相协调的配置参考(可选)。 |
Set of data classifications | 指定分类实体或相关性。 实体有计数和可信度;相关性只有可信度。 包括自身属性和分类架构的集合。 |
策略模板格式定义
DLP 策略模板表示为 XML 文档,该文档遵循以下架构。 请注意,XML 区分大小写。 例如, dlpPolicyTemplates
将正常工作,但 DlpPolicyTemplates
不起作用。
<?xml version="1.0" encoding="UTF-8"?>
<dlpPolicyTemplates>
<dlpPolicyTemplate id="F7C29AEC-A52D-4502-9670-141424A83FAB" mode="Audit" state="Enabled" version="15.0.2.0">
<contentVersion>4</contentVersion>
<publisherName>Microsoft</publisherName>
<name>
<localizedString lang="en">PCI-DSS</localizedString>
</name>
<description>
<localizedString lang="en">Detects the presence of information subject to Payment Card Industry Data Security Standard (PCI-DSS) compliance requirements.</localizedString>
</description>
<keywords></keywords>
<ruleParameters></ruleParameters>
<ruleParameters/>
<policyCommands>
<!-- The contents below are applied/executed as rules directly in PS - -->
<commandBlock>
<![CDATA[ new-transportRule "PCI-DSS: Monitor Payment Card Information Sent To Outside" -DlpPolicy "%%DlpPolicyName%%" -SentToScope NotInOrganization -SetAuditSeverity High -MessageContainsDataClassifications @{Name="Credit Card Number"; MinCount="1" } -Comments "Monitors payment card information sent to outside the organization as part of the PCI-DSS DLP Policy."]]>
</commandBlock>
<commandBlock>
<![CDATA[ new-transportRule "PCI-DSS: Monitor Payment Card Information Sent To Within" -DlpPolicy "%%DlpPolicyName%%" -Comments "Monitors payment card information sent inside the organization as part of the PCI-DSS DLP Policy." -SentToScope InOrganization -SetAuditSeverity Low -MessageContainsDataClassifications @{Name="Credit Card Number"; MinCount="1" } ]]>
</commandBlock>
</policyCommands>
<policyCommandsResources></policyCommandsResources>
</dlpPolicyTemplate>
</dlpPolicyTemplates>
如果包含在 XML 文件中的任何元素的参数包含空格,该参数必须使用双引号括住,否则它将无法正常工作。 在下面的示例中,后面的 -SentToScope
参数是可接受的,并且不包含双引号,因为它是一个没有空格的连续字符串。 但是,为 Comments
提供 的参数不会显示在 Exchange 管理中心中,因为没有双引号,并且包含空格。
<CommandBlock><![CDATA[ new-transportRule "PCI-DSS: Monitor Payment Card Information Sent To Within" -DlpPolicy "PCI-DSS" -Comments Monitors payment card information sent inside the organization -SentToScope InOrganization -SetAuditSeverity Low -MessageContainsDataClassifications @{Name="Credit Card Number"; MinCount="1" } ]]> </CommandBlock>
localizedString 元素
模板格式提供本地化模板中的字符串的功能,这些字符串可能呈现给最终用户,例如,作为选择安装哪些 DLP 策略模板的一部分。 localizedString 元素可用于为“名称”和“描述”字段提供多种定义。
ruleParameters 节点
这是一组可选的参数,在创建 DLP 策略以映射到特定于部署的对象时,需要在模板实例化阶段提供这些参数。 例如部署中可用的实际通讯组。
dlpPolicyTemplate 元素
这是 DLP 策略模板的根元素,每个模板都需要此元素。 可用属性如下表所示:
属性名称 | 是否必需? | 说明 |
---|---|---|
版本 | 是 | 此 DLP 策略模板文档使用的版本号。 |
State | 否 | 策略状态的默认配置(可选)。 |
Mode | 否 | 策略模式的默认配置(可选)。 |
Id | 否 | 用来唯一标识此 DLP 策略模板定义的 GUID,格式如下所示:"A29C69BF-4F98-47F1-9A99-5771DFD2C27F"。 |
子元素包括以下一系列元素。
子元素 | (最小值, 最大值) | 说明 |
---|---|---|
PublisherName | (1, 1) | 此模板发布者的元数据 |
Name | (1, 1) | 此模板的本地化名称。 |
Description | (1, 1) | 此模板的本地化描述。 |
Keywords | (1, 1) | 适用于此模板的关键字列表。 模板可能会有一个空的关键字列表。 |
RuleParameters | (0, 1) | 策略定义中使用的模板参数列表。 |
PolicyCommands | (0, 1) | 此策略的传输规则定义列表。 这是可选元素。 |
DLP 策略模板:PolicyCommands
此部分的策略模板包含用于实例化策略定义的 Exchange 命令行管理程序命令的列表。 导入过程执行每个命令作为实例化过程的一部分。 这里提供了一些策略命令示例。
<PolicyCommands>
<!-- The contents below are applied/executed as rules directly in PS - -->
<CommandBlock> <![CDATA[ new-transportRule "PCI-DSS: Monitor Payment Card Information Sent To Outside" -DlpPolicy "PCI-DSS" -SentToScope NotInOrganization -SetAuditSeverity High -MessageContainsDataClassifications @{Name="Credit Card Number"; MinCount="1" } -Comments "Monitors payment card information sent to outside the organization as part of the PCI-DSS DLP policy."]]></CommandBlock>
<CommandBlock><![CDATA[ new-transportRule "PCI-DSS: Monitor Payment Card Information Sent To Within" -DlpPolicy "PCI-DSS" -Comments "Monitors payment card information sent inside the organization as part of the PCI-DSS DLP policy." -SentToScope InOrganization -SetAuditSeverity Low -MessageContainsDataClassifications @{Name="Credit Card Number"; MinCount="1" } ]]> </CommandBlock>
</PolicyCommands>
cmdlet 格式是所使用的 cmdlet 的标准 Exchange 命令行管理程序 cmdlet 语法。 这些命令将按顺序执行。 每个命令节点都可以包含一个脚本块,该块由多个命令组成。 以下示例表明了如何在 dlp 策略模板中嵌入分类规则包,并且作为策略创建过程的一部分来安装规则包。 在策略模板中嵌入分类规则包,之后此规则包作为参数传输到模板中的 cmdlet:
<CommandBlock>
<![CDATA[
$rulePack = [system.Text.Encoding]::Unicode.GetBytes('<?xml version="1.0" encoding="utf-8"?>
<rulePackage xmlns="http://schemas.microsoft.com/office/2011/mce">
<RulePack id="c3f021a3-c265-4dc2-b3a7-41a1800bf518">
<Version major="1" minor="0" build="0" revision="0"/>
<Publisher id="e17451d3-9648-4117-a0b1-493a6d5c73ad"/>
<Details defaultLangCode="en-us">
<LocalizedDetails langcode="en-us">
<PublisherName>Contoso</PublisherName>
<Name>Contoso Sample Rule Pack</Name>
<Description>This is a sample rule package</Description>
</LocalizedDetails>
</Details>
</RulePack>
<Rules>
<Entity id="7cc35258-6b35-4415-baff-a76d1a018980" patternsProximity="300" recommendedConfidence="85" workload="Exchange">
<Pattern confidenceLevel="85">
<IdMatch idRef="Regex_Contoso" />
<Any minMatches="1">
<Match idRef="Regex_conf" />
</Any>
</Pattern>
</Entity>
<Regex id="Regex_Contoso">(?i)(\bContoso\b)</Regex>
<Regex id="Regex_conf">(?i)(\bConfidential\b)</Regex>
<LocalizedStrings>
<Resource idRef="7cc35258-6b35-4415-baff-a76d1a018980">
<Name default="true" langcode="en-us">
Confidential Information Rule
</Name>
<Description default="true" langcode="en-us">
Sample rule pack - Detects Contoso confidential information
</Description>
</Resource>
</LocalizedStrings>
</Rules>
</RulePackage>
')
New-ClassificationRuleCollection -FileData $rulePack
New-TransportRule -name "customEntity" -DlpPolicy "%%DlpPolicyName%%" -SentToScope NotInOrganization -MessageContainsDataClassifications @{Name="Confidential Information Rule"} -SetAuditSeverity High]]>
</CommandBlock>
子元素包括以下有序元素序列。
子元素 | (最小值, 最大值) | 说明 |
---|---|---|
CommandBlock | (1, n) | 在 PowerShell 中执行的命令块。 每个命令块均按顺序执行。 |