在 Amazon Macie 中构建自定义数据标识符 - Amazon Macie

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon Macie 中构建自定义数据标识符

自定义数据标识符是您定义的一组标准,用于检测 Amazon Simple Storage Service (Amazon S3) 对象中的敏感数据。标准由定义要匹配的文本模式的正则表达式(regex)和可选的字符序列以及优化结果的邻近规则组成。

使用自定义数据标识符,您可以定义反映组织特定场景、知识产权或专有数据(例如,员工 ID、客户账号或内部数据分类)的检测标准。如果将敏感数据发现作业自动敏感数据发现配置为使用这些标识符,则可以用增添 Amazon Macie 提供的托管数据标识符的方式分析 S3 对象。

除了检测标准外,您还可以为自定义数据标识符生成的敏感数据调查发现定义自定义严重性设置。默认情况下,Macie 会为自定义数据标识符生成的所有调查发现分配严重性,严重性不会根据与自定义数据标识符的检测标准匹配的文本出现次数而变化。通过定义自定义严重性设置,您可以根据匹配标准的文本的出现次数指定要分配的严重性。

为自定义数据标识符定义检测标准

在创建自定义数据标识符时,指定一个正则表达式 (regex) 来定义要在 S3 对象中匹配的文本模式。Macie 支持 Perl 兼容正则表达式 (PCRE) 库提供的正则表达式模式语法子集。有关更多信息,请参阅此部分后面的正则表达式支持

您还可以指定字符序列,例如字词和短语,以及一个邻近规则来优化结果。

关键字

这些是特定的字符序列,必须靠近匹配正则表达式模式的文本。接近要求会随 S3 对象的存储格式或文件类型而变化:

  • 对于结构化的列数据,如果文本匹配 regex 模式,并且关键字位于存储文本的字段或列的名称中,或者文本前面有相同字段或单元格值中关键字的最大匹配距离并在其范围内,则 Macie 将包括结果。这适用于 Microsoft Excel 工作簿、CSV 文件和 TSV 文件。

  • 对于结构化的、基于记录的数据,如果文本匹配 regex 模式并且文本在关键字的最大匹配距离范围内,则 Macie 将包括结果。关键字可以是存储文本的字段或数组路径中某个元素的名称,也可以位于存储文本的字段或数组中的相同值之前并成为该值的一部分。这适用于 Apache Avro 对象容器、Apache Parquet 文件、JSON 文件和 JSON Lines 文件。

  • 对于非结构化数据,如果文本匹配 regex 模式并且文本前面有关键字的最大匹配距离并在其范围内,则 Macie 将包括结果。对于 Adobe 便携式文档格式文件、Microsoft Word 文档、电子邮件消息和非二进制文本文件(CSV、JSON、JSON Lines 和 TSV 文件除外)都是如此。这包括这些类型的文件中的任何结构化数据,例如表。

您最多可以指定 50 个关键字。每个关键字可以包含 3–90 个 UTF-8 字符。关键字不区分大小写。

最大匹配距离

这是基于字符的关键字邻近规则。Macie 使用此设置来确定关键字是否位于与正则表达式模式匹配的文本之前。该设置定义了完整关键字的结尾与匹配正则表达式模式的文本结尾之间可以存在的最大字符数。如果文本与正则表达式模式匹配,出现在至少一个完整的关键字之后,并且出现在关键字的指定距离范围内,则 Macie 会将其包括在结果中。否则,Macie 会将其排除在结果之外。

您可以指定 1–300 个字符的距离。默认距离为 50 个字符。为了获得最佳结果,此距离应大于正则表达式设计用于检测的最小文本字符数。如果只有部分文本在关键字的最大匹配距离之内,则 Macie 不会将其包括在结果中。

忽略字词

这些是要从结果中排除的特定字符序列。如果文本与正则表达式模式匹配,但它包含忽略字词,则 Macie 不会将其包括在结果中。

您最多可以指定 10 个忽略字词。每个忽略字词可以包含 4–90 个 UTF-8 字符。忽略字词区分大小写。

例如,许多公司对员工 ID 都有特定的语法。其中一种语法可能是:一个大写字母,表示员工是全职 (F) 还是兼职 (P) 员工,后跟一个连字符 (-),然后是一个用于识别员工的八位数序列。示例:F-12345678(表示全职员工)和 P-87654321(表示兼职员工)。

