UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab(PRNCIPAL_NAME, PATH_TO_KEYTAB);
} /**
* initialize FileSystem, and get ST from Kerberos * @throws IOException
*/
private void initFileSystem() throws IOException { fs = FileSystem.get(conf);
private void doSth() throws IOException { Path path = new Path("/tmp");
FileStatus fStatus = fs.getFileStatus(path);
System.out.println("Status of " + path + " is " + fStatus);
//other thing }
public static void main(String[] args) throws Exception { KerberosTest test = new KerberosTest();
步骤1 登录FusionInsight Manager。
步骤2 在FusionInsight Manager界面选择“系统 > 权限 > 角色 > 添加角色”。
1. 填写角色的名称,例如developrole,单击“确定”保存角色。
2. 参考如何判断某个服务是否使用了Ranger鉴权,确认服务是否启用了Ranger鉴 权?
应用开发指南 5 安全认证
– 是,执行步骤3。
HDFS > 文件系统”,勾选“hdfs://hacluster”的“读”、
“写”和“执行”,单击“确定”保存。
Mapreduce/
Yarn 1. 在“配置资源权限”的表格中选择“待操作集群的名称
> HDFS > 文件系统 > hdfs://hacluster/”,勾选
“user”的“读”、“写”和“执行”。继续选择“待
选择“待操作集群的名称 > HBase > HBase Scope >
global > hbase”,勾选“hbase:meta”的“执行”。
选择“待操作集群的名称 > HDFS > 文件系统 > hdfs://
hacluster/ > user”,勾选“hive”的“读”、“写”、
“执行”。
选择“待操作集群的名称 > HDFS > 文件系统 > hdfs://
hacluster/ > user > hive”,勾选“warehouse”的
“读”、“写”、“执行”。
选择“待操作集群的名称 > HDFS > 文件系统 > hdfs://
hacluster/ > tmp”,勾选“hive-scratch”的“读”、
“写”、“执行”,若存在“examples” ,勾选
HBase > HBase Scope ”,勾选“global”的“管理”、
“创建”、“读”、“写”和“执行”,单击“确定”保 存。
应用开发指南 5 安全认证
服务 所需添加权限
Spark2x 1. (若安装了HBase,则配置)在“配置资源权限”表格 中选择“待操作集群的名称 > HBase > HBase Scope >
global”,勾选“default”的“创建”,单击“确定”
保存。
2. (若安装了HBase,则配置)编辑角色,在“配置资源 权限”的表格中选择“待操作集群的名称 > HBase >
HBase Scope > global > hbase”,勾选
“hbase:meta”的“执行”,单击“确定”保存。
Yarn > 调度队列 > root”,勾选“default”的“提交”和
“管理”,单击“确定”保存。
说明Hive应用开发需要到的额外的操作权限需要从系统管理员处获取。
ClickHouse 在“配置资源权限”的表格中选择“待操作集群的名称 >
ClickHouse > Clickhouse Scope”,勾选对应数据库的创 建权限。单击对应的数据库名称,根据不同任务场景,勾 选对应表的“读”、“写”权限,单击“确定”保存。
Flink 1. 在“配置资源权限”的表格中选择“待操作集群的名称
> HDFS > 文件系统 > hdfs://hacluster/ > flink ”,勾 选“读”、“写”和“执行”,单击“配置资源权限”
表格中“服务”返回。
2. 在“配置资源权限”的表格中选择“待操作集群的名称
> Yarn > 调度队列 > root”,勾选default的“提交”,
单击“确定”保存。
说明若指定state backend为HDFS,例如指定state backend目录为
"hdfs://hacluster/flink-checkpoint",需同样为"hdfs://
服务 所需添加权限
步骤5 填写用户名,例如developuser,按照表5-3选择相应的用户类型和需加入的用户组,
并绑定角色developrole取得权限,单击“确定”。
服务 用
步骤7 在FusionInsight Manager界面选择“系统 > 权限 > 用户”,在用户名中选择 developuser,单击操作“更多 > 下载认证凭据”下载认证凭据文件,保存后解压得 到用户的“user.keytab”文件与“krb5.conf”文件。Keytab文件用于在样例工程中进 行安全认证,具体使用请参考各服务的开发指南指导。
说明
如果用户类型是人机,需要先修改初始密码后再下载认证凭据文件,否则在使用时会提示
“Password has expired - change password to reset”,导致安全认证失败。
----结束