Ranger之配置高级授权设置(九)

配置高级授权设置

配置身份验证时,如何自定义管理员高级设置。
在这里插入图片描述

开发自定义授权模块

在Hadoop生态系统中,每个组件(如Hive、HBase)都有自己的授权实现,并能够插入定制的授权模块。要为组件实现集中授权和审计特性,组件应该支持可定制(或可插入)授权模块。

自定义组件授权插件应该做以下事情:
•根据策略管理工具中定义的策略提供授权
•根据实现自定义组件授权的授权决策提供审计信息
为了实现自定义组件授权插件,Ranger通用代理框架提供了以下功能:
•能够从服务管理器读取给定服务id的所有策略
•能够记录审计信息
当自定义授权模块被初始化时,该模块应该执行以下操作:

  1. 启动对“策略管理工具”的REST API调用,以检索与特定组件相关的所有策略。
  2. 一旦政策可用,它应该:
    •启动策略更新线程,定期从“策略管理工具”刷新策略。
    当自定义授权模块被调用来对特定组件资源(如/app文件夹)执行组件操作(如读操作)的授权时,授权模块将:
    •识别授权决策-针对每个策略:policyList:
    •如果 (resource in policy auth-requested-resource)
    •如果(action-in-policy action-requested
    •如果(current-user或current-user-groups或public-group <策略允许的>),返回允许访问
    •为每个政策识别审计需求:policyList
    •如果(policy中的resource auth-requested-resource),返回policy. isauditenabled

高可用性环境的特殊要求

在高可用性环境下,主备namenode必须按照HDP系统管理指南进行配置。
为了在HDFS HA环境中启用Ranger,必须在每个NameNode中设置HDFS插件,然后指向在Security Manager中设置的相同的HDFS服务。在该HDFS服务中创建的任何策略。
通过安装的Apache Ranger插件自动同步到主namenode和从namenode。这样的话,如果主NameNode失败了,次要NameNode就会接管,这个NameNode上的Ranger插件就会开始执行相同的访问控制策略。
在创建服务时,必须包含fs.default.name属性,并且必须将其设置为主NameNode的完整主机名。如果主NameNode在策略创建过程中失败,那么您可以在服务详细信息中临时使用备用NameNode的fs.default.name来为创建策略启用目录查找。
当主NameNode关闭时,如果您希望创建新的策略,那么在指定资源路径时,用户体验会有细微的不同。如果一切正常,这是一个带有可选择路径的下拉菜单;但是,如果群集是从故障转移节点运行的,则不会有下拉菜单,您需要手动输入路径。
主NameNode失败不会影响实际的策略执行。在这种HA设置中,管理员在次要NameNode上的插头在主NameNode故障期间强制执行访问控制。
在/etc/ranger/admin中,在HBase -site.xml和HDFS -site.xml之间创建一个符号链接:

cd /etc/ranger/admin
ln -s /etc/hadoop/conf/hdfs-site.xml hdfs-site.xml
ln -s /etc/hbase/conf/hbase-site.xml hbase-site.xml

配置高级Usersync设置

在“自定义服务”页面,选择“高级”页签,即可访问“Usersync”设置。Usersync从UNIX、LDAP或AD拉入用户,并使用这些用户填充Ranger的本地用户表。

关于这个任务

该任务指导软件调测工程师配置用户高级同步信息。
•Unix
•(必需)LDAP / AD
•LDAP / AD(可选)
•为外部用户自动分配ADMIN KEYADMIN角色

过程
Unix:如果您使用Unix身份验证,高级ranger-ugsync-site属性的默认值是
UNIX身份验证的设置:

在这里插入图片描述
LDAP / AD(必需)

a) LDAP高级ranger-ugsync-site设置。

表一:LDAP高级ranger-ugsync-site设置

