(可选)配置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
- 登录OmniShuffle Shuffle加速组件集群服务器,修改每台服务器的“/etc/hosts”文件。在“hosts”文件中添加KDC服务器的“地址 主机名”映射关系。
IPaddress1 server
- 登入KDC服务器节点。
- 在ZooKeeper运行用户与提交Spark任务用户的“${HOME}/.bashrc”中新增OCK_HOME、OCK_VERSION、OCK_BINARY_TYPE环境变量。
- 打开文件。
vi ~/.bashrc
- 按“i”进入编辑模式,在文件中添加以下内容。
export OCK_HOME=/home/ockadmin/opt/ock export OCK_VERSION=24.0.0 export OCK_BINARY_TYPE=linux-aarch64
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 用户需自行生成KDC所需的数字证书文件、白名单whitelist文件、kmc密钥文件。将文件拷贝至各节点对应用户的指定位置。
- 生成文件放置于“${OCK_HOME}/security/”目录下。
- 修改目录/文件属主为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
- 提交Spark任务用户生成的文件位于用户“${SPARK_HOME}/huawei/ock/security”目录下。
- 修改目录/文件属主为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。
- ZooKeeper用户生成文件位于用户“${ZOOKEEPER_HOME}/huawei/ock/security”目录下。
- 修改目录/文件属主为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。