创建关键字字典
Microsoft Purview 可以识别、监视和保护敏感项。 标识敏感项目有时需要查找关键字,尤其是在标识常规内容(如与医疗保健相关的通信)或不当或露骨语言时。 尽管可以在创建自定义敏感信息类型时创建关键字 (keyword) 列表,但关键字 (keyword) 列表的大小有限,如果在 PowerShell 中创建列表,则需要修改 XML 来创建或编辑它们。
相比之下,关键字 (keyword) 字典提供更简单的关键字管理,并且规模要大得多,在字典中支持多达 1 MB 的术语 (压缩后) 。 此外,关键字 (keyword) 字典可以支持任何语言。 租户限制同样为压缩后 1 MB。 1 MB 的后压缩限制意味着跨租户合并的所有字典可以有近 100 万个字符。
提示
如果你不是 E5 客户,请使用 90 天Microsoft Purview 解决方案试用版来探索其他 Purview 功能如何帮助组织管理数据安全性和合规性需求。 立即在 Microsoft Purview 试用中心开始。 了解有关 注册和试用条款的详细信息。
关键字字典限制
每个租户最多可以创建 50 种敏感信息类型, (关键字 (keyword) 字典上使用的 SIT) 。 若要了解租户中有多少关键字 (keyword) 字典,请按照连接到安全 & 合规性 PowerShell 中的过程连接到租户,然后运行此 PowerShell 脚本:
$rawFile = $env:TEMP + "\rule.xml"
$kd = Get-DlpKeywordDictionary
$ruleCollections = Get-DlpSensitiveInformationTypeRulePackage
[System.IO.File]::WriteAllBytes((Resolve-Path $rawFile), $ruleCollections.SerializedClassificationRuleCollection)
$UnicodeEncoding = New-Object System.Text.UnicodeEncoding
$FileContent = [System.IO.File]::ReadAllText((Resolve-Path $rawFile), $unicodeEncoding)
if($kd.Count -gt 0)
{
$count = 0
$entities = $FileContent -split "Entity id"
for($j=1;$j -lt $entities.Count;$j++)
{
for($i=0;$i -lt $kd.Count;$i++)
{
$Matches = Select-String -InputObject $entities[$j] -Pattern $kd[$i].Identity -AllMatches
$count = $Matches.Matches.Count + $count
if($Matches.Matches.Count -gt 0) {break}
}
}
Write-Output "Total Keyword Dictionary SIT:"
$count
}
else
{
$Matches = Select-String -InputObject $FileContent -Pattern $kd.Identity -AllMatches
Write-Output "Total Keyword Dictionary SIT:"
$Matches.Matches.Count
}
Remove-Item $rawFile
创建关键字词典的基本步骤
最常见的情况是,在文件中编译字典的关键字,例如 .csv 或 .txt 列表。 在创建或编辑期间,可将字典文件上传到 SIT 中,或者通过 PowerShell cmdlet 将其导入。 交替,可以从现有关键字字典或现有 关键字字典开始。 最后,可以在“添加关键字 (keyword) 字典”对话框中手动输入关键字。 创建关键字 (keyword) 字典时,请遵循相同的核心步骤:
使用 Microsoft Purview 门户或 Microsoft 合规性门户创建关键字 (keyword) 字典
使用以下步骤为自定义词典创建或导入关键字:
为正在使用的门户选择相应的选项卡。 根据 Microsoft 365 计划,Microsoft Purview 合规门户已停用或即将停用。
若要详细了解 Microsoft Purview 门户,请参阅 Microsoft Purview 门户。 若要了解有关合规性门户的详细信息,请参阅 Microsoft Purview 合规门户。
登录到 Microsoft Purview 门户信息保护>Classifiers>敏感信息类型。
选择“ + 创建敏感信息类型 ”,然后为敏感信息类型输入 “名称” 和 “说明 ”。 选择“下一步”。
在 “定义此敏感信息类型模式 ”页上,选择“ + 创建模式”。
在 “新建模式 ”窗口中,选择 置信度级别。
选择 “添加主要元素 ”,然后选择“ 关键字字典”。
在“添加关键字 (keyword) 字典”浮出控件上,可以:
- 上传 TXT 或 CSV 格式的字典文件。
- 从现有字典中进行选择。
- 或者通过手动输入关键字并为其指定名称来创建新字典。
仍在 “新模式” 窗口中,对于 “字符邻近性”,指定必须检测任何支持元素) 字符数 (的距离。 主要元素和支持元素之间的距离越近,检测到的内容就越有可能是你要查找的内容。
添加要用于提高检测所需内容的准确性 的支持元素 。
添加任何 其他检查 ,然后选择 “创建”。
选择 “下一步” 以继续创建敏感信息类型。 完成后,选择“ 完成”。
使用 PowerShell 通过文件创建关键字词典
通常需要创建大型字典时,可以使用文件或从其他源导出的列表中的关键字。 在下面的示例中,你将创建一个关键字 (keyword) 字典,其中包含要筛选在外部电子邮件中的疾病列表。 首先,需要 连接到安全性 & 合规性 PowerShell。
将关键字复制到文本文件中,并确保每个关键字 (keyword) 位于单独的行中。
使用 Unicode 编码保存文本文件。 在记事本中,导航到 >“另存为>编码>Unicode”。
运行下面的 cmdlet,以将文件读入变量中:
$fileData = [System.IO.File]::ReadAllBytes('<filename>')
运行下面的 cmdlet,以创建词典:
New-DlpKeywordDictionary -Name <name> -Description <description> -FileData $fileData
在自定义敏感信息类型和 DLP 策略中使用关键字词典
关键字字典可用作自定义敏感信息类型的匹配要求的一部分,也可用作敏感信息类型本身。 这两者都要求创建自定义敏感信息类型。 请按照链接的文章中的说明创建敏感信息类型。 拥有 XML 后,需要 XML 中的 GUID 标识符才能使用该字典。
<Entity id="9e5382d0-1b6a-42fd-820e-44e0d3b15b6e" patternsProximity="300" recommendedConfidence="75">
<Pattern confidenceLevel="75">
<IdMatch idRef=". . ."/>
</Pattern>
</Entity>
若要获得词典标识,请运行下面的命令,并复制 Identity 属性值:
Get-DlpKeywordDictionary -Name "Diseases"
此命令的输出如下所示:
RunspaceId : 138e55e7-ea1e-4f7a-b824-79f2c4252255
Identity : 8d2d44b0-91f4-41f2-94e0-21c1c5b5fc9f
Name : Diseases
Description : Names of diseases and injuries from ICD-10-CM lexicon
KeywordDictionary : aarskog's syndrome, abandonment, abasia, abderhalden-kaufmann-lignac, abdominalgia, abduction contracture, abetalipo
proteinemia, abiotrophy, ablatio, ablation, ablepharia,abocclusion, abolition, aborter, abortion, abortus, aboulomania,
abrami's disease, abramo
IsValid : True
ObjectState : Unchanged
将 标识 值粘贴到自定义敏感信息类型的 XML 中,作为 idRef。 接下来,上传 XML 文件。 字典现在显示在敏感信息类型列表中,你可以直接在策略中使用它,并指定需要匹配多少个关键字。
<Entity id="d333c6c2-5f4c-4131-9433-db3ef72a89e8" patternsProximity="300" recommendedConfidence="85">
<Pattern confidenceLevel="85">
<IdMatch idRef="8d2d44b0-91f4-41f2-94e0-21c1c5b5fc9f" />
</Pattern>
</Entity>
<LocalizedStrings>
<Resource idRef="d333c6c2-5f4c-4131-9433-db3ef72a89e8">
<Name default="true" langcode="en-us">Diseases</Name>
<Description default="true" langcode="en-us">Detects various diseases</Description>
</Resource>
</LocalizedStrings>
提示
若要检测含有中文/日文字符和单字节字符的模式,或检测含有中文/日文和英文的模式,则需要定义两个变体的关键词或词组。
- 例如,若要检测像“机密的文件”这样的关键词,则要使用该关键词的两个变体; 一个是在日语和英语文本之间有空格,另一个是在日语和英语文本之间没有空格。 因此,在 SIT 中要添加的关键词应该是“机密的 文档”和“机密的文档”。 同样,若要检测短语 "東京オリンピック2020",则应该使用两个变体;“東京オリンピック 2020”和“東京オリンピック2020”。
除了中文/日语/双字节字符,如果关键字/短语列表还包含非中文/日语单词,例如,独立英语单词 () ,则应创建两个字典/关键字 (keyword) 列表。 一个用于包含中文/日语/双字节字符的关键字,另一个用于英语单词。
- 例如,如果要创建包含“Highly confidential”、“機密性が高い”和“机密的document”这三个短语的关键字字典/列表,则应创建两个关键字列表。
- Highly confidential
- “機密性が高い”、“机密的document”和“机密的 document”
当使用双字节连字符或双字节句号创建 regex 时,请确保像在 regex 中转义连字符或句号一样转义这两个字符。 此处有一个示例的 regex 供参考:
(?<!\d)([4][0-9]{3}[\-?\-\t]*[0-9]{4}
建议在关键词列表中使用字符串匹配而不是单词匹配。