边界安全可帮助提升Apache Hadoop 集群的安全性,防止用户从集群外访问过程中带来的威胁。它与 Apache Hadoop 集群的 REST 和 HTTP 交互启用了单个的访问点的方式,简化了客户端与集群的交互。例如,在与启用 Kerberos 的集群上的服务进行交互之前,客户端应用程序必须先使用 Kinit 或 SPNEGO 获取 Kerberos tickets。在本文中,我们将逐步介绍如何设置 Apache Knox 以帮助 Amazon EMR 实现边界安全。
它具有以下优势:
简化各种 Hadoop 服务和 UI 的身份验证
通过充当代理来隐藏特定于服务的 URL/端口
在边界启用 SSL终止
轻松跨多个集群管理已发布的终端节点
概览
Apache Knox
Apache Knox 提供使用 REST API 终端节点网关以访问 Hadoop 集群。它可以通过与企业身份管理解决方案集成,并隐藏EMR集群部署的详细信息,简化客户端与 Hadoop 集群上服务的交互。
在本文中,我们运行以下设置:
创建一个 Virtual Private Cloud (VPC)
为 Active Directory 域控制器准备一个Amazon EC2 Windows 实例。
为 Kerberos 和跨领域信任创建 Amazon EMR 安全配置。
在 EMR 主节点上设置 Knox 并启用 LDAP 身份验证
直观地来看,我们要创建以下资源:
图 1:通过 CloudFormation 交付的基础架构
先决条件和假设
在开始之前,必须满足以下先决条件:
可用的的 AWS 账户。
重要提示:CloudFormation模板硬编码了用户名和密码,并且开了安全组。如果不进行修改,则不建议用于生产用途。
注意事项:
为了简化网络,使用了单个VPC
为了使用简单,CloudFormation 模板使用了硬编码的用户名和密码,并打开了安全组。
实施步骤
一键部署解决方案
如果您不想单独设置每个组件,可以使用单步 AWS CloudFormation 模板。单步模板是一个主模板,使用嵌套堆栈(附加模板)的方式一次性启动和交付解决方案需要的所有资源。
要使用此解决方案,请单击下面的“Launch Stack”按钮,您会跳转到控制台。请勿更改控制台自动带出来的区域(Region),因为该此CloudFormation模板的设计仅适用于 US-EAST-1 区域。
使用此模板,需要填充几个参数,请参阅下表,标有 * 的参数,必须提供,其余参数具有默认值
对于此参数
使用
1
Domain Controller Name
DC1
2
Active Directory domain
awsknox.com
3
Domain NetBIOS name
AWSKNOX(域的 NetBIOS 名称,最多 15 个字符)。
4
Domain admin user
域管理员的账户(awsadmin)
5
Domain admin password *
域管理员用户的密码。至少为八个字符,包含字母、数字和符号(例如 CheckSum123)
6
Key pair name *
访问域控制器的 EC2 密钥对的名称。
7
Instance type
域控制器 EC2 实例的类型。
8
LDAP Bind user name
LDAP 绑定用户名。
默认值为:CN=awsadmin,CN=Users,DC=awsknox,DC=com
9
EMR Kerberos realm
EMR Kerberos 领域名称。这通常是 VPC 的域名,以大写字母表示,例如:EC2.INTERNAL
10
Cross-realm trust password *
跨领域信任密码,例如:CheckSum123
11
Trusted Active D