在 AWS Glue Studio 中使用可视化 ETL 任务在 Amazon RDS 数据库之间复
在AWS Glue Studio中使用可视化ETL作业复制和掩盖Amazon RDS数据库中的个人身份信息(PII)
关键要点
本文介绍如何使用AWS Glue Studio在Amazon RDS数据库之间复制数据并掩盖个人身份信息PII,无需编写代码。该过程涉及设置数据复制和隐私保护,以使开发、测试和报告不会影响关键系统或暴露敏感客户数据。通过多账户环境,确保接入AWS Glue并实现数据流模型,自动掩盖PII。在许多组织中,数据在数据库之间的移动与转换是一个常见需求。将数据从生产数据库复制到低环境或横向环境,并掩盖个人身份信息PII,以确保合规,可以在不影响关键系统或暴露敏感客户数据的情况下进行开发、测试和报告。然而,手动匿名化克隆信息对于安全和数据库团队来说是一项繁重的工作。
您可以使用AWS Glue Studio来设置数据复制并掩盖PII,而无需任何编码。AWS Glue Studio可视化编辑器提供了一个低代码的图形环境,用于构建、运行和监控提取、转换和加载ETL脚本。在后台,AWS Glue处理底层资源配置、作业监控和重试。您无需管理基础设施,可以专注于快速建立合规的数据流。
在本文中,我将带您了解如何从一个Amazon关系数据库服务Amazon RDS for PostgreSQL数据库复制数据到另一个,同时在此过程中清理PII。您将学习如何准备多账户环境以便从AWS Glue访问数据库,以及如何建模一个ETL数据流,自动掩盖PII,以便在将数据转移到目标数据库时不复制任何敏感信息的原始形式。到最后,您将能够快速构建数据移动管道,在数据源和目标之间隐藏PII,以保护个人身份,而无需编写代码。
解决方案概述
以下图解了解决方案架构:
该解决方案使用AWS Glue作为ETL引擎,从源Amazon RDS数据库中提取数据。内置的数据转换使用预定义的掩盖功能清理包含PII的列。最后,AWS Glue ETL作业将经过隐私保护的数据插入目标Amazon RDS数据库。
此解决方案使用多个AWS账户。拥有多账户环境是AWS的最佳实践,有助于隔离和管理您的应用程序和数据。图中显示的AWS Glue账户是一个专用账户,便于创建和管理所需的所有AWS Glue资源。该解决方案支持广泛的AWS Glue所支持的连接,使您可以在一个专用AWS账户内集中调度操作。
需要强调的是,这个解决方案的以下几点注意事项:
根据AWS最佳实践,讨论的三个AWS账户是一个组织的一部分,但这并不是该解决方案正常工作的必要条件。此解决方案适用于不需要实时复制,可以按照计划执行或通过事件来触发的用例。实施步骤
要实现该解决方案,本指南将引导您完成以下步骤:
启用AWS Glue账户与源账户和目标账户的连接创建AWS Glue组件以执行ETL作业创建并运行AWS Glue ETL作业验证结果前提条件
在此演示中,我们使用的版本为Amazon RDS for PostgreSQL 1314R1。请注意,该解决方案也适用于其他版本和支持AWS Glue相同JDBC驱动程序版本的数据库引擎。有关进一步的细节,请参阅JDBC连接。
为了跟随本文,您需要满足以下前提条件:
三个AWS账户如下:源账户: 托管源Amazon RDS for PostgreSQL数据库。该数据库中包含敏感信息的表,并位于一个私有子网中。记录与Amazon RDS数据库相关的虚拟私有云VPCID、安全组和私有子网ID以便日后查阅。目标账户: 包含目标Amazon RDS for PostgreSQL数据库,具有与源表相同的表结构,最初为空。该数据库也位于一个私有子网中。同样需要记录其相关的VPC ID、安全组ID和私有子网信息。AWS Glue账户: 这个专用账户持有一个VPC,一个私有子网和一个安全组。如AWS Glue文档中提到,安全组中包括自引用的入站规则,允许所有TCP和TCP端口065535的通信,以便AWS Glue能够与其组件进行通信。以下图展示了AWS Glue账户安全组所需的自引用入站规则。
确保这三个VPC的CIDR地址互不重叠,如下表所示:VPC 私有子网源账户 10200/16 102100/24AWS Glue账户 10100/16 101100/24目标账户 10300/16 103100/24
每个VPC上的VPC网络属性enableDnsHostnames和enableDnsSupport均设置为true。有关详细信息,请参见使用DNS与VPC。使用AWS身份与访问管理IAM角色用于AWS Glue。有关说明,请参见为AWS Glue创建IAM角色。在AWS Glue账户上创建一个用户,具有访问AWS管理控制台的权限,并能使用AWS Glue Studio。有关说明,请参见为AWS Glue Studio设置IAM权限。在AWS Glue账户上设置一个Amazon简单存储服务Amazon S3端点。AWS Glue需要此端点来存储ETL脚本。在S3端点设置过程中,请确保与AWS Glue账户上的私有子网分配的路由表关联。有关创建S3端点的详细信息,请参阅Amazon VPC端点为Amazon S3。以下图展示了包含所有前提条件的环境:
为了简化设置前提条件的过程,您可以按照此GitHub库中的README文件中的说明进行操作。
数据库表
在此示例中,源数据库和目标数据库均包含一个具有相同结构的customer表。源表已经预填充数据,如下图所示:
您将创建的AWS Glue ETL作业专注于掩盖特定列中的敏感信息。这些列包括lastname、email、phonenumber、ssn和notes。
如果您希望使用相同的表结构和数据,SQL语句已在GitHub库中提供。
步骤1 启用AWS Glue账户与源账户和目标账户的连接
在创建AWS Glue ETL作业时,提供AWS IAM角色、VPC ID、子网ID和AWS Glue访问JDBC数据库所需的安全组。有关详细信息,请参阅AWS Glue:工作原理。
在我们的示例中,角色、组和其他信息位于专用AWS Glue账户中。但是,为了使AWS Glue能够连接到数据库,您需要启用AWS Glue账户的子网和安全组与源数据库和目标数据库的访问。
要启用访问,首先进行VPC互连。这可以使用VPC对等连接或AWS Transit Gateway完成。在本示例中,我们使用VPC对等连接。或者,您也可以使用S3桶作为中间存储位置。有关详细信息,请参见设置对数据存储的网络访问。
按照以下步骤操作:
将AWS Glue账户的VPC与数据库的VPC对等连接更新路由表更新数据库安全组对等连接AWS Glue账户VPC与数据库VPC
在AWS VPC控制台中完成以下步骤:
在AWS Glue账户中,创建两个VPC对等连接,如创建VPC对等连接中所述,一个用于源账户VPC,另一个用于目标账户VPC。在源账户中,接受VPC对等请求。有关说明,请参阅接受VPC对等连接。在目标账户中,同样接受VPC对等请求。在AWS Glue账户中,启用每个对等连接的DNS设置。这使得AWS Glue能够解析数据库的私有IP地址。有关说明,请参阅为VPC对等连接启用DNS解析。完成上述步骤后,AWS Glue账户的对等连接列表应该如下所示:请注意,源账户和目标账户的VPC没有互相对等。两个账户之间不需要连接。
更新子网路由表
这一步将允许来自AWS Glue账户VPC的流量到达与源和目标账户中的数据库关联的VPC子网。
在AWS VPC控制台中完成以下步骤:
在AWS Glue账户的路由表中,对于每个VPC对等连接,添加一条路由到与数据库关联的每个私有子网。这些路由允许AWS Glue与数据库建立连接,并限制来自AWS Glue账户的流量,仅允许通过与数据库相关联的子网。在与数据库关联的私有子网的源账户路由表中,添加一条路由以与AWS Glue账户的VPC进行对等连接。这条路由将允许从AWS Glue账户返回的流量。在目标账户的路由表中重复步骤2。有关如何更新路由表的说明,请参阅使用路由表。
更新数据库安全组
这一步是必需的,以允许来自AWS Glue账户的安全组到达与源和目标数据库相关的安全组的流量。

