在加载到 Amazon OpenSearch Service 之前使用 AWS Glue 检测、屏蔽和编辑 PII 数据 |亚马逊网络服务

在加载到 Amazon OpenSearch Service 之前使用 AWS Glue 检测、屏蔽和编辑 PII 数据 |亚马逊网络服务

源节点: 3059547

许多大大小小的组织都在努力将其分析工作负载迁移到 Amazon Web Services (AWS) 上并实现现代化。客户迁移到 AWS 的原因有很多,但主要原因之一是能够使用完全托管的服务,而不是花时间维护基础设施、修补、监控、备份等。领导和开发团队可以花更多的时间来优化当前的解决方案,甚至尝试新的用例,而不是维护当前的基础设施。

由于能够在 AWS 上快速发展,您还需要在不断扩展的过程中对接收和处理的数据负责。这些责任包括遵守数据隐私法律和法规,不存储或泄露来自上游来源的个人身份信息 (PII) 或受保护的健康信息 (PHI) 等敏感数据。

在这篇文章中,我们将介绍一个高级架构和一个特定的用例,演示如何继续扩展组织的数据平台,而无需花费大量的开发时间来解决数据隐私问题。我们用 AWS胶水 在将 PII 数据加载到之前检测、屏蔽和编辑 亚马逊开放搜索服务.

解决方案概述

下图说明了高级解决方案架构。我们已经根据设计定义了所有层和组件 AWS 架构完善的框架数据分析视角.

os_glue_架构

该架构由许多组件组成:

数据来源

数据可能来自数十到数百个来源,包括数据库、文件传输、日志、软件即服务 (SaaS) 应用程序等。组织可能并不总是能够控制哪些数据通过这些渠道进入其下游存储和应用程序。

摄取:数据湖批处理、微批处理和流式传输

许多组织以各种方式将源数据放入数据湖中,包括批处理、微批处理和流作业。例如, 亚马逊电子病历, AWS胶水AWS 数据库迁移服务 (AWS DMS) 均可用于执行批处理和/或流式操作,这些操作沉入数据湖 亚马逊简单存储服务 (亚马逊S3)。 亚马逊AppFlow 可用于将数据从不同的 SaaS 应用程序传输到数据湖。 AWS 数据同步AWS Transfer系列 可以帮助通过多种不同的协议将文件移入和移出数据湖。 亚马逊Kinesis Amazon MSK 还能够将数据直接流式传输到 Amazon S3 上的数据湖。

S3数据湖

将 Amazon S3 用于数据湖符合现代数据策略。它提供低成本存储,而不牺牲性能、可靠性或可用性。通过这种方法,您可以根据需要对数据进行计算,并且只需为其运行所需的容量付费。

在此架构中,原始数据可以来自各种来源(内部和外部),其中可能包含敏感数据。

使用 AWS Glue 爬网程序,我们可以发现数据并对其进行编目,这将为我们构建表架构,并最终使使用 AWS Glue ETL 与 PII 转换来检测、屏蔽或编辑可能已到达的任何敏感数据变得简单在数据湖中。

业务背景和数据集

为了展示我们方法的价值,让我们假设您是一家金融服务组织的数据工程团队的一员。您的要求是在敏感数据被引入组织的云环境时检测并屏蔽这些数据。数据将被下游分析过程消耗。将来,您的用户将能够根据从内部银行系统收集的数据流安全地搜索历史支付交易。来自运营团队、客户和接口应用程序的搜索结果必须在敏感字段中进行屏蔽。

下表显示了该解决方案所使用的数据结构。为了清楚起见,我们已将原始列名称映射到精选列名称。您会注意到,此架构中的多个字段被视为敏感数据,例如名字、姓氏、社会安全号码 (SSN)、地址、信用卡号、电话号码、电子邮件和 IPv4 地址。

原始列名称 策划栏名称 Type
c0 名字 绳子
c1 绳子
c2 SSN 绳子
c3 地址 绳子
c4 邮编 绳子
c5 国家 绳子
c6 购买网站 绳子
c7 信用卡号码 绳子
c8 信用卡提供商 绳子
c9 货币 绳子
c10 购买价值 整数
c11 交易日期 日期
c12 电话号码 绳子
c13 邮箱地址 绳子
c14 ipv4 绳子

使用案例:加载到 OpenSearch 服务之前批量检测 PII

实施以下架构的客户已在 Amazon S3 上构建了数据湖,以大规模运行不同类型的分析。该解决方案适合不需要实时摄取 OpenSearch Service 并计划使用按计划运行或通过事件触发的数据集成工具的客户。

批处理架构

在数据记录到达 Amazon S3 之前,我们实施了一个摄取层,将所有数据流可靠且安全地引入数据湖。 Kinesis Data Streams 部署为摄取层,用于加速结构化和半结构化数据流的摄取。例如关系数据库更改、应用程序、系统日志或点击流。对于变更数据捕获 (CDC) 使用案例,您可以使用 Kinesis Data Streams 作为 AWS DMS 的目标。生成包含敏感数据的流的应用程序或系统将通过以下三种受支持的方法之一发送到 Kinesis 数据流:Amazon Kinesis Agent、AWS SDK for Java 或 Kinesis Producer Library。作为最后一步, 亚马逊 Kinesis 数据流水线 帮助我们可靠地将近乎实时的批量数据加载到我们的 S3 数据湖目的地中。

