使用 AWS Lake Formation 配合 Amazon EMR 控制数据访问与权限

2020 年 10 月 13 日

使用 AWS Lake Formation 配合 Amazon EMR 控制数据访问与权限

Original URL: https://aws.amazon.com/cn/blogs/big-data/control-data-access-and-permissions-with-aws-lake-formation-and-amazon-emr/


如果建立起一套对数据湖访问的集中控制体系,结果会如何?我们能更安全、更便捷地帮助内部及外部客户共享特定数据吗?


使用 AWS Lake Formation 并将其与 Amazon EMR 相集成,大家能够轻松完成这类管理任务。


本文将从特定用例出发,回顾对现有数据湖内数据访问与权限加以控制的操作步骤。在开始之前,推荐大家参阅以下内容:



示例用例


我们假设您的企业使用 AWS 扩展了本地基础设施。由于本地数据中心内已经具备用于分析及机器学习负载的固定容量,因此您选择使用云服务执行其他计算与存储任务。AWS Direct Connect 将您的数据中心链接至最近的 AWS 区域。由于您的 Active Directory 服务器仍位于本地,因此您可以使用 Active Directory 连接器实现用户身份验证联动。为了实现成本优化与敏捷性,您还构建起一个数据湖,通过 Lake Formation 将业务数据集中至Amazon Simple Storage Service (Amazon S3)当中。


您的组织希望改善现有数据分析功能,并聘请了外部数据分析顾问。根据最低权限最佳实践,您只希望与外部顾问共享相关数据,且要求其中不涉及任何个人身份信息(PII),例如姓名、出生日期以及社保号码等。


为了避免云端数据受到未授权第三方的访问,我们需要一套安全、受控、符合审计要求且经过加密的数据解决方案。您还要求在列层级限制访问权限,确保外部顾问无法接触到 PII 数据。


此外,您还希望限制顾问对云资源的访问。他们应仅能使用特定的 AWS 身份与访问管理(AWS Identity and Access Management,简称 IAM)角色访问 EMR 集群。


下图所示,为本用例中的具体架构。



外部顾问通过兼容 SMAL 的本地目录服务与 IAM 联动,进而实现对 AWS 资源的身份验证与访问。大家可以控制来自本地身份提供方(IdP)对云资源的访问。关于更多详细信息,请参阅基于SAML 2.0的联动机制


Lake Formation 负责管理数据访问活动。数据湖管理员将在 Lake Formation 中以列为基本层级为各主体定义数据访问权限。这里的“主体”可以是与本地目录服务联动的用户。在本用例中,主体为对应外部顾问的特定角色,负责控制他们对 EMR 集群的只读访问权限。


由于我们在 Lake Formation 中为数据制定了细粒度权限,因此外部顾问将无法触及员工的姓名、出生日期以及社保号码。相反,他们只能访问非 PII 列。这项措施被称为假名化(pseudonymization)。在这类场景中,我们无法在没有其他数据的前提下识别 PII。假名化能够带来以下好处:


  • 保证身份验证以及用户/数据访问治理的集中化实现。

  • 由于存在规范的身份验证来源,因此管理开销更低、安全性水平更高。

  • 顾问使用IAM角色后,仅能通过Lake Formation访问数据以及与EMR集群相关联的实例配置角色。


大家无需管理指向 Amazon S3 的访问活动;所有访问都被集中在 Lake Formation 当中。如果要与更多用户共享数据湖数据,只需在 Lake Formation 进行定义即可。


在下一节中,我们将探讨如何实现这套解决方案。


创建数据湖


在开始本轮演练之前,首先需要创建一个数据湖。您可以通过策略与权限控制对该数据湖的访问活动,具体权限可以立足数据库、表或列层级进行创建。


在创建数据库时,我们需要完成以下步骤以启用 Lake Formation 中的细粒度访问控制权限。


  • 在Lake Formation控制台中的Data catalog下,选择Databases。

  • 选择Create database



  • 在Name部分,输入您的数据库名称。

  • 取消Use only IAM access control for new tables in this database 勾选项。


如此一来,我们即启用了 Lake Formation 权限的细粒度访问控制。


  • 选择Create database



调整权限


  • Permissions下,选择Data permissions

  • 选择Grant



  • IAM users and roles 部分,选择哪些特定的IAM用户与角色可以访问数据湖。


这些账户可以与兼容 AWS 的 SAML 2.0 IdP 配合使用,借此实现对来自本地 Active Directory 访问的控制能力。


大家还可以直接定义 Active Directory 用户与组,但仅限将 Amazon EMR 与 Lake Formation 相集成的上下文之内。关于更多详细信息,请参阅Amazon EMR与AWS Lake Formation集成功能beta版:面向Apache Spark的数据库、表与列层级访问控制支持,以及Amazon EMR组件介绍


  • 在Database部分,选择您的数据库。

  • 在Table部分,选择您的表。

  • 在Columns部分,选择Exclude columns

  • Exclude columns 部分,选择要排除的列(在本用例中,排除first name、last name以及ssn列)。

  • Table permissions部分,选择 Select


这项功能允许您通过 IAM 用户或角色在列层级实现访问控制。


  • 选择 Grant



Lake Formation 与 Amazon EMR 相集成


从 Amazon EMR 5.26 版本开始,大家可以启动 EMR 集群并将其与 Lake Formation 进行集成。Amazon EMR 仅能根据 Lake Formation 定义的权限访问特定列或数据。关于更多详细信息,请参阅启用SAML的单点登录与细粒度访问控制架构