如果您创建自定义数据标识符来检测使用此语法的员工 ID,则可以使用以下正则表达式:[A-Z]-\d{8}。为了完善分析并避免误报,您还可以配置自定义数据标识符以使用关键字员工员工 ID,最大匹配距离为 20 个字符。根据这些标准,只有当文本出现在关键字员工员工 ID 之后并且所有文本都出现在其中一个关键字的 20 个字符范围内时,结果才会包括与正则表达式匹配的文本。

要演示关键字如何帮助您查找敏感数据并避免误报,请观看以下视频:

为自定义数据标识符定义调查发现严重性设置

在创建自定义数据标识符时,您还可以为标识符生成的敏感数据调查发现定义自定义严重性设置。默认情况下,Macie 会为自定义数据标识符生成的所有调查发现分配严重性,如果 S3 对象包含至少一次与自定义数据标识符的检测标准相匹配的文本,则 Macie 会自动为产生的调查发现分配严重性。

使用自定义严重性设置,您可以根据与自定义数据标识符的检测标准匹配的文本的出现次数指定要分配的严重性。为此,您可以为多达三个严重性级别定义出现次数阈值(最不严重)、(最严重)。出现次数阈值是 S3 对象中必须存在的最小匹配数,以生成具有具有指定严重性的调查发现。如果指定多个阈值,则这些阈值必须按严重性从升序排列。

例如,下图显示了自定义数据标识符的严重性设置,该标识符指定了三个出现次数阈值,Macie 支持的每个严重性级别对应一个阈值。

自定义数据标识符页面的严重性部分包含三个出现阈值:1 表示低严重性级别,50 表示中严重性级别,100 表示高严重性级别。

下表显示了自定义数据标识符生成的调查发现的严重性。

出现次数阈值 严重性级别 结果
1 如果 S3 对象包含 1-49 次符合检测标准的文本,则产生的调查发现的严重性为
50 如果 S3 对象包含 50-99 次符合检测标准的文本,则产生的调查发现的严重性为
100 如果 S3 对象包含 100 次或更多次符合检测标准的文本,则产生的调查发现的严重性为

您也可以使用严重性设置来指定是否要创建调查发现。如果 S3 对象包含的出现次数少于最低出现次数阈值,则 Macie 不会创建调查发现。

创建自定义数据标识符

按照以下步骤,通过使用 Amazon Macie 控制台创建自定义数据标识符。要以编程方式创建自定义数据标识符,请使用 Amazon Macie API 的 CreateCustomDataIdentifier 操作。

