前言
在《Amazon EMR迁移指南》中更多的是对Amazon EMR上可配置Kerberos集成方式的选项及配置后各个组件与KDC的交互认证流程的说明,本博客是针对Amazon EMR与外部KDC(非Amazon EMR自带KDC或单向信任的KDC)集成业务场景的具体实现,这部分在亚马逊云科技官方的文档里没有具体的说明,且自建外部KDC需要符合特定的条件及账 规范,否则其配置集成的Amazon EMR无法成功创建和启动。
Kerberos简介
Amazon EMR发行版 5.10.0 及更高版本支持Kerberos。Kerberos是Amazon EMR可支持的最安全的身份验证和授权机制。Kerberos会要求用户提供自己的凭据,并从中央身份验证服务器获取证明用户身份的票证,随后该票证即可用于为集群中的资源分配访问。这是麻省理工学院 (MIT) 创建的一种 络身份验证协议。Kerberos使用私有密钥加密来提供强大的身份验证,以便不会通过 络以未加密的格式发送密码或其他凭证。
在Kerberos中,需要进行身份验证的服务和用户称为委托人(principals.)。委托人存在于 Kerberos领域(realm)中。在该领域中,被称为密钥分发中心 (KDC) 的Kerberos服务器为委托人提供身份验证方法。KDC通过颁发用于身份验证的票证来执行此操作。KDC维护一个包含其领域中的委托人、它们的密码及其他有关每个委托人的管理信息的数据库。KDC还可以接受来自其他领域中的委托人的身份验证凭证,这称为跨领域信任。此外,Amazon EMR集群可以使用外部KDC对委托人进行身份验证。
Amazon EMR与Kerberos集成方式
在Amazon EC2上搭建外部KDC
在Amazon EC2上搭建外部KDC
1:通过Amazon Linux 2 AMI镜像,并按默认配置启动Amazon EC2,安装Kerberos安装包。注意该Amazon EC2所在子 可以与稍后创建的Amazon EMR集群 络互通。如果安装在私有子 ,请确保有跳转机可以访问到该机器。
*左右滑动查看更多
3:修改krb5.conf,如以下配置,将default_realm以及[realms]中的默认注释去掉,同时修改为自己的KDC域名,并在[realms]中指定KDC服务器私有IP地址。
*左右滑动查看更多
4:创建/初始化Kerberos database。
*左右滑动查看更多
检查数据库是否创建成功。
5:为database administrator设置ACL权限。
*左右滑动查看更多
以便允许所有远程kadmin/admin的管理员操作,否则Amazon EMR puppy安装Kerberos client的时候无法create各个组件的principal。
6:添加database administrator。
*左右滑动查看更多
检查是否委托人创建成功。
7:修改kadmin密码,该修改后的密码将用于Amazon EMR集群集成时使用。
退出。
注意该步骤中创建的admin账密需要与Amazon EMR安全策略中配置的admin密码一致。
8:启动Kerberos daemons。
【optional步骤】:LDAP集成
企业客户通常会将系统账 统一存储在LDAP中,该步骤为自建LDAP与Kerberos集成的方案
1:安装open LDAP。
*左右滑动查看更多
2:加载并启动LDAP服务。
*左右滑动查看更多
3:创建RootDN及BaseDN对象(该对象为Kerberos连接LDAP的根dn)。
4:更改完毕重启slapd服务。
5:加载ldap schema,以便与Kerberos集成。
*左右滑动查看更多
6:更新Kerberos的server端配置,增加database_module及ldapconf的相关配置。
*左右滑动查看更多
创建EMR并集成外部KDC
1. 在Amazon EMR服务的安全配置中心中创建名为extkdctest的安全配置,并设置外部kdc的地址。
3. 在硬件配置中的 络配置中,选择和外部KDC可以联通的子 ,并确定KDC server所在Amazon EC2的安全组中允许该 络访问。
4. 在安全性页面中,除了设置Amazon EC2键对外,在安全设置中选项刚才设置的安全配置,输入域名并输入我们在外部KDC更改kadmin后的密码。其他默认选择,并进行集群创建。
总结
柏燕峥
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!