13594780322

加密货币,让财富增值再简单不过!

BMO 如何通过 Amazon Redshift 和 AWS Lake Formation 提高数据

BMO 如何通过 Amazon Redshift 和 AWS Lake Formation 提高数据

发表时间:2026-01-27

浏览次数:8

BMO如何通过Amazon Redshift和AWS Lake Formation提升数据安全性

关键要点

BMO通过实施Amazon Redshift和AWS Lake Formation,成功提升了其数据的安全性与合规性。关键挑战在于满足严格的网络安全要求,特别是对个人可识别信息PII、付款卡行业PCI数据和高隐私风险数据HPR的场景。采用基于角色的访问控制RBAC和基于标签的访问控制TBAC,实现数据湖的安全查询。

在这篇文章中,我们将讨论BMO如何利用Amazon Redshift和AWS Lake Formation 通过实施高级数据安全措施,确保敏感客户数据的安全和合规性。

BMO是北美第八大银行,提供个人和商业银行、全球市场及投资银行服务,客户达1300万。随着其数字优先策略的实施,BMO不断寻找创新方式以现代化和简化云中的数据访问控制。银行积累了大量敏感的金融数据,亟需建立一个安全且性能优越的分析环境。其主要挑战之一是满足严格的网络安全要求,特别是实施针对个人可识别信息PII、付款卡行业PCI和高隐私风险HPR数据的字段级加密。此类安全数据分类的信息在数据仓库和数据湖中均以加密形式存储,只有具备相应权限的用户才能以明文方式访问这些数据。

Amazon Redshift是一项完全托管的数据仓库服务,数以万计的客户利用此服务管理大规模分析。它支持行业领先的安全性,内置身份管理及单点登录SSO与多因素认证。AWS Lake Formation则简化了数据湖的构建、保护及管理,提供精细的访问控制、标签管理基于标签的访问控制TBAC及多项分析服务的集成。

在这篇文章中,我们将分享如何通过使用基于角色的访问控制RBAC和AWS Lake Formation的基于标签的访问控制为联邦用户查询数据湖提供解决方案。

使用案例

BMO拥有超过PBPetabyte级别的敏感金融数据,分类如下:1 个人可识别信息PII2 付款卡行业PCI3 高隐私风险HPR

银行希望将数据存储在其Amazon Redshift数据仓库与Amazon S3数据湖中。其终端用户包括销售、市场、信用风险及其他业务线的多样化人员:1 商业分析师2 数据工程师3 数据科学家

需在Amazon Redshift以及通过Amazon Redshift Spectrum访问的数据湖数据上应用精细的访问控制。BMO还利用AWS服务如AWS Glue 和Amazon SageMaker构建其分析平台,同时使用外部身份提供者IdP管理其用户基础,并与这些分析工具集成。最终用户通过第三方SQL客户端和商业智能工具访问数据。

解决方案概览

在本文中,我们将使用与BMO数据类似的合成数据,包含分类为PII、PCI或HPR的数据。用户和群组存在于外部IdP中。这些用户通过原生IdP联邦实现单点登录到Amazon Redshift。我们将使用Redshift基于角色的访问控制RBAC定义权限。对于使用Amazon Redshift Spectrum访问数据湖中的数据的用户,将使用Lake Formation政策进行访问控制。

虎跃加速器安卓

技术解决方案

为了满足客户对不同数据类别的安全需求,需定义多个AWS IAM角色,这要求对IAM策略有一定了解,并在权限边界变更时进行维护。在本文中,我们展示了如何通过将数据分类对齐,简化管理数据分类政策,减少所需的Amazon Redshift IAM角色数量,而非根据业务线和数据分类生成大量角色组合。其他组织例如金融服务机构FSI也可以从BMO实施数据安全和合规性中获益。

作为这篇博客的一部分,数据将被上传至Amazon S3。数据访问的控制使用Redshift RBAC策略,通过外部身份提供者用户组定义,同时使用AWS Lake Formation在S3数据上实施基于标签的访问控制。

解决方案架构

以下图表展示了解决方案架构和具体步骤。

IdP用户群组如lobriskpublic、Lobriskpci、hrpublic和hrhpr在外部IdP中被指派。每个用户被映射到由IdP传送的Amazon Redshift本地角色,如aadlobriskpci、aadlobriskpublic、aadhrpublic和aadhrhpr。例如,属于Lobriskpublic和hrhpr的用户 User1 将相应地被授予角色使用权限。将iamredshifthpr、iamredshiftpcipii和iamredshiftpublic的AWS IAM角色附加至Amazon Redshift集群。AWS Glue数据库使用Amazon S3作为后端如lobrisk、lobmarket、hr及其相关表在Amazon Redshift中被引用。使用Amazon Redshift Spectrum,可以查询这些外部表和数据库如externallobriskpci、externallobriskpublic、externalhrpublic和externalhrhpr,这些通过AWS IAM角色iamredshiftpcipii、iamredshifthpr、iamredshiftpublic创建。使用AWS Lake Formation控制对外部架构和表的访问。使用AWS Lake Formation标签,我们对这些外部表适用精细的访问控制,以AWS IAM角色如iamredshifthpr、iamredshiftpcipii和iamredshiftpublic为基础。最后,为这些外部架构授予其Amazon Redshift角色的使用权限。

实施步骤

让我们逐步了解如何使用合成数据实施此解决方案。

下载数据文件并放入存储桶

Amazon S3作为AWS的可扩展且持久的数据湖。通过数据湖,您可以将任何开放格式的数据如CSV、JSON、PARQUET或ORC导入Amazon S3并对数据进行分析。