其中一项核心要求,就是配备一个专为 EMR 集群定义的外部 IdP(例如微软 Active Directory、Okta 或者 Auth0)。这样处理的好处,在于大家可以使用现有企业目录、合规性条款以及审计方案控制 Lake Formation 中的数据访问活动。关于具体操作说明,请参阅Amazon EMR与AWS Lake Formation的集成功能(beta版)


集成完成之后,顾问即可通过 Zeppelin 或者 Apache Spark 使用来自 Amazon EMR 的数据,且保证不会涉及 PII 内容。


其他安全措施


与大多数 AWS 服务一样,Amazon EMR 与 Lake Formation 也可使用 IAM 功能。在 IAM 的支持下,我们可以定义 IAM 用户或角色,借此授权对其他 AWS 服务及数据的访问权限。


在这套安全模式之上,AWS CloudTrail 能够进一步跟踪所有 AWS API 请求。您可以通过这项跟踪功能满足治理与合规层面的要求,保证及时了解各类 AWS 资源的实际使用情况。


要保护数据,大家可以使用传输加密与静态加密两种方式。此外,您也可以针对 EMR 集群定义特定的安全配置。关于更多详细信息,请参阅加密选项


要使用其他安全服务,您可以选择Amazon GuardDuty (一项威胁检测服务)以及 Amazon Macie(大规模数据发现与保护服务)。关于更多详细信息,请参阅AWS上的安全性、身份与合规性


总结


数据的使用在数据格式和规模两个方面已经取得了快速的发展。对不同技术(关系数据库、NoSQL、图数据库、明文文件等)进行管理则会显著增加运营开销。随着竞争烈度的提升,数据规模也将随业务推进而飞速发展,带来更大的计算与存储资源压力。这一切,都迫使组织需求通往更高敏捷性与速度水平的道路。


此外,大家可能需要与众多内部及外部客户共享业务需求数据,这不仅令数据治理难度进一步提升,同时也给权限与访问管理带来沉重负担。


在本文中,我们解释了如何控制数据湖的访问与权限机制。指向数据的访问活动将经过控制、加密与审计,AWS 也通过这种严密的方式支持组织客户的安全发展。而这一切,都将在本地 IdP 加 AWS/其他外部资源的混合基础架构之下成为现实。


您也可以启动数据湖项目,以安全且可扩展的方式通过多种 IAM 角色实现组织数据共享。整个过程只需要几分钟(而非以往安全方案的几个月),且不会对工程设施造成任何深层影响。


作为这项工作的自然延续,大家还可以将经过整理的数据引入 AWS Machine Learning 工具所支持的各类机器学习项目。


作者介绍


Nabil Ezzarhouni


AWS 公司合作伙伴解决方案架构师。他主要关注 DevOps、机器学习方向,作为重度宠物爱好者的他还热衷于陪伴他的小狗 Bandit。


Pawan Matta


AWS 公司解决方案架构师。Pawan 喜欢与客户合作,并在存储与迁移等领域为客户提供协助。在工作之余,Pawan 喜欢观看板球比赛和与朋友们玩主机游戏。


本文转载自亚马逊 AWS 官方博客


原文链接


使用 AWS Lake Formation 配合 Amazon EMR 控制数据访问与权限


2020 年 10 月 13 日 10:06545

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

week01总结

seki

极客大学架构师训练营

架构方法:架构师如何做架构

食堂就餐系统

安阳

架构师训练营——食堂就餐卡系统设计

养乐多

食堂就餐卡设计说明书

架构师训练营-Week1-作业1

车小勺的男神

架构师训练营-Week1-作业2

车小勺的男神

架构师训练营——第一周总结

养乐多

架构师训练营——第一周总结

Andy风

《第一章:架构师如何做架构》总结

尔东雨田

极客大学架构师训练营

食堂就餐卡系统设计文档

秤须苑

极客大学架构师训练营

架构师训练营作业一:食堂就餐卡系统设计

常江舟

极客大学架构师训练营

【第一周作业】食堂就餐卡系统设计

黑莓

让独立思考成为习惯

Neco.W

深度思考 学习方法 思考

架构师0期第一周作业(总结)

何伟敏

第1周 学习总结

安阳

架构师第一周上课总结

种个大西瓜

架构方法

shangyu

极客大学架构师训练营

week01作业

seki

Week 01 食堂饭卡系统设计

Geek_165f3d

就餐卡系统设计

小胖子

第一周:架构方法-架构师如何做架构学习总结

DZ

【第一周】学习总结

黑莓

食堂就餐卡系统设计 - 简陋版

X﹏X

【总结】架构师如何做架构

小胖子

架构师课程学习第一周心得

秤须苑

极客大学架构师训练营

小师妹学JavaIO之:NIO中Channel的妙用

程序那些事

io nio 小师妹 buffer channel

玄姐公开课总结【构建基于ServiceMesh的普适业务中台架构】

魔曦

架构 Service Mesh

如何让自己有机会成为一名架构师?

kk

极客大学架构师训练营

架构师训练营第一周学习总结

常江舟

极客大学架构师训练营

架构师训练营--第1周总结感想

芥菜

使用 AWS Lake Formation 配合 Amazon EMR 控制数据访问与权限-InfoQ