knox Knox使用说明

发布时间:2020-07-08 09:01:22   来源:网络 关键词:knox

knox


本文介绍如何在E-MapReduce上使用Knox。

背景信息

目前E-MapReduce中支持了Apache Knox,选择支持Knox的镜像创建集群,完成以下准备工作后,即可在公网直接访问YARN、HDFS、Spark History Server等服务的Web UI。

准备工作

  • 开启Knox公网IP访问
    1. E-MapReduce上Knox的服务端口是8443,在集群基础信息中找到集群所在的ECS安全组。
    2. 在ECS控制台修改对应的安全组,在入方向添加一条规则,打开8443端口。
    注意
    • 为了安全原因,这里设置的授权对象必须是您的一个有限的IP段范围,禁止使用0.0.0.0/0。
    • 打开安全组的8443端口之后,该安全组内的所有机器均会打开公网入方向的8443端口,包括非E-MapReduce的ECS机器。
    • 若集群在创建时,没有挂载公网IP。可以在ECS控制台为该ECS实例添加公网IP。添加成功后,返回EMR控制台,在集群管理下的主机列表页面,单击同步主机信息可以立即同步。
    • Knox节点新挂载公网IP后,需要通过提交工单联系E-MapReduce产品团队,进行域名和公网IP的绑定操作。
  • 设置Knox用户

    访问Knox时需要对身份进行验证,会要求您输入用户名和密码。Knox的用户身份验证基于LDAP,您可以使用自有LDAP服务,也可以使用集群中的Apache Directory Server的LDAP服务。

    • 使用集群中的LDAP服务

      方式一(推荐)

      在用户管理中直接添加Knox访问账号。

      方式二
      1. SSH登录到集群上,详细步骤请参见使用SSH连接主节点。
      2. 准备您的用户数据,如:Tom。将文件中所有的emr-guest替换为Tom,将cn:EMR GUEST替换为cn:Tom,设置userPassword的值为您自己的密码。
        su knoxcd /usr/lib/knox-current/templates  vi users.ldif
        注意 出于安全原因,导入前务必修改users.ldif的用户密码,即:设置userPassword的值为您自己的用户密码。
      3. 导入到LDAP。
        su knoxcd /usr/lib/knox-current/templatessh ldap-sample-users.sh
    • 使用自有LDAP服务的情况
      1. 在集群配置管理中找到KNOX的配置管理,在cluster-topo配置中设置两个属性:main.ldapRealm.userDnTemplatemain.ldapRealm.contextFactory.urlmain.ldapRealm.userDnTemplate设置为自己的用户DN模板、main.ldapRealm.contextFactory.url设置为自己的LDAP服务器域名和端口。设置完成后保存并重启Knox。配置Knox
      2. 一般自己的LDAP服务不在集群上运行,所以需要开启Knox访问公网LDAP服务的端口,如:10389。参见8443端口的开启步骤,选择出方向 注意 为了安全原因,这里设置的授权对象必须是您的Knox所在集群的公网IP,禁止使用0.0.0.0/0

开始访问Knox

  • 使用E-MapReduce快捷链接访问
    1. 登录阿里云 E-MapReduce 控制台。
    2. 在顶部菜单栏处,选择地域(Region)。根据实际情况选择资源组,默认显示账号全部资源。
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,单击集群服务 > HDFS

      选择相应的服务,如:HDFS、YARN等,本文以HDFS为例。

    6. 单击右上角HDFS的快捷链接。快捷链接
  • 使用集群公网IP地址访问
    1. 通过集群详情查看公网IP。
    2. 在浏览器中访问相应服务的 URL。
      • HDFS UI:https://{集群公网ip}:8443/gateway/cluster-topo/hdfs/
      • Yarn UI:https://{集群公网ip}:8443/gateway/cluster-topo/yarn/
      • SparkHistory UI:https://{集群公网ip}:8443/gateway/cluster-topo/sparkhistory/
      • Ganglia UI:https://{集群公网ip}:8443/gateway/cluster-topo/ganglia/
      • Storm UI:https://{集群公网ip}:8443/gateway/cluster-topo/storm/
      • Oozie UI:https://{集群公网ip}:8443/gateway/cluster-topo/oozie/
    3. 浏览器显示您的链接不是私密链接,是因为Knox服务使用了自签名证书,请再次确认访问的是自己集群的 IP、且端口为8443。单击高级 > 继续前往
    4. 在登录框中输入您在LDAP中设置的用户名和密码。

用户权限管理(ACLs)

Knox提供服务级别的权限管理,可以限制特定的用户,特定的用户组和特定的IP地址访问特定的服务,可以参见Apache Knox授权。

示例:

  • 场景:Yarn UI只允许用户Tom访问。
  • 步骤:在集群配置管理中找到KNOX的配置管理,找到cluster-topo配置,在cluter-topo配置的<gateway>...</gateway>标签之间添加ACLs代码:
    <provider>      <role>authorization</role>      <name>AclsAuthz</name>      <enabled>true</enabled>      <param>          <name>YARNUI.acl</name>          <value>Tom;*;*</value>      </param></provider>
    警告 Knox会开放相应服务的REST API,用户可以通过各服务的REST API操作服务,如:HDFS的文件添加、删除等。出于安全原因,请务必确保在ECS控制台开启安全组Knox端口8443时,授权对象必须是您的一个有效IP地址段,禁止使用0.0.0.0/0;请勿使用Knox安装目录下的LDAP用户名和密码作为Knox的访问用户。

网站被DDOS攻击怎么办
cdn可以抵御ddos吗
猜你喜欢