创建关键字字典

Microsoft Purview 可以识别、监视和保护敏感项。 标识敏感项目有时需要查找关键字,尤其是在标识常规内容(如与医疗保健相关的通信)或不当或露骨语言时。 虽然可以在 创建自定义敏感信息类型时创建关键字列表,但关键字列表的大小有限,如果在 PowerShell 中创建关键字列表,则需要修改 XML 来创建或编辑它们。

相比之下,关键字字典提供更简单的关键字管理,并且规模要大得多,在字典中支持多达 1 MB 的术语 (压缩后) 。 此外,关键字字典可以支持任何语言。 租户限制同样为压缩后 1 MB。 1 MB 的后压缩限制意味着跨租户合并的所有字典可以有近 100 万个字符。

提示

如果你不是 E5 客户,请使用 90 天Microsoft Purview 解决方案试用版来探索其他 Purview 功能如何帮助组织管理数据安全性和合规性需求。 立即从 Microsoft Purview 合规性门户试用中心开始。 了解有关 注册和试用条款的详细信息。

关键字字典限制

每个租户最多可以创建 50 种敏感信息类型, (用于关键字字典的 SIT) 。 若要了解租户中有多少关键字字典,请按照 连接到安全 & 合规性 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 将其导入。 交替,可以从现有关键字字典或现有 关键字字典开始。 最后,可以在 “添加关键字字典 ”对话框中手动输入关键字。 创建关键字字典时,请遵循相同的核心步骤:

使用 Microsoft Purview 门户或 Microsoft 合规性门户创建关键字字典

使用以下步骤为自定义词典创建或导入关键字:

为正在使用的门户选择相应的选项卡。 若要详细了解 Microsoft Purview 门户,请参阅 Microsoft Purview 门户。 若要了解有关合规性门户的详细信息,请参阅 Microsoft Purview 合规性门户

  1. 登录到 Microsoft Purview 门户信息保护>分类器>敏感信息类型

  2. 选择“ + 创建敏感信息类型 ”,然后为敏感信息类型输入 “名称”“说明 ”。 选择“下一步”。

  3. “定义此敏感信息类型模式 ”页上,选择“ + 创建模式”。

  4. “新建模式 ”窗口中,选择 置信度级别

  5. 选择 “添加主要元素 ”,然后选择“ 关键字字典”。

  6. “添加关键字字典” 浮出控件上,可以:

    1. 上传 TXTCSV 格式的字典文件。
    2. 从现有字典中进行选择
    3. 或者通过手动输入关键字并为其指定名称来创建新字典。
  7. 仍在 “新模式” 窗口中,对于 “字符邻近性”,指定必须检测任何支持元素) 字符数 (的距离。 主要元素和支持元素之间的距离越近,检测到的内容就越有可能是你要查找的内容。

  8. 添加要用于提高检测所需内容的准确性 的支持元素

  9. 添加任何 其他检查 ,然后选择 “创建”。

  10. 选择 “下一步” 以继续创建敏感信息类型。 完成后,选择“ 完成”。

使用 PowerShell 通过文件创建关键字词典

通常需要创建大型字典时,可以使用文件或从其他源导出的列表中的关键字。 在下面的示例中,你将创建一个关键字字典,其中包含要筛选外部电子邮件中的疾病列表。 首先,需要 连接到安全性 & 合规性 PowerShell

  1. 将关键字复制到文本文件中,并确保每个关键字位于单独的行中。

  2. 使用 Unicode 编码保存文本文件。 在记事本中,导航到 >“另存为>编码>Unicode”。

  3. 运行下面的 cmdlet,以将文件读入变量中:

    $fileData = [System.IO.File]::ReadAllBytes('<filename>')
    
  4. 运行下面的 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>

注意

Microsoft 365 信息保护支持双字节字符集语言,用于:

  • 简体中文
  • 繁体中文
  • 韩语
  • 日语

此支持适用于敏感信息类型。 有关详细信息,请参阅双字节字符集的信息保护支持发行说明(预览版)

提示

若要检测含有中文/日文字符和单字节字符的模式,或检测含有中文/日文和英文的模式,则需要定义两个变体的关键词或词组。

  • 例如,若要检测像“机密的文件”这样的关键词,则要使用该关键词的两个变体; 一个是在日语和英语文本之间有空格,另一个是在日语和英语文本之间没有空格。 因此,在 SIT 中要添加的关键词应该是“机密的 文档”和“机密的文档”。 同样,若要检测短语 "東京オリンピック2020",则应该使用两个变体;“東京オリンピック 2020”和“東京オリンピック2020”。

除了中文/日语/双字节字符,如果关键字/短语列表还包含非中文/日语单词 (,例如,独立英语单词) ,则应创建两个字典/关键字列表。 一个用于包含中文/日语/双字节字符的关键字,另一个用于英语单词。

  • 例如,如果要创建包含“Highly confidential”、“機密性が高い”和“机密的document”这三个短语的关键字字典/列表,则应创建两个关键字列表。
    1. Highly confidential
    2. “機密性が高い”、“机密的document”和“机密的 document”

当使用双字节连字符或双字节句号创建 regex 时,请确保像在 regex 中转义连字符或句号一样转义这两个字符。 此处有一个示例的 regex 供参考:

  • (?<!\d)([4][0-9]{3}[\-?\-\t]*[0-9]{4}

建议在关键词列表中使用字符串匹配而不是单词匹配。