系统安全通常包括两个核心主题:身份验证和授权。一个解决“谁是他/她?”的问题,另一个解决“他/她是否有执行操作的权限”的问题? 在大数据领域,Apache Ranger是最受欢迎的授权选择之一,它支持所有主流大数据组件,包括 HDFSHive、HBase、 等等。随着 Amazon EMR 推出原生护林员(插件)功能,用户可以同时管理 EMRFS(S3)、Spark、Hive 和 Trino 的授权。对于身份验证,组织通常有自己的集中式身份验证基础架构,即Windows AD或OpenLDAP;但是,对于大多数大数据组件,Kerberos仅支持认证机制,因此用户通常需要将Windows AD/OpenLDAP和Kerberos集成在一起来统一认证。

我们将重点介绍如何为 Amazon EMR 和 Apache Ranger 实施自动安装和集成。本系列由四篇文章组成。每篇文章都将介绍针对不同技术堆栈的完整解决方案。

1. 解决方案概述

安装 Apache Ranger 并与 Amazon EMR 集成包括三个主要组件:

  1. 安装并集成身份验证提供程序。
  2. 在 EMR 集群上设置 Ranger 服务器及其插件。
  3. 如果启用了 Kerberos,请配置所有相关组件。

对于身份验证提供程序,Windows AD 和 OpenLDAP 使用最广泛。它们的安装和集成非常不同,因此它们应该算作两个单独的工作。

对于游侠安装,有两个选项。第一个是“开源游侠服务器+EMR原生游侠插件”。 在本文中,我们将它称为“EMR 原生”游侠解决方案。二是“开源游侠服务器+开源游侠插件”。 在本文中,我们将它称为“开源”游侠解决方案。安装这两个解决方案将是两个单独的作业。 

对于 Kerberos 来说,如果启用,会给上述作业带来很多变化,所以启用或禁用 Kerberos 也是两个独立的作业。

综上所述,基于上述三个因素,有以下八种可能的情况(技术堆栈):

本系列由四篇文章组成,与前四种情况相对应。下面是方案和解决方案图:

场景
溶液
                  1
Apache Ranger 和 AWS EMR 自动安装和集成系列 (2):OpenLDAP + EMR-Native Ranger
         阿拉伯数字          
Apache Ranger 和 AWS EMR Automated Installation and Integration Series (3):Windows AD + EMR-Native Ranger
                  3
Apache Ranger 和 AWS EMR 自动安装和集成系列 (4):OpenLDAP + Open Source Ranger
                  四
Apache Ranger 和 AWS EMR 自动安装和集成系列 (5):Windows AD + Open-Source Ranger

对于场景 5 和 6,截至撰写本文时,尚不支持 EMR 对于方案 7 和 8,考虑到很少有用户选择它们,我们不会讨论它们。 

注意:在撰写本文时,Trino插件尚不可用,因此此解决方案目前不支持Trino插件。

2. 为什么安装游侠如此困难?

无论您之前是否成功成功,安装和集成Windows AD / OpenLDAP + Ranger + EMR都是一项非常艰巨的工作,由于以下原因,它很复杂,容易出错且耗时:

  1. 它要求操作员对Windows AD,OpenLDAP,Kerberos和SSL / TLS有足够的了解,这些不是大数据工程师的核心技能。学习它们将花费大量时间。
  2. Ranger的架构很复杂,它包括两个服务器端组件:Ranger Admin和Ranger UserSync。两个存储组件: MySQL 和Solr,以及各种插件。对于插件,它们还需要安装在集群节点上,因此完整的手动安装是一项繁重的工作。
  3. 它不是一个独立的作业,通常需要与现有的Windows AD/OpenLDAP服务器或EMR集群集成。许多外部不确定因素可能会导致安装失败,即网络问题、特定于环境的配置不正确等。
  4. EMR 原生护林员解决方案在很大程度上依赖于 Kerberos 和 SSL/TLS。这大大增加了集成的复杂性。
  5. Ranger没有开箱即用的分发包。安装必须从编译源代码开始,这对非Java工程师来说是一个挑战。

上述因素的重叠使这项工作非常困难。

3. 自动安装程序简介

随着简化 Ranger 使用体验的声音越来越高,自 2020 年以来,我采取了主动行动并重新发明了一个自动安装程序,以改善 Ranger 在 EMR 上的用户体验。以下是自动安装程序存储库地址:

项目名称
存储库地址
游侠 EMR CLI 安装程序
它同时支持四种场景(1、2、3、4)。换句话说,它支持Windows AD和OpenLDAP,并且可以在所有 AWS 区域(包括中国区域)工作。对于方案 3/4,此安装程序可以安装在现有群集上,并支持多主群集和单主群集。对于每个步骤,此安装程序始终首先检查连接,然后决定是否执行后续步骤。这对于识别网络问题或服务故障非常有帮助,即当Ranger或OpenLDAP未启动时。最后,实际的安装作业是一个试错过程。用户始终需要尝试不同的参数值才能找到适用于用户环境的参数值。安装程序允许用户随时重新运行多合一安装,而不会产生副作用,用户还可以分步运行以进行调试。以下是主要功能摘要:

Key Features Summary

我们知道此 AWS 博客上有一个现有的解决方案:“在 Amazon EMR 上使用 Apache Ranger 实施授权和审计”。 但是,此安装程序与解决方案到设计功能有很大不同。此解决方案仅支持两种方案(第 2、4 号),并且仅适用于 us-east-1 区域。对于方案 3/4,此解决方案不支持现有或多主集群,依此类推。本系列文章完全基于此工具,指导用户完成前四种方案的安装。

由于 EMR 和 Ranger 有多个版本,因此应引起我们注意不同版本之间的兼容性。通常,Ranger 1 适用于 Hadoop 2,Ranger 2 适用于 Hadoop 3。此安装程序是针对 Ranger 2.1.0 和 2.2.0 开发的,因此它仅支持 EMR 6.X。我们针对 Ranger 2.1.0 全面测试了四种解决方案,全部通过,并且我们对 Ranger 2.2.0 进行了部分测试,它也可以工作,但可能存在尚未发现的潜在错误。以下是游侠和 EMR 版本兼容性矩阵:

在下一篇文章中,我们将开始一一介绍每种解决方案。

Comments are closed.