允许列表的配置选项和要求 - Amazon Macie

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

允许列表的配置选项和要求

在 Amazon Macie 中,您可通过允许列表,指定想要 Macie 在检查 Amazon Simple Storage Service (Amazon S3) 对象敏感数据时会忽略的文本或文本模式。Macie 提供两类允许列表选项,即预定义文本和正则表达式。

如果您想让 Macie 忽略您认为不敏感的特定单词、短语和其他类型字符序列,则预定义文本列表非常有用。例如:贵组织的公众代表姓名、特定电话号码或您的组织用于测试的特定样本数据。如果 Macie 发现的文本符合托管或自定义数据标识符的标准,并且该文本也与允许列表中的条目相匹配,则 Macie 不会在敏感数据发现、统计数据和其他类型的结果中报告该文本的出现。

如果您希望 Macie 在遵循通用模式的情况下忽略已有变化或可能发生变化的文本,则适用正则表达式 (regex)。正则表达式指定要忽略的文本模式。例如:贵组织的公共电话号码、组织域的电子邮件地址,或者您的组织用于测试的模式化样本数据。如果 Macie 发现的文本符合托管或自定义数据标识符的标准,并且该文本也与允许列表中的正则表达式模式相匹配,则 Macie 不会在敏感数据发现、统计数据和其他类型的结果中报告该文本的出现。

你可以在所有允许列表中创建和使用这两种类型的允许列表 AWS 区域 除亚太地区(大阪)地区外,Macie 目前在该地区上市。创建和管理允许列表时,切记以下选项和要求。另请注意,不支持邮件地址的列表条目和正则表达式模式。

预定义文本列表的选项与要求

对于这种类型的允许列表,您可以提供以行分隔的纯文本文件,其中列出了要忽略的特定字符序列。列表条目通常包含特定的单词、短语和其他类型的字符序列,这些字符序列不敏感,不太可能改变,也不一定遵循特定模式。如果您使用这种类型的列表,Amazon Macie 不会报告出现与列表中的条目完全匹配的文本。Macie 将列表中的每个条目都视为字符串文本值。

若要使用这种类型的允许列表,首先要在文本编辑器中创建列表,并将其另存为纯文本文件。然后将列表上传到 S3 通用存储桶。还要确保存储桶和对象的存储和加密设置允许 Macie 检索和解密列表。然后在 Macie 中 为列表创建和配置设置

在 Macie 中配置设置后,我们建议您使用一组适用于您的账户或组织的、少量具有代表性的数据测试允许列表。要测试列表,您可以创建一次性作业。将作业配置为除了通常用于分析数据的托管和自定义数据标识符外,还要使用该列表。然后您可查看作业结果,包括敏感数据调查发现、敏感数据发现结果或两者兼而有之。如果作业的结果与您的预期不同,则可更改和测试列表,直至结果达到预期。

配置和测试完允许列表后,您可以创建和配置其他作业以使用该列表,或者将其添加到您的设置中以自动发现敏感数据。当每项作业开始运行或下一个自动发现分析周期开始时,Macie 会从 Amazon S3 中检索最新版本列表,并将其存储至临时内存。然后,Macie 在检查 S3 对象中是否有敏感数据时,使用此临时列表副本。当作业完成运行或分析周期完成后,Macie 会从内存中永久删除其列表副本。Macie 中的列表不存在。Macie 中仅保留列表设置。

重要

由于 Macie 中不保留预定义文本列表,因此务必定期检查允许列表状态。如果 Macie 无法检索或解析您所配置的作业或使用的自动发现列表,Macie 不使用列表。这可能会导致异常结果,例如您在列表中指定的文本敏感数据调查发现。

语法要求

创建此类允许列表时,请注意以下列表文件要求:

  • 该列表必须存储为纯文本 (text/plain) 文件,例如.txt、.text 或 .plain 文件。

  • 列表必须使用换行符分隔各个条目。例如:

    Akua Mansa John Doe Martha Rivera 425-555-0100 425-555-0101 425-555-0102

    Macie 将每行视为列表中的单独条目。该文件还可以包含空行,以提高可读性。Macie 在解析文件时会跳过空行。

  • 每个条目可以包含 1—90 UTF —8 个字符。

  • 每个条目必须完整、完全匹配,才能忽略文本。Macie 不支持在条目中使用通配符或者部分值。Macie 将每个条目都视为字符串文本值。匹配项不区分大小写。

  • 该文件可以包含 1–100,000 个条目。

  • 附加文件的存储总大小不能超过35 MB。

存储需求

