写点什么

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

  • 2020-10-13
  • 本文字数:3213 字

    阅读完需:约 11 分钟

使用 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 控制数据访问与权限


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2020-10-13 10:061038

评论

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

【玩物立志-scratch少儿编程】骑上小摩托(动态背景+摄像头控制操作)

清风莫追

10月月更

IDEA的Docker插件实战(Docker Image篇)

程序员欣宸

Docker IDEA 10月月更

Java的八种基本数据类型

共饮一杯无

Java 基本数据类型 10月月更

一起学习设计模式:备忘录模式——软件的“后悔药”

宇宙之一粟

设计模式 备忘录模式 10月月更

结构化克隆:浏览器的序列化机制

水鱼兄

crossorigin属性:为什么它是避免tainted canvases的关键?

水鱼兄

Mybatis批量插入数据

源字节1号

软件开发 后端开发

Java中的常量和变量

共饮一杯无

Java 10月月更 常量与变量

【LeetCode】滑动窗口的最大值Java题解

Albert

LeetCode 10月月更

以整数解析为例,如何读懂标准里的算法?

水鱼兄

基于云开发的大学社团招新小程序开发笔记

CC同学

【算法作业】实验一:轮流报数与鸡兔同笼

清风莫追

大数据ELK(二十):FileBeat是如何工作的

Lansonli

Filebeat 10月月更

现在啥软件都有开源,BI 呢?干货推荐

jiangxl

【算法作业】实验五:神奇宝贝大军 & 到迷宫出口的最短路径

清风莫追

算法 10月月更

js异步编程面试题你能答上来几道

loveX001

JavaScript

Qt | 深入了解Qt的视图类

YOLO.

qt 10月月更 C++

AndroidStudio最新版(2021.1.21)配置so文件环境

中国好公民st

c++ Android 小菜鸟 10月月更

Python进阶(八)编写带参数decorator

No Silver Bullet

Python 10月月更 decorator

HTML标准第二章总结:HTML的基础设施

水鱼兄

JS模块化—CJS&AMD&CMD&ES6-前端面试知识点查漏补缺

loveX001

JavaScript

假如面试官问你Babel的原理该怎么回答

loveX001

JavaScript

Qt | 实现自定义验证码输入框控件

YOLO.

qt 10月月更 C++

找到字符串中所有字母异位词

掘金安东尼

算法 10月月更

一文读懂web标准的基石:web IDL

水鱼兄

基于微信小程序的老年大学招生报名小程序开发笔记

CC同学

用OptaPlanner进行车辆路线优化

成长兔🐇

前端面试指南之JS面试题总结

loveX001

JavaScript

Python进阶(九)Python陷阱:Nonetype

No Silver Bullet

Python 10月月更 Nonetype 实例定义方法

智慧城市交通 Sovit3D打造智慧交通可视化决策系统

数据可视化平台

物联网 智慧交通 三维可视化 智慧城市交通 城市交通系统

什么是DataOps?DataOps只是Data加上Ops吗

雨果

DevOps

使用 AWS Lake Formation 配合 Amazon EMR 控制数据访问与权限_安全_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章