创建自定义数据标识符
  1. 通过以下网址打开 Amazon Macie 控制台:https://console.aws.amazon.com/macie/

  2. 在导航窗格中的设置下方,选择自定义数据标识符

  3. 选择 Create(创建)。

  4. 对于名称,输入自定义数据标识符的名称。名称可以包含多达 128 个字符。

    避免在名称中包含任何敏感数据。您账户的其他用户也许能够看到该名称,这取决于他们在 Macie 中允许执行的操作。

  5. (可选)对于描述,输入自定义数据标识符的简要描述。描述可包含多达 512 个字符。

    避免在描述中包含任何敏感数据。您账户的其他用户也许能够看到该描述,这取决于他们在Macie中允许执行的操作。

  6. 对于正则表达式,输入定义要匹配的文本模式的正则表达式 (regex)。正则表达式可以包含多达 512 个字符。要了解支持的语法和约束条件,请参阅此部分后面的正则表达式支持

  7. (可选)对于关键字,输入多达 50 个字符序列(用逗号分隔)以定义特定文本,该文本必须贴近与正则表达式模式匹配的文本。每个关键字可以包含 3–90 个 UTF-8 字符。关键字不区分大小写。

    只有当文本与正则表达式模式匹配并且文本位于其中一个关键字的最大匹配距离范围内时,Macie 才会在结果中包括一次出现,如前面的主题所述。

  8. (可选)对于忽略字词,输入多达 10 个字符序列(用逗号分隔),用于定义要从结果中排除的特定文本。每个忽略字词可以包含 4–90 个 UTF-8 字符。忽略字词区分大小写。

    如果文本与正则表达式模式匹配,但它包含其中一个忽略字词,则 Macie 会从结果中排除一次出现。

  9. (可选)对于最大匹配距离,输入关键字结尾与匹配正则表达式的文本结尾之间的最大字符数。距离可以为 1–300 个字符。默认距离为 50 个字符。

    只有当文本与正则表达式模式匹配并且文本在完整关键字的这个距离范围内时,Macie 才会在结果中包括一次出现,如前面的主题所述。

  10. 对于严重性,选择您希望 Macie 如何为自定义数据标识符生成的敏感数据调查发现分配严重性:

    • 要自动为所有调查发现分配严重性,请选择为任意数量的匹配项使用“中”严重性(默认)。使用此选项,如果受影响的 S3 对象包含一次或多次符合检测标准的文本,则 Macie 会自动为调查发现分配严重性。

    • 要根据您指定的出现次数阈值来分配严重性,请选择使用自定义设置来确定严重性。然后使用出现次数阈值严重性级别选项来指定 S3 对象中必须存在的最小匹配数,以生成具有所选严重性的调查发现。

      例如,要为报告符合检测标准的文本的 100 次或更多次出现的调查发现分配严重性,请在出现次数阈值框中输入 100,然后从严重性级别列表中选择

      您最多可以指定三个出现次数阈值,Macie 支持的每个严重性级别对应一个阈值:(表示最不严重)、(表示最严重)。如果指定多个阈值,则阈值必须按严重性从升序排列。如果 S3 对象包含的出现次数少于指定的最低阈值,则 Macie 不会创建调查发现。

  11. (可选)对于标签,请选择添加标签,然后最多输入 50 个要分配给自定义数据标识符的标签。

    标签是您定义并分配给某些类型的 AWS 资源的标记。每个标签都包含一个必需的标签键和一个可选的标签值。标签可以帮助您以不同的方式识别、分类和管理资源,例如,按用途、所有者、环境或其他标准。要了解更多信息,请参阅 为 Amazon Macie 资源添加标签

  12. (可选)对于评测,在样本数据框中输入最多 1,000 个字符,然后选择测试以测试检测标准。Macie 评测样本数据,并报告与检测标准匹配的文本出现次数。您可根据需要多次重复此步骤,以完善和优化标准。

    注意

    我们强烈建议您在保存自定义数据标识符之前测试并完善检测标准。由于敏感数据发现作业使用自定义数据标识符,因此您无法在保存自定义数据标识符后对其进行编辑。这有助于确保您拥有敏感数据调查发现和发现结果的不可变历史记录,以便您执行数据隐私和保护的审计或调查。

  13. 完成后,选择 Submit(提交)。

Macie 测试设置并验证它是否可以编译正则表达式。如果任何设置或正则表达式出现问题,则会发生错误并指明问题的性质。解决任何问题后,您可以保存自定义数据标识符。

自定义数据标识符中支持正则表达式

Macie 支持 Perl 兼容正则表达式 (PCRE) 库提供的正则表达式模式语法子集。在 PCRE 库提供的构造中,Macie 不支持以下模式元素:

  • 反向引用

  • 捕获组

  • 条件模式

  • 嵌入式代码

  • 全局模式标志,如/i/m/x

  • 递归模式

  • 正向和负向后视和前视零宽度断言,如?=?!?<=?<!

要为自定义数据标识符创建有效的正则表达式模式,还请注意以下提示和建议:

  • 锚点 – 仅当您希望模式出现在文件的开头或结尾而不是行的开头或结尾时,才使用锚点(^$)。

  • 有界重复 – 出于性能考虑,Macie 限制了有界重复组的大小。例如,\d{100,1000} 无法在 Macie 中进行编译。为了近似于此功能,您可以使用开放式重复,如 \d{100,}

  • 不区分大小写 – 要使模式的某些部分不区分大小写,可以使用 (?i) 构造代替 /i 标志。

  • 性能 – 无需手动优化前缀或者替代项。例如,将 /hello|hi|hey/ 更改为 /h(?:ello|i|ey)/ 不会提高性能。

  • 通配符 – 出于性能考虑,Macie 限制了重复通配符的数量。例如,a*b*a* 无法在 Macie 中进行编译。

为了防范格式错误或长时间运行的表达式,Macie 会自动根据示例文本集合测试正则表达式模式。