在 Amazon S3 中添加和管理允许列表时,请注意以下存储要求与建议:

  • 区域支持-允许列表必须存储在同一个存储桶中 AWS 区域 作为你的 Macie 账户。如果运行列表存储在其他区域,Macie 将无法访问该列表。

  • 存储桶所有权 — 允许列表必须存储在您拥有的存储桶中 AWS 账户。 如果您希望其他账户使用相同的允许列表,可以考虑创建 Amazon S3 复制规则,将该列表复制到这些账户拥有的存储桶。有关复制 S3 对象的信息,请参阅 Amazon Simple Storage Service 用户指南中的复制对象

    此外,你的 AWS Identity and Access Management (IAM) 身份必须对存储列表的存储桶和对象具有读取权限。否则,您将无法使用 Macie 创建或更新列表的设置或者检查列表状态。

  • 存储类型和类别-允许列表必须存储在通用存储桶中,而不是目录存储桶中。此外,必须使用以下存储类别之一进行存储:低冗余 (RRS)、S3 Glacier 即时检索、S3 智能分层、S3 One Zone-IA、S3 标准或 S3 标准-IA。

  • 存储桶策略 — 如果您将允许列表存储在具有限制性存储桶策略的存储桶中,请确保该策略允许 Macie 检索该列表。为此,您可以将 Macie 服务关联角色条件添加至存储桶策略。有关更多信息,请参阅 允许 Macie 访问 S3 存储桶和对象

    此外,请确保该策略允许您的IAM身份拥有对存储桶的读取权限。否则,您将无法使用 Macie 创建或更新列表的设置或者检查列表状态。

  • 对象路径‬ – 如果您在 Amazon S3 中存储了多个允许列表,则每个列表的对象路径必须是唯一的。换句话说,每个允许列表必须单独存储在自己的 S3 对象中。

  • 版本控制-向存储桶添加允许列表时,我们建议您同时为存储桶启用版本控制。然后,您可以使用日期和时间值,将列表的版本与使用该列表的敏感数据发现任务和自动敏感数据发现周期结果相关联。这可以帮助您保护数据隐私、审计或调查行为。

  • 对象锁定 — 为了防止允许列表在一定时间内或无限期地被删除或覆盖,您可以为存储该列表的存储桶启用对象锁定。启用此设置并不会阻止 Macie 访问此列表。有关此设置的信息,请参阅 Amazon Simple Storage Service 用户指南中的使用 S3 对象锁定

加密/解密要求

如果您在 Amazon S3 中加密允许列表,则 Macie 服务相关角色 的权限策略通常会授予 Macie 解密该列表所需的权限。但是,这取决于所用的加密类型:

  • 如果使用服务器端加密和 Amazon S3 托管密钥 (SSE-S3) 对列表进行加密,则 Macie 可以解密该列表。您的 Macie 账户的服务关联角色会向 Macie 授予其所需权限。

  • 如果列表使用服务器端加密进行加密 AWS 托管式 AWS KMS key (DSSE-KMS 或 SSE-KMS),Macie 可以解密该列表。您的 Macie 账户的服务关联角色会向 Macie 授予其所需权限。

  • 如果列表使用服务器端加密进行加密,并由客户管理 AWS KMS key (DSSE-KMS 或 SSE-KMS),只有当你允许 Macie 使用密钥时,Macie 才能解密该列表。若要了解如何执行此操作,请参阅允许 Macie 使用客户管理的服务器 AWS KMS key

    注意

    您可以使用客户管理的列表进行加密 AWS KMS key 在外部密钥存储库中。但是,与完全在内部管理的密钥相比,密钥可能会更慢、更不可靠 AWS KMS。 如果延迟或可用性问题使 Macie 无法解密列表,则 Macie 在分析 S3 对象时不会使用该列表。这可能会导致异常结果,例如您在列表中指定的文本敏感数据调查发现。为了降低这种风险,可以考虑将列表存储在“将密钥用作 S3 存储桶密钥”的 S3 存储桶内。

    有关在外部KMS密钥存储库中使用密钥的信息,请参阅中的外部密钥存储库 AWS Key Management Service 开发者指南。有关使用 S3 存储桶密钥的信息,请参阅《亚马逊简单存储服务用户指南》中的使用 Amazon S3 存储桶密钥降低成本。SSE KMS

  • 如果使用服务器端加密和客户提供的密钥 (SSE-C) 或客户端加密对列表进行加密,则 Macie 无法解密该列表。考虑改用 SSE-S3 KMS、DSSE-或 SSE-KMS 加密。

如果列表是用加密的 AWS 托管KMS密钥或客户托管KMS密钥,您的 AWS Identity and Access Management (IAM) 还必须允许身份使用密钥。否则,您将无法使用 Macie 创建或更新列表的设置或者检查列表状态。要了解如何检查或更改KMS密钥的权限,请参阅中的密钥策略 AWS KMS中的 AWS Key Management Service 开发者指南

