gpfdists:// 协议
gpfdists://
协议是gpfdist://
协议
的一个安全版本。
要使用它,用户需要以--ssl
选项运行gpfdist
工具。
当在一个URI中指定gpfdists://
协议时,它启用文件服务器和Greenplum数据库的加密通信以及安全鉴定以保护其不受窃听和中间人等攻击。
gpfdists
以客户端/服务器形式实现了SSL安全性,并且有下列属性和限制:* 客户端证书是必需的。
- 不支持多语言证书。
- 不支持证书撤销列表(CRL)。
TLSv1
协议被用于TLS_RSA_WITH_AES_128_CBC_SHA
加密算法。- SSL参数不能被更改。
- 支持SSL重新协商。
- SSL忽略被设置为
false
的主机失配参数。 - 对于
gpfdist
文件服务器(server.key)和Greenplum数据库(client.key)不支持包含密码的私钥。 - 为操作系统发行合适的证书是用户的责任。通常,支持转换https://www.sslshopper.com/ssl-converter.html中所示的证书。
Note:
一个用
gpfdist --ssl
选项启动的服务器只能与gpfdists
协议通讯。一个不带--ssl
选项启动的gpfdists
服务器只能与gpfdists
协议通讯。 - 客户端证书文件是client.crt
- 客户端私钥文件是client.key
使用下列方法之一来调用gpfdists
协议。
- 用
--ssl
选项运行gpfdist
, 然后在CREATE EXTERNAL TABLE
语句的LOCATION
子句中使用gpfdists
协议。- 使用一个
SSL
选项设置为真的gpload
YAML控制文件。 运行gpload
,它会用--ssl
选项启动gpfdist
服务器, 然后使用gpfdists
协议。
- 使用一个
使用gpfdists
要求下列客户端证书存在于每个Segment的$PGDATA/gpfdists
目录中。
- 客户端证书文件是
client.crt
- 客户端私钥文件是
client.key
- 受信证书发行机构
root.crt
一个装载数据到具有安全性的外部表中的例子可见Example 3—Multiple gpfdists instances。
服务器配置参数[verify_gpfdists_cert](../../ref_guide/config_params/guc-list.html#verify_gpfdists_cert)
控制当Greenplum数据库与gpfdist
实用程序通信以从外部数据源读取数据或将数据写入外部数据源时是否启用SSL证书认证。
在测试Greenplum数据库外部表与提供外部数据的gpfdist
实用程序之间的通信时,
可以将参数值设置为false
,以禁用身份验证。
如果值为false
,这些SSL异常将被忽略:
gpfdist
使用的自签名SSL证书不被Greenplum数据库信任。- SSL证书中包含的主机名与运行
gpfdist
的主机名不匹配。
- SSL证书中包含的主机名与运行
Warning: 禁用SSL证书身份验证会暴露安全风险,因为不会去验证gpfdists
SSL证书。
Parent topic: 定义外部表