属性名LDAP 变量值
ranger.usersync.ldap.bindkeystore将其设置为与ranger.usersync.credstore相同的值。例如,默认值为/usr/hdp/current/ranger-usersync/conf/ugsync.jceks
ranger.usersync.ldap.bindaliasranger.usersync.ldap.bindalias
ranger.usersync.source.impl.classldap
ranger.usersync.ldap.bindkeystore将其设置为与ranger.usersync.credstore相同的值。例如,默认值为/usr/hdp/current/ranger-usersync/conf/ugsync.jceks

b) AD高级ranger-ugsync-site设置

属性名LDAP 变量值
ranger.usersync.source.impl.classldap

•LDAP / AD(可选)。如果您正在使用LDAP或Active Directory身份验证,则可能需要更新以下属性,具体取决于您的部署特征。

a) LDAP和AD的高级ranger-ugsync站点设置

表三 LDAP和AD的高级ranger-ugsync站点设置

Property NameLDAP ranger-ugsync-site ValueAD ranger-ugsync-site Value
ranger.usersync.ldap.urlldap://127.0.0.1:389ldap://ad-conrowoller-hostname:389
ranger.usersync.ldap.binddncn=ldapadmin,ou=users,dc=example,dc=com,cn=adadmin,cn=Users,dc=example,dc=com
ranger.usersync.ldap.ldapbindpasswordsecretsecret
ranger.usersync.ldap.searchBasedc=example,dc=comdc=example,dc=com
ranger.usersync.source.impl.classorg.apache.ranger. ladpusersync.process.LdapUserGroupBuilder
ranger.usersync.ldap.user.searchbaseou=users, dc=example,dc=com dc=example,dc=com
ranger.usersync.ldap.user.searchscopesubsub
ranger.usersync.ldap.user.objectclasspersonperson
ranger.usersync.ldap.user.searchfilterSet to single empty space if no value. Do not leave it as “empty”(objectcategory=person)
ranger.usersync.ldap.user.nameattributeuid or cnsAMAccountName
ranger.usersync.ldap.user.groupnameattributememberof,ismemberofmemberof,ismemberof
ranger.usersync.ldap.username.caseconversionnonenone
ranger.usersync.ldap.groupname.caseconversionnonenone
ranger.usersync.group.searchenabled *falsefalse
ranger.usersync.group.usermapsyncenabled*falsefalse
ranger.usersync.group.searchbase *ou=groups, dc=example, dc=comdc=example,dc=com
ranger.usersync.group.searchscope*subsub
ranger.usersync.group.objectclass *groupofnamesgroupofnames
ranger.usersync.group.searchfilter *needed for AD authentication(member=CN={0}, OU=MyUsers,DC=AD-HDP, DC=COM)
ranger.usersync.group.nameattribute *cncn
ranger.usersync.group.memberattributename *membermember
ranger.usersync.pagedresultsenabled *truetrue
ranger.usersync.pagedresultssize *500500
ranger.usersync.user.searchenabled *falsefalse
ranger.usersync.group.search.first.enabled *falsefalse

*仅适用于想要过滤掉组的情况。
在Customize Services页面上完成指定所有设置后,单击页面底部的Next继续安装。
•为外部用户自动分配ADMIN KEYADMIN角色。您可以使用usersync在Ranger中使用ADMIN或KEYADMIN角色标记特定的外部用户或特定外部组中的用户。这在不允许内部用户登录Ranger的情况下很有用。
a)从Ambari>Ranger>Configs>Advanced>Custom Ranger -ugsync-site,选择添加属性。
b)添加以下属性:
•ranger.usersync.role.assign .list.delimiter = &默认值为&。•ranger.usersync.users.groups.assign .list.delimiter =:默认值为:。
•ranger.usersync.username.groupname.assign .list.delimiter =,默认值为,。
•ranger.usersync.group.based.role.assignment.rules = ROLE_SYS_ADMIN:u:userName1,userName2&ROLE_SYS_ADMIN:g:groupName1,groupName2&ROLE_KEY_ADMIN:u:userName&ROLE_KEY_ADMIN:g:groupName&ROLE_USER:u:userName3,userName4&ROLE_USER:g:groupName
c)单击Add。
d)重启管理员。

