作者:櫰木
1、背景
由于trino 默认没有开启用户认证体系,需要ldap用户进行认证。开启tls和ldap用户认证,提高安全性。
2、配置
前置条件。
trino 集群已经部署完成
ldap 服务
openjdk 版本大于11.0.17
生成证书
keytool -genkeypair -validity 36500 -ext SAN=IP:172.16.104.226,DNS:hd1.dtstack.com -alias trino -keypass admin@123 -storepass admin@123 -keyalg RSA -dname CN=hd1.dtstack.com,OU=,O=,L=,ST=,C= -keystore trino.jks
将证书复制每个节点的到trino目录
配置每个节点配置以下内容
config.properties
http-server.https.enabled=true
http-server.https.port=8443
http-server.https.keystore.path=/opt/trino/etc/trino.jks
http-server.https.keystore.key=admin@123
internal-communication.shared-secret=abc123
internal-communication.https.required=true
http-server.https.secure-random-algorithm=SHA1PRNG
http-server.authentication.allow-insecure-over-http=true
配置认证配置文件 (本次使用的是openldap)
etc/password-authenticator.properties
password-authenticator.name=ldap
ldap.url=ldap://hd.dtstack.com:389
#ldap.ssl.truststore.path=/path/to/ldap_server.pem
#ldap.user-bind-pattern=
#ldap.user-bind-pattern= U S E R @ D T S T A C K . C O M l d a p . u s e r − b a s e − d n = c n = a c c o u n t s , d c = d t s t a c k , d c = c o m l d a p . u s e r − b i n d − p a t t e r n = u i d = {USER}@DTSTACK.COM ldap.user-base-dn=cn=accounts,dc=dtstack,dc=com ldap.user-bind-pattern=uid= USER@DTSTACK.COMldap.user−base−dn=cn=accounts,dc=dtstack,dc=comldap.user−bind−pattern=uid={USER},cn=users,cn=accounts,dc=dtstack,dc=com
#ldap.bind-dn=uid=admin,cn=users,cn=accounts,dc=dtstack,dc=com
#ldap.bind-password=admin123
ldap.allow-insecure=true
重启对应服务
3、验证
通过https登录访问coordinator节点
使用trinocli进行测试
trino-cli --server https://hd1.dtstack.com:8443 --keystore-path /opt/trino/etc/trino.jks --keystore-password admin@123 --catalog hive --user test --password
更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw