鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

(可选)配置Keytab和Whitelist

Keytab和Whitelist都是用于增强系统安全性的机制。Keytab文件用于简化Kerberos认证过程,提高系统的安全性,而Whitelist用于限制特定IP地址或主机的访问,增强访问控制。配置Keytab和Whitelist都可以提高系统的安全性和可靠性。

注意事项

  • 配置Keytab和Whitelist之前,请准备KDC服务器,建议为第三方服务器(非OmniShuffle Shuffle加速组件集群服务器)。
  • 出于安全考虑,建议将各节点运维账户umask修改为077及以上。
  • 如果在当前环境中以运维账户执行过kmc_tool相关操作,需要在集群环境中删除运维账户kmc信号量。
    • 查询信号量
      1
      ipcs -s -t
      
    • 删除信号量
      1
      ipcrm -S 0x20161316
      

配置Keytab和Whitelist

  1. 登录OmniShuffle Shuffle加速组件集群服务器,修改每台服务器的“/etc/hosts”文件。在“hosts”文件中添加KDC服务器的“地址 主机名”映射关系。
    IPaddress1 server
  2. 登入KDC服务器节点。
  3. 在ZooKeeper运行用户与提交Spark任务用户的“${HOME}/.bashrc”中新增OCK_HOME、OCK_VERSION、OCK_BINARY_TYPE环境变量。
    1. 打开文件。
      vi ~/.bashrc
    2. “i”进入编辑模式,在文件中添加以下内容。
      export OCK_HOME=/home/ockadmin/opt/ock
      export OCK_VERSION=24.0.0
      export OCK_BINARY_TYPE=linux-aarch64
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  4. 用户需自行生成KDC所需的数字证书文件、白名单whitelist文件、kmc密钥文件。将文件拷贝至各节点对应用户的指定位置。
    1. 生成文件放置于“${OCK_HOME}/security/”目录下。
    2. 修改目录/文件属主为ockadmin:ockadmin,目录权限为700,文件权限为600。
      ├── authorization
      │   └── whitelist_en
      ├── kdc
      │   └── krb5-server_en.keytab
      ├── pmt
      │   ├── master
      │   │   └── ksfa
      │   └── standby
      │       └── ksfb
      └── tls
      ├── client.crt.pem
      ├── client.pem
      ├── server
      │   ├── ca.cert.pem
      │   ├── server.cert.pem
      │   ├── server.keypass.key
      │   └── server.private.key.pem
      └── server.crt.pem

      相关配置如表1 配置信息所示。

      表1 配置信息

      用户

      文件

      配置项

      示例路径

      ockadmin

      whitelist_en

      ock.ucache.rpc.author.file.path

      /home/ockadmin/opt/ock/security/authorization/whitelist_en

      ockadmin

      krb5-server_en.keytab

      ock.ucache.rpc.auth.kerb.server.keytab

      /home/ockadmin/opt/ock/security/kdc/krb5-server_en.keytab

      ockadmin

      krb5-server_en.keytab

      ock.zookeeper.security.client.keytab

      /home/ockadmin/opt/ock/security/kdc/krb5-server_en.keytab

      ockadmin

      ksfa

      ock.ucache.kmc.ksf.primary.path

      /home/ockadmin/opt/ock/security/pmt/master/ksfa

      ockadmin

      ksfb

      ock.ucache.kmc.ksf.standby.path

      /home/ockadmin/opt/ock/security/pmt/standby/ksfb

      ockadmin

      client.crt.pem

      ock.zookeeper.security.certs

      /home/ockadmin/opt/ock/security/tls/client.crt.pem

      ockadmin

      client.pem

      ock.zookeeper.security.certs

      /home/ockadmin/opt/ock/security/tls/client.pem

      ockadmin

      ca.cert.pem

      ock.ucache.rpc.tls.ca.cert.path

      /home/ockadmin/opt/ock/security/tls/server/ca.cert.pem

      ockadmin

      server.cert.pem

      ock.ucache.rpc.tls.cert.path

      /home/ockadmin/opt/ock/security/tls/server/server.cert.pem

      ockadmin

      server.keypass.key

      ock.ucache.rpc.tls.key.pass.path

      /home/ockadmin/opt/ock/security/tls/server/server.keypass.key

      ockadmin

      server.private.key.pem

      ock.ucache.rpc.tls.key.path

      /home/ockadmin/opt/ock/security/tls/server/server.private.key.pem

      ockadmin

      server.crt.pem

      ock.zookeeper.security.certs

      /home/ockadmin/opt/ock/security/tls/server.crt.pem

    3. 提交Spark任务用户生成的文件位于用户“${SPARK_HOME}/huawei/ock/security”目录下。
    4. 修改目录/文件属主为Sparkadmin:ockadmin,目录权限为700,文件权限为600。
      ├── authorization
      │   └── whitelist_en
      ├── kdc
      │   ├── krb5-client_en.keytab
      │   └── krb5-server_en.keytab
      ├── pmt
      │   ├── master
      │   │   └── ksfa
      │   └── standby
      │       └── ksfb
      │
      └── tls
      ├── ca.cert.pem
      ├── client.crt.pem
      ├── client.pem
      ├── server.cert.pem
      ├── server.crt.pem
      ├── server.keypass.key
      └── server.private.key.pem

      相关配置如表2 配置信息所示。

      ca.cert.pem、client.crt.pem、client.pem3个证书在Spark Driver和Spark Executor分离部署,仅需要生成在Spark Driver节点上,Spark Executor节点可以不生成。

      表2 配置信息

      用户

      文件

      配置项

      示例路径

      Sparkadmin

      whitelist_en

      ock.ucache.rpc.author.driver.file.path

      /home/Sparkadmin/huawei/ock/security/authorization/whitelist_en

      Sparkadmin

      krb5-client_en.keytab

      ock.ucache.rpc.auth.kerb.client.keytab

      /home/Sparkadmin/huawei/ock/security/kdc/krb5-client_en.keytab

      Sparkadmin

      krb5-client_en.keytab

      ock.zookeeper.sdk.security.client.keytab

      /home/Sparkadmin/huawei/ock/security/kdc/krb5-client_en.keytab

      Sparkadmin

      krb5-server_en.keytab

      ock.ucache.rpc.auth.driver.kerb.server.keytab

      /home/Sparkadmin/huawei/ock/security/kdc/krb5-server_en.keytab

      Sparkadmin

      ksfa

      ock.ucache.sdk.kmc.ksf.primary.path

      /home/Sparkadmin/huawei/ock/security/pmt/master/ksfa

      Sparkadmin

      ksfb

      ock.ucache.sdk.kmc.ksf.standby.path

      /home/Sparkadmin/huawei/ock/security/pmt/standby/ksfb

      Sparkadmin

      client.crt.pem

      ock.zookeeper.sdk.security.certs

      /home/Sparkadmin/huawei/ock/security/tls/client.crt.pem

      Sparkadmin

      client.pem

      ock.zookeeper.sdk.security.certs

      /home/Sparkadmin/huawei/ock/security/tls/client.pem

      Sparkadmin

      ca.cert.pem

      ock.ucache.rpc.tls.sdk.ca.cert.path

      /home/Sparkadmin/huawei/ock/security/tls/ca.cert.pem

      Sparkadmin

      server.cert.pem

      ock.ucache.rpc.tls.driver.cert.path

      /home/Sparkadmin/huawei/ock/security/tls/server.cert.pem

      Sparkadmin

      server.keypass.key

      ock.ucache.rpc.tls.driver.key.pass.path

      /home/Sparkadmin/huawei/ock/security/tls/server.keypass.key

      Sparkadmin

      server.private.key.pem

      ock.ucache.rpc.tls.driver.key.path

      /home/Sparkadmin/huawei/ock/security/tls/server.private.key.pem

      Sparkadmin

      server.crt.pem

      ock.zookeeper.sdk.security.certs

      home/Sparkadmin/huawei/ock/security/tls/server.crt.pem

      目录说明:

      • authorization目录下的文件是鉴权相关文件。
      • kdc目录下的文件是安全认证相关文件。
      • tls目录下的文件是tls安全传输通信的相关文件。
      • pmt目录下的文件是对证书文件进行加密的加密密钥。

      authorization、kdc、tls目录下的文件需要调用kmc_tools工具使用pmt目录下的加密密钥对文件进行加密,具体加密使用方法见章节4.2

    5. ZooKeeper用户生成文件位于用户“${ZOOKEEPER_HOME}/huawei/ock/security”目录下。
    6. 修改目录/文件属主为Zookeeperadmin:ockadmin,目录权限为700,文件权限为600。
      ├── kdc
      │   └── zookeeper_en.keytab
      ├── pmt
      │   ├── master
      │   │   └── ksfa
      │   └── standby
      │       └── ksfb

      相关配置如表3 配置信息所示。

      表3 配置信息

      用户

      文件

      配置项

      示例路径

      Zookeeperadmin

      zookeeper_en.keytab

      keytab

      /home/Zookeeperadmin/huawei/ock/security/kdc/zookeeper_en.keytab

      Zookeeperadmin

      ksfa

      kmc.ksf.primary.path

      /home/Zookeeperadmin/huawei/ock/security/pmt/master/ksfa

      Zookeeperadmin

      ksfb

      kmc.ksf.standby.path

      /home/Zookeeperadmin/huawei/ock/security/pmt/standby/ksfb

      Zookeeper的具体配置,请参见(可选)配置ZooKeeper