ranger.usersync.role.assignment.list.delimiter = &
ranger.usersync.users.groups.assignment.list.delimiter = :
ranger.usersync.username.groupname.assignment.list.delimiter = ,
ranger.usersync.group.based.role.assignment.rules :
 &ROLE_SYS_ADMIN:u:ldapuser_12,ldapuser2

配置用户同步LDAP SSL

如何使用默认管理员用户同步信任存储中的自签名证书配置LDAP SSL。

过程

  1. 默认位置为/usr/hdp/current/rangerusersync/conf/mytruststore。jks为ranger.usersync.truststore。文件属性。
  2. 或者,复制并编辑自签名的ca证书。
  3. 设置ranger.usersync.truststore。属性设置为新的cacert文件。
cd /usr/hdp/<version>/ranger-usersync 
service ranger-usersync stop 
service ranger-usersync start

其中cert.pem包含LDAPS证书。

在不共享DBA凭据的情况下设置数据库用户

如果不希望向Ambari Ranger安装程序提供系统数据库管理员(DBA)帐户详细信息,可以使用dba_script.py Python脚本创建Ranger DB数据库用户,而不必将DBA帐户信息暴露给Ambari Ranger安装程序。然后,您可以运行正常的Ambari Ranger安装,而不需要指定DBA用户名和密码。

过程

  1. 使用yum install命令下载Ranger rpm: yum install Ranger -admin。

  2. 您应该会在/usr/hdp/current/ranger-admin目录下看到一个名为dba_script.py的文件。

3.在内部审查脚本,并验证DBA是否被授权运行脚本。

  1. 执行如下命令:python dba_script.py。

  2. 传递参数中需要的所有值。这些参数应该包括db样式、JDBC jar、db主机、db名称、db用户和其他参数。
    •如果你不想通过命令提示符传递运行时参数,你可以更新/usr/hdp/ current/ranger-admin/install。当指定-q选项时,脚本将从安装中读取所有必需的信息。属性文件。
    •您可以使用-d选项在“dry”模式下运行脚本。以干模式运行脚本会生成数据库脚本。

python dba_script.py -d /tmp/generated-script.sql

•任何人都可以运行该脚本,但建议系统DBA以dry模式运行该脚本。在任何一种情况下,系统DBA都应该检查生成的脚本,但应该只对脚本进行较小的调整,例如,更改特定数据库文件的位置。不应该对脚本进行重大更改,否则Ranger安装可能会失败。
然后,系统DBA必须运行生成的脚本
6. 运行Ranger Ambari安装过程,但是在定制服务页面的Ranger Admin部分将Setup Database和Database User设置为No。

更新管理员管理员密码

对于某些用户,如果您更新了Ranger Configs页面上的密码,那么您还必须更新启用了Ranger插件的每个Ambari组件的Configs页面上的密码。
单个Ambari组件配置不会自动更新——如果不更新每个组件上的这些密码,服务重启将失败。
•Ranger Admin用户——该用户的凭证设置在Configs > Advanced Ranger -env中标签为admin_username(默认值:Admin)和admin_password(默认值:Admin)的字段中。
•Ambari用于创建repo/policies的Admin用户——该用户的用户名设置在Configs > Admin Settings中,标签为“Ranger Admin Admin”的字段中(默认值:amb_ranger_admin)。该用户的密码在标记为Ranger Admin user’s password for Ambari的字段中设置。此密码是在Ranger安装期间指定的。

下图显示了Ranger配置页面上这些设置的位置:
在这里插入图片描述
管理员密码要求

介绍Ranger和Ranger KMS的密码要求。管理员用户密码要求:
•最少8个字符
•必须包括至少一个字母和一个数字字符
•不能包含以下不支持的特殊字符:" ’ \ ’ Ranger和Ranger KMS数据库用户密码要求:
•不能包含以下不支持的特殊字符:" ’ \ ’ Ranger数据库实例密码要求:
•参考适用数据库类型的密码要求(MySQL, PostgreSQL, Oracle等)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值