解决方案利用了包含被分类为PCI、PII、HPR或公共的数据的CSV文件。您可以使用下面提供的链接下载输入文件。使用下载的文件,将其上传至Amazon S3,创建文件夹和文件,如下截图所示,按照此处的说明操作。每个文件的详情如下:

creditcardtransactionPCIpublic包含被归类为公共数据的信用卡交易,所有拥有公共数据访问权限的主体均可查看。creditcardtransactionPCI包含信用卡号码,仅供具有PCI数据访问权限或授权的主体访问。lobriskHighconfidentialpublic包含公众可访问的业务报告。lobriskHighconfidential包含仅限选定主体如业务线经理访问的机密业务报告。customersPIIHPRpublic包含供公共权限主体访问的客户数据。customersPIIHPR包含供人力资源相关管理人员访问的个人可识别信息数据。

使用爬虫将文件注册到AWS Glue数据目录

接下来介绍如何使用爬虫将下载的文件注册到AWS Glue数据目录。我们将根据下述步骤将文件组织到数据库和表中。建议查看文档以了解如何正确设置AWS Glue数据库。爬虫可以自动将下载的文件注册到目录中,而不是手动进行。您将在AWS Glue数据目录中创建如下数据库: lobrisk lobmarket hr

创建lobrisk数据的AWS Glue数据库示例步骤如下:1 访问 AWS Glue 控制台。2 然后选择数据目录下的数据库。3 选择添加数据库,输入数据库名称为lobrisk。4 选择创建数据库,如下截图所示。

重复上述步骤以创建lobmarket和hr数据库。

AWS Glue爬虫扫描上述文件并将其元数据记录到AWS Glue数据目录中。Glue数据目录将这些Amazon S3数据组织为表和数据库,为了使数据可以通过Amazon Redshift Spectrum使用SQL查询。请查看AWS Glue文档以了解有关创建Glue爬虫的更多信息。AWS Glue爬虫执行完成后,您将看到如下相应的数据库和表:

lobrisklobriskhighconfidentialpubliclobriskhighconfidentiallobmarketcreditcardtransactionpcicreditcardtransactionpcipublichrcustomerspiihprpubliccustomerspiihpr

创建lobrisk数据的AWS Glue爬虫的示例步骤如下:1 在AWS Glue控制台中选择爬虫。2 然后选择创建爬虫。提供爬虫名称lobriskcrawler,选择下一步。

确认选择数据源为Amazon S3,并浏览Amazon S3路径指向lobriskhighconfidentialpublic文件夹并选择该数据源。

爬虫可以在Amazon S3中扫描多个文件夹。选择添加数据源并包括S3//ltltYour Bucket gtgt/lobriskhighconfidential的路径。

在新增另一个Amazon S3文件夹后,选择下一步。

接下来,在配置安全性设置中创建一个新的IAM角色。选择下一步。

选择目标数据库为lobrisk并选择下一步。

在审核下,选择创建爬虫。选择运行爬虫,这将在数据库lobrisk下创建两张表:lobriskhighconfidentialpublic和lobriskhighconfidential。

BMO 如何通过 Amazon Redshift 和 AWS Lake Formation 提高数据

同样使用上述步骤为lobmarket和hr数据创建AWS Glue爬虫。

创建AWS IAM角色

使用AWS IAM,创建以下具有Amazon Redshift、Amazon S3、AWS Glue和AWS Lake Formation权限的IAM角色。

您可以通过此链接在该服务中创建AWS IAM角色。稍后可以为这些IAM角色附加托管策略: iamredshiftpcipii附加到Amazon Redshift集群的AWS IAM角色 AmazonRedshiftFullAccess AmazonS3FullAccess 添加内联策略Lakeformationinline,权限如下:

json { Version 20121017 Statement [ { Sid RedshiftPolicyForLF Effect Allow Action [ lakeformationGetDataAccess ] Resource } ] }

iamredshifthpr附加到Amazon Redshift集群的AWS IAM角色:添加以下托管策略:AmazonRedshiftFullAccessAmazonS3FullAccess添加先前创建的内联策略Lakeformationinline。iamredshiftpublic附加到Amazon Redshift集群的AWS IAM角色:如上所述,添加以下托管策略:AmazonRedshiftFullAccessAmazonS3FullAccess添加先前创建的内联策略Lakeformationinline。LFadminLake Formation管理员:添加以下托管策略:AWSLakeFormationDataAdminAWSLakeFormationCrossAccountManagerAWSGlueConsoleFullAccess

使用Lake Formation基于标签的访问控制LFTBAC对AWS Glue数据目录表进行访问控制

LFTBAC是一种基于属性定义权限的授权策略。使用LFadmin Lake Formation管理员,您可以创建LF标签,如下所示:

键值ClassificationHPRno yesClassificationPCIno yesClassificationPIIno yesClassificationsnonsensitive sensitive

请遵循以下说明创建Lake Formation标签:

登录LF管理控制台https//consoleawsamazoncom/lakeformation/,使用LF管理AWS IAM角色。在权限部分的LF标签和权限中。选择添加LF标签。

根据之前表中的指导创建其余LF标签。一旦创建,您将找到LF标签,如下图所示。

将LF标签分配给AWS Glue目录表

将Lake Formation标签分配到表通常涉及结构化的方法。Lake Formation管理员可以根据数据源、数据类型、业务领域、数据所有者或数据质量等多种标准分配标签。