数据通道 TLS

节点在查询等操作期间使用数据通道交换表数据。

节点间通信使用以下通道。在启用其他组件之前,必须按以下顺序启用其关联的组件和参数:

  1. 控制通道,以交换计划信息并分发调用。它是使用 Spread 实现的。有关详细信息,请访问 spread.org

  2. 数据通道,以交换表数据。它是使用 TCP 实现的。

配置数据通道 TLS

此过程在 Vertica 节点之间配置 TLS,并使用预定义的 TLS 配置 data_channel。要使用自定义 TLS 配置,请参阅 TLS 配置

  1. 在控制通道上启用 TLS

  2. 生成或导入以下项:

    • CA(证书颁发机构)证书。

      例如,要创建自签名 CA 证书,请生成密钥并使用该密钥对 CA 证书进行签名:

      => CREATE KEY SSCA_key TYPE 'RSA' LENGTH 2048;
      
      => CREATE CA CERTIFICATE SSCA_cert
      SUBJECT '/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/CN=Vertica Root CA'
      VALID FOR 3650
      EXTENSIONS 'nsComment' = 'Self-signed root CA cert'
      KEY SSCA_key;
      

    • 节点间 TLS 证书的私钥。

      例如,使用 CREATE KEY 生成密钥:

      => CREATE KEY internode_key TYPE 'RSA' LENGTH 2048;
      
    • **节点间 TLS 证书。**这必须有一个以 CA 结尾的完整链,且必须是 x509v1 证书或使用 extendedKeyUsage 扩展 serverAuthclientAuth

      例如,要生成 internode_cert 并使用 SSCA_cert 对其进行签名:

      => CREATE CERTIFICATE internode_cert
      SUBJECT '/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/CN=data channel'
      SIGNED BY SSCA_cert
      EXTENSIONS 'nsComment' = 'Vertica internode cert', 'extendedKeyUsage' = 'serverAuth, clientAuth'
      KEY internode_key;
      
  3. data_channel TLS 配置中设置证书。对于数据通道 TLS,TLSMODE 自动设置为 VERIFY_CA,且不应更改。

    => ALTER TLS CONFIGURATION data_channel CERTIFICATE internode_cert;
    
  4. 验证 InternodeTLSConfig 参数是否正在使用 TLS 配置:

    => SHOW CURRENT InternodeTLSConfig;
      level  |        name        |   setting
    ---------+--------------------+--------------
     DEFAULT | InternodeTLSConfig | data_channel
    (1 row)
    
  5. 验证是否已使用 SECURITY_CONFIG_CHECK('NETWORK') 启用数据通道加密:

    => SELECT SECURITY_CONFIG_CHECK('NETWORK');
       SECURITY_CONFIG_CHECK
    ---------------------------
     Spread security details:
    * EncryptSpreadComm = [vertica]
    Spread encryption is enabled
    It is now safe to set/change other security knobs
    
    Data Channel security details:
     TLS Configuration 'data_channel' TLSMODE is VERIFY_CA
    TLS on the data channel is enabled
    

特权

超级用户

限制

  • 通常,您应在配置 data_channel 之前设置 EncryptSpreadComm。

  • 对 data_channel 的更改将立即生效,且中断所有正在进行的查询,以更新节点之间的连接。

另请参阅