以下屏幕截图显示了数据如何通过 Kinesis Data Streams 通过 资料检视器 并检索位于原始 S3 前缀的样本数据。对于此架构,我们遵循 S3 前缀的数据生命周期,如 数据湖基础.

运动原始数据

正如您从以下屏幕截图中第一条记录的详细信息中看到的,JSON 负载遵循与上一节相同的架构。您可以看到未编辑的数据流入 Kinesis 数据流,这些数据将在后续阶段进行混淆。

原始json

数据被收集并引入 Kinesis Data Streams 并使用 Kinesis Data Firehose 传送到 S3 存储桶后,架构的处理层将接管。我们使用 AWS Glue PII 转换来自动检测和屏蔽管道中的敏感数据。如下工作流程图所示,我们采用无代码、可视化 ETL 方法在 AWS Glue Studio 中实施转换作业。

胶水工作室节点

首先,我们从以下位置访问源数据目录表: pii_data_db 数据库。该表具有上一节中介绍的模式结构。为了跟踪原始处理数据,我们使用 工作书签.

胶水目录

我们使用 AWS Glue Studio 可视化 ETL 作业中的 AWS Glue DataBrew 配方 转换两个日期属性以与 OpenSearch 预期兼容 格式。这使我们能够获得完整的无代码体验。

我们使用检测 PII 操作来识别敏感列。我们让 AWS Glue 根据选定的模式、检测阈值和数据集中行的样本部分来确定这一点。在我们的示例中,我们使用了专门适用于美国的模式(例如 SSN),并且可能无法检测来自其他国家/地区的敏感数据。您可以查找适用于您的使用案例的可用类别和位置,或使用 AWS Glue 中的正则表达式 (regex) 为来自其他国家/地区的敏感数据创建检测实体。

选择 AWS Glue 提供的正确采样方法非常重要。在此示例中,已知从流中传入的数据的每一行都包含敏感数据,因此无需对数据集中的 100% 的行进行采样。如果您有不允许敏感数据流入下游源的要求,请考虑对您选择的模式的数据进行 100% 采样,或者扫描整个数据集并对每个单独的单元格进行操作,以确保检测到所有敏感数据。您从采样中获得的好处是降低了成本,因为您不必扫描那么多数据。

PII 选项

检测 PII 操作允许您在屏蔽敏感数据时选择默认字符串。在我们的示例中,我们使用字符串 **********。

选定的选项

我们使用应用映射操作来重命名和删除不必要的列,例如 ingestion_year, ingestion_monthingestion_day. 此步骤还允许我们更改其中一列的数据类型(purchase_value) 从字符串到整数。

架构

从此时起,作业分为两个输出目标:OpenSearch Service 和 Amazon S3。

我们配置的 OpenSearch 服务集群通过 用于 Glue 的 OpenSearch 内置连接器。我们指定要写入的 OpenSearch 索引,连接器处理凭据、域和端口。在下面的屏幕截图中,我们写入指定的索引 index_os_pii.

打开搜索配置

我们将屏蔽数据集存储在精选的 S3 前缀中。在那里,我们将数据标准化为特定用例,并供数据科学家安全使用或满足临时报告需求。

打开搜索目标 s3 文件夹

对于所有数据集和数据目录表的统一治理、访问控制和审计跟踪,您可以使用 AWS湖形成。这有助于您将对 AWS Glue 数据目录表和基础数据的访问权限限制为仅限已被授予必要权限的用户和角色。

批处理作业成功运行后,您可以使用 OpenSearch Service 运行搜索查询或报告。如下图所示,管道自动屏蔽了敏感字段,无需任何代码开发工作。

您可以从运营数据中识别趋势,例如信用卡提供商过滤的每天交易量,如前面的屏幕截图所示。您还可以确定用户进行购买的位置和域。这 transaction_date 属性可以帮助我们了解这些随时间变化的趋势。以下屏幕截图显示了一条记录,其中所有交易信息均经过适当编辑。

json 屏蔽

有关如何将数据加载到 Amazon OpenSearch 的替代方法,请参阅 将流数据加载到 Amazon OpenSearch Service 中.

此外,还可以使用其他 AWS 解决方案发现和屏蔽敏感数据。例如,您可以使用 亚马逊梅西 检测 S3 存储桶内的敏感数据,然后使用 亚马逊领悟 编辑检测到的敏感数据。欲了解更多信息,请参阅 使用 AWS 服务检测 PHI 和 PII 数据的常用技术.

结论

这篇文章讨论了在您的环境中处理敏感数据的重要性以及保持合规性同时允许您的组织快速扩展的各种方法和架构。您现在应该很好地了解如何检测、屏蔽或编辑数据并将其加载到 Amazon OpenSearch Service 中。


关于作者

迈克尔·汉密尔顿 是一名高级分析解决方案架构师,专注于帮助企业客户实现 AWS 上的分析工作负载现代化并简化。他喜欢骑山地自行车,并在工作之余与妻子和三个孩子共度时光。

丹尼尔·罗佐 是 AWS 的高级解决方案架构师,为荷兰客户提供支持。他的热情是设计简单的数据和分析解决方案,并帮助客户转向现代数据架构。工作之余,他喜欢打网球和骑自行车。

时间戳记:

更多来自 AWS 大数据