有关如何更新安全组的说明,请参阅使用安全组。
在AWS VPC控制台中完成以下步骤:
在源账户的数据库安全组中,添加一条入站规则,类型为PostgreSQL,源为AWS Glue账户的安全组。在目标账户的数据库安全组中重复步骤1。以下图展示了启用来自AWS Glue账户到源和目标账户的连接的环境:
蓝鲸加速器官方网站步骤2 创建AWS Glue组件以执行ETL作业
下一步是创建AWS Glue组件,以将源和目标数据库的模式与AWS Glue数据目录同步。
按照以下步骤操作:
为每个Amazon RDS数据库创建AWS Glue连接。创建AWS Glue爬虫以填充数据目录。运行爬虫。创建AWS Glue连接
连接使AWS Glue能够访问您的数据库。创建AWS Glue连接的主要好处是节省时间,让您在每次创建作业时都不必指定所有连接详细信息。随后在AWS Glue Studio中创建作业时可以重用连接,而不需要每次手动输入连接详细信息。这使得作业创建过程更加一致且快速。
在AWS Glue账户中完成以下步骤:
在AWS Glue控制台中,选择导航窗格上的数据连接链接。选择创建连接,并按照创建连接向导中的说明操作:在选择数据源中,选择JDBC作为数据源。在配置连接中:对于JDBC URL,输入源数据库的JDBC URL。对于PostgreSQL,语法为:jdbcpostgresql//databaseendpoint5432/databasename
您可以在源账户的Amazon RDS控制台中找到databaseendpoint。
展开网络选项。对于VPC、子网和安全组,选择集中的AWS Glue账户中的选项,如下图所示:
[![AWS Glue连接的网络设置VPC、子网和安全组](https//d2908q01vomqb2cloudfrontnet/b6692ea5df920cad691c20319a6fffd7a4a766b8/2024/08/02/BDB
使用 LangChain 和 PySpark 在 Amazon SageMaker Studio 及
用 LangChain 和 PySpark 在 Amazon SageMaker Studio 和 Amazon EMR Serverless 大规模处理文档重点摘要在当前数据驱动的时代,利用大数据技...
大约有350万人受到Wolf Haldenstein数据泄露的影响
Wolf Haldenstein律师事务所数据泄露影响350万人关键要点受影响人数:近350万人信息损失:包括全名、社会安全号码、员工识别号码、医疗诊断和医疗索赔细节泄露时间:2023年12月目前状况...