有关 Amazon S3 数据加密选项的详细信息,请参阅《亚马逊简单存储服务用户指南》中的使用加密保护数据

设计注意事项和建议

Macie 通常将允许列表中的每个条目都视为字符串文本值。也就是说,Macie 会忽略每次出现的、与允许列表中完整条目完全匹配的文本。匹配项不区分大小写。

但是,Macie 将这些条目用于更大的数据提取与分析框架。该框架包括机器学习和模式匹配函数,这些函数可以考虑语法和句法变体等维度,在多种情况下还包括关键字接近度。该框架还考虑了 S3 对象文件类型或存储格式。因此,在添加和管理允许列表中的条目时,切记以下注意事项和建议。

为不同的文件类型与存储格式做好准备

对于非结构化数据,例如 Adobe 可移植文档文件 (.pdf) 格式文本,Macie 会忽略与允许列表中完整条目完全匹配的文本,包括跨多行或多页的文本。

对于结构化数据,例如文件中的列式数据或CSV文件中基于记录的数据,如果所有文本都存储在单个JSON字段、单元格或数组中,则 Macie 会忽略与允许列表中完整条目完全匹配的文本。此要求不适用于存储在其他非结构化文件 (例如 .pdf 文件中的表) 中的结构化数据。

例如,考虑CSV文件中的以下内容:

Name,Account ID Akua Mansa,111111111111 John Doe,222222222222

如果Akua MansaJohn Doe是允许列表中的条目,则 Macie 会忽略文件中的CSV这些名称。每个列表条目的完整文本存储至单个 Name 字段。

相反,请考虑一个包含以下列和字段的CSV文件:

First Name,Last Name,Account ID Akua,Mansa,111111111111 John,Doe,222222222222

如果Akua MansaJohn Doe是允许列表中的条目,则 Macie 不会忽略CSV文件中的这些名称。CSV文件中的所有字段均不包含允许列表中条目的完整文本。

包含常见变体

为数字数据、专有名词、术语和字母数字字符序列等常见变体添加条目。例如,如果您要添加的名称或短语在单词之间仅包含一个空格,则还要添加单词之间含两个空格的变体。同样,添加包含/不包含特殊字符的单词和短语,并考虑纳入常见的句法和语义变体。

例如,对于美国电话号码425-555-0100,您可以将以下条目添加至允许列表中:

425-555-0100 425.555.0100 (425) 555-0100 +1-425-555-0100

在跨国背景下,对于 2022 年 2 月 1 日 的日期,您可以添加包含英语和法语常见句法变体的条目,包括包含特殊字符/不包含特殊字符的变体:

February 1, 2022 1 février 2022 1 fevrier 2022 Feb 01, 2022 1 fév 2022 1 fev 2022 02/01/2022 01/02/2022

对于人物姓名,请纳入您认为不敏感的、不同形式的名字条目。例如,包括:名字后跟姓氏;姓氏后跟名字,名字和姓氏由一个空格分隔;名字和姓氏由两个空格分隔;以及昵称。

例如,对于Martha Rivera这个姓名,您可以添加:

Martha Rivera Martha Rivera Rivera, Martha Rivera, Martha Rivera Martha Rivera Martha

如果要忽略包含许多分段的特定名称变体,请创建一个使用正则表达式的允许列表。例如,对于名字Dr. Martha Lyda Rivera, PhD,您可以使用以下正则表达式:^(Dr. )?Martha\s(Lyda|L\.)?\s?Rivera,?( PhD)?$

正则表达式的选项和要求

对于这种类型的允许列表,您可以指定一个用于定义要忽略的文本模式的正则表达式 (regex)。例如,您可以为组织的公共电话号码、组织域的电子邮件地址或组织用于测试的模式化样本数据指定模式。正则表达式为您视为非敏感的指定种类数据定义了通用模式。如果您使用这种类型的允许列表,Amazon Macie 不会报告出现与特定模式完全匹配的文本。与要忽略的指定预定义文本的允许列表不同,您可以创建正则表达式和所有其他列表设置并将其存储在 Macie 中。

创建或更新此类允许列表时,可以在保存列表之前通过示例数据测试列表的正则表达式。建议您使用多组样本数据执行此操作。如果您创建的正则表达式过于笼统,Macie 可能会忽略您视为敏感的文本。如果正则表达式过于具体,Macie 可能会忽略您未视为敏感的文本。为了防范格式不正确或长时间运行表达式,Macie 还会根据一组示例文本自动编译和测试正则表达式,并通知您需要解决的问题。

为进行其他测试,我们建议您使用账户或组织的一小部分具有代表性的数据测试列表的正则表达式。为此,您可以创建一次性作业。将作业配置为除了通常用于分析数据的托管和自定义数据标识符外,还要使用该列表。然后您可查看作业结果,包括敏感数据调查发现、敏感数据发现结果或两者兼而有之。如果作业的结果与预期不同,则可以更改和测试正则表达式,直到结果达到预期为止。

配置和测试允许列表后,您可以创建和配置其他作业以使用该列表,或者将其添加到您的设置中以自动发现敏感数据。当这些作业运行或 Macie 执行自动发现时,Macie 会使用最新版本的列表正则表达式来分析数据。

语法支持和建议

允许列表可以指定包含最多 512 个字符的正则表达式 (regex)。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 会使用 OR 逻辑组合模式并形成新模式。例如,如果您指定 (apple|orange),Macie 会将苹果橙色都识别为匹配项,并忽略两个单词的出现次数。如果要串联模式,请务必将串联表达式的总长度限制为 512 个或更少字符。

最后,在开发正则表达式时,请对其进行设计,以适应不同的文件类型和存储格式。在更大的数据提取和分析框架中,Macie 使用正则表达式。该框架考虑了 S3 对象的文件类型或者存储格式。对于结构化数据,例如文件中的列式数据或CSV文件中基于记录的数据,只有当所有文本都存储在单个JSON字段、单元格或数组中时,Macie 才会忽略与模式完全匹配的文本。此要求不适用于存储在其他非结构化文件(例如 Adobe 可移植文档文件 (.pdf) 中的表格)中的结构化数据。对于非结构化数据(例如 .pdf 文件中的文本),Macie 会忽略与模式完全匹配的文本,包括跨多行或多页的文本。

示例

以下示例演示了部分常见场景的有效正则表达式模式。

电子邮件地址

如果您使用自定义数据标识符检测电子邮件地址,则可以忽略您视为不敏感的电子邮件地址,例如您组织的电子邮件地址。

要忽略特定的二级和顶级域名电子邮件地址,可以使用以下模式:

[a-zA-Z0-9_.+\\-]+@example\.com

位置 example 是二级域名的名称和 com 是顶级域名。在这种情况下,Macie 会匹配和忽略johndoe@example.comjohn.doe@example.com等地址。

要忽略任何通用顶级域名 (gTLD)(例如 .com.gov)中特定域名的电子邮件地址,可以使用以下模式:

[a-zA-Z0-9_.+\\-]+@example\.[a-zA-Z]{2,}

位置 example 是域的名称。在这种情况下,Macie 会匹配和忽略johndoe@example.comjohn.doe@example.gov和 johndoe@example.edu等地址。

要忽略任何一个国家/地区代码顶级域 (ccTLD) 中特定域名的电子邮件地址,例如加拿大的 .ca 或澳大利亚的 .au,您可以使用以下模式:

[a-zA-Z0-9_.+\\-]+@example\.(ca|au)

位置 example 是域名和 ca 以及 au 是特别值得 ccTLDs 忽略的。在这种情况下,Macie 会匹配和忽略johndoe@example.cajohn.doe@example.au 等地址。

要忽略特定域和 g 以及包含三级TLD和四级域名的电子邮件地址,可以使用以下模式:

[a-zA-Z0-9_.+\\-]+@([a-zA-Z0-9-]+\.)?[a-zA-Z0-9-]+\.example\.com

位置 example 是域名和 com 是 g TLD。在这种情况下,Macie 会匹配和忽略johndoe@www.example.comjohn.doe@www.team.example.com等地址。

电话号码

Macie 提供托管数据标识符,可检测多个国家和地区的电话号码。要忽略某些电话号码(例如贵组织的免费电话号码或公用电话号码),您可以使用以下模式。

要忽略使用 800区号、且格式为(800) ###-####的免费电话号码:

^\(?800\)?[ -]?\d{3}[ -]?\d{4}$

要忽略使用 888区号、且格式为(888) ###-####的免费电话号码:

^\(?888\)?[ -]?\d{3}[ -]?\d{4}$

要忽略包含33个国家/地区代码、且格式为 +33 ## ## ## ## ## 的 10 位数法语电话号码:

^\+33 \d( \d\d){4}$

要忽略使用特定区号和交换码的美国和加拿大电话号码,请不要包含国家/地区代码,且格式为 (###) ###-####

^\(?123\)?[ -]?555[ -]?\d{4}$

位置 123 是区号和 555 是交易所代码。

要忽略使用特定地区和交换代码的美国和加拿大电话号码,请包含国家/地区代码,且格式为+1 (###) ###-####

^\+1\(?123\)?[ -]?555[ -]?\d{4}$

位置 123 是区号和 555 是交易所代码。