本文将介绍如何利用 AWS Glue 自动识别 Amazon Redshift 中的个人身份信息(PII)。在数据迅速增长的背景下,企业需要有效管理大量包含 PII 的数据,以满足合规和隐私要求。通过 AWS Glue 和 Amazon Redshift,我们提供了一种自动化解决方案来简化这一过程。
随着数据量的指数级增长,企业正处理大量的各类数据,包括个人身份信息(PII)。PII是一个法律术语,指的是可以识别、联系或定位特定个体的信息。因此,在大规模环境中识别和保护敏感数据已变得愈加复杂和耗时。组织必须遵守数据隐私、合规和监管要求,例如 和 ,因此识别和保护 PII对于维护合规性至关重要。你需要识别敏感数据,包括姓名、社交安全号码(SSN)、地址、电子邮件、驾驶执照等。即使识别出这些信息,在大规模环境中实施数据屏蔽或加密也相当繁琐。
许多公司通过手动、耗时且易出错的 来标识和标记其数据库、数据仓库和数据湖中的 PII,从而使其敏感数据未受到保护,面临监管处罚和数据泄露的风险。
在本文中,我们提供了一种自动化解决方案,通过 使用 来检测 PII 数据。
本解决方案在我们的 Redshift 数据仓库中检测 PII,以便进行数据保护。我们使用以下服务:
以下图示展示了我们的解决方案架构。
删除)
本解决方案包括以下高层步骤:
本文中创建的资源假设已经设立了 VPC,并包含私有子网以及它们的标识符。这确保了 VPC 和子网配置不会发生重大更改。因此,我们希望根据选择的 VPC和子网设置 VPC 端点。
在开始之前,请创建以下资源作为前提条件:
要使用 CloudFormation 模板创建基础设施,请完成以下步骤:
S3BucketName
和 RedshiftRoleArn
的值。使用 ,我们可以从一个或多个 S3存储桶加载数据文件。我们使用 FROM 子句来指明 COPY 命令如何在 Amazon S3 中查找文件。你可以作为 FROM子句的一部分提供数据文件的对象路径,也可以提供包含 S3 对象路径列表的清单文件位置。COPY 从 Amazon S3 使用 HTTPS 连接。
在本文中,我们使用一个样本个人健康 。按以下步骤加载数据:
![连接到 删除)
连接后,你可以使用以下命令在 Redshift 数据仓库中创建表并复制数据。
sql CREATE TABLE personal_health_identifiable_information ( mpi char (10), firstName VARCHAR (30), lastName VARCHAR (30), email VARCHAR (75), gender CHAR (10), mobileNumber VARCHAR(20), clinicId VARCHAR(10), creditCardNumber VARCHAR(50), driverLicenseNumber VARCHAR(40), patientJobTitle VARCHAR(100), ssn VARCHAR(15), geo VARCHAR(250), mbi VARCHAR(50) );
sql COPY personal_health_identifiable_information FROM 's3://<S3BucketName>/personal_health_identifiable_information.csv' IAM_ROLE '<RedshiftRoleArn>' CSV delimiter ',' region '<aws region>' IGNOREHEADER 1;
请为以下占位符提供值:
sql SELECT * FROM personal_health_identifiable_information LIMIT 10;
删除)
在 AWS Glue 控制台中,选择作为 CloudFormation 堆栈一部分部署的爬虫,名称为 crawler_pii_db
,然后选择
运行爬虫 。
删除)
当爬虫完成后,名为 pii_db
的数据库中的表将被填充到 AWS Glue 数据目录中,表模式如下截图所示。
删除)
在 AWS Glue 控制台中,选择导航面板中的 ETL Jobs ,并找到 detect-pii-data 作业以了解其配置。基本和高级属性是通过 CloudFormation 模板配置的。
删除)
基本属性如下:
出于演示目的,作业书签选项被禁用,并且自动缩放功能也未启用。
删除)
我们还配置了有关连接和作业参数的高级属性。
为了访问存储在 Amazon Redshift 中的数据,我们创建了一个利用 JDBC 连接的 AWS Glue 连接。
![JDBC删除)
我们还提供了自定义参数作为键值对。在本文中,我们将 PII 划分为五个不同的检测类别:
PERSON_NAME
, EMAIL
, CREDIT_CARD
PERSON_NAME
, PHONE_NUMBER
, USA_SSN
, USA_ITIN
, BANK_ACCOUNT
, USA_DRIVING_LICENSE
, USA_HCPCS_CODE
, USA_NATIONAL_DRUG_CODE
, USA_NATIONAL_PROVIDER_IDENTIFIER
, USA_DEA_NUMBER
, USA_HEALTH_INSURANCE_CLAIM_NUMBER
, USA_MEDICARE_BENEFICIARY_IDENTIFIER
IP_ADDRESS
, MAC_ADDRESS
PHONE_NUMBER
, USA_PASSPORT_NUMBER
, USA_SSN
, USA_ITIN
, BANK_ACCOUNT
如果你在其他国家尝试此解决方案,可以使用自定义类别指定自定义 PII 字段,因为此解决方案是基于美国地区创建的。
出于演示目的,我们使用单一表,并将其作为以下参数传递:
--table_name: table_name
在本文中,我们将表命名为 personal_health_identifiable_information
。
删除)
根据个人业务用例,你可以自定义这些参数。
运行作业并等待 Success
状态。
该作业有两个目标。第一个目标是在 Redshift 表中识别与 PII数据相关的列,并生成这些列名的列表。第二个目标是对目标表中特定列的数据进行隐藏。在第二个目标中,它读取表数据,对这些特定列应用用户定义的屏蔽功能,并使用
Redshift 暂存表 (stage_personal_health_identifiable_information
) 更新目标表。
另外,你还可以在 Amazon Redshift中使用动态数据屏蔽()来保护数据仓库中的敏感数据。
当作业完成后,让我们查看 CloudWatch 日志以了解 AWS Glue 作业的运行情况。我们可以通过选择 AWS Glue 控制台上作业详情页面中的 输出日志 导航到 CloudWatch 日志。
![CloudWatch删除)
该作业识别了每个包含 PII 数据的列,包括使用 AWS Glue 作业敏感数据检测字段传递的自定义字段。
![包含 PII删除)
为清理基础设施并避免额外费用,请完成以下步骤:
删除)
通过这个解决方案,你可以利用 AWS Glue 作业自动扫描存放在 Redshift 集群中的数据,识别 PII,并采取必要行动。这可以帮助你的组织实现安全性、合规性、治理和数据保护功能,从而增强数据安全和数据治理。
![Manikanta删除) Manikanta Gona 是 AWS 专业服务的数据与 ML 工程师。他于 2021 年加入 AWS,拥有 6 年以上的 IT 经验。在 AWS,他专注于数据湖实施、搜索和分析工作负载,使用 Amazon OpenSearch 服务。在空闲时间,他喜欢园艺,以及和丈夫一起远足和骑自行车。
![Denys删除) Denys Novikov 是亚马逊网络服务专业服务团队的高级数据湖架构师。他专注于为企业客户设计和实施分析、数据管理以及大数据系统。
![Anjan删除) Anjan Mukherjee 是 AWS 的数据湖架构师,专注于大数据和分析解决方案。他帮助客户在 AWS平台上构建可扩展、可靠、安全和高性能的应用程序。
加载评论…
Leave a Reply