TMA-YUGABYTEDB-7.3
Ensure TLS is enabled and configured correctly: client to server
Description
YugabyteDB clusters can be configured to use client-to-server encryption to protect data in transit between YugabyteDB servers and clients, tools, and APIs. When enabled, Transport Layer Security (TLS), the successor to the deprecated Secure Sockets Layer (SSL), is used to ensure data protection for YSQL and YCQL only. Note that there is no planned support for YEDIS. Runs ysqlsh (add the YugabyteDB bin directory to PATH) against PGHOST/PGPORT (default 127.0.0.1:5433) as PGUSER (default yugabyte); supply the password through PGPASSWORD or ~/.pgpass. Reads the YB-TServer GFlags from the web UI at ${YB_TSERVER_WEB:-127.0.0.1:9000}/varz; run it against every TServer. Passes when YSQL SHOW ssl returns on and the TServer GFlags (from ${YB_TSERVER_WEB:-127.0.0.1:9000}/varz) have use_client_to_server_encryption=true and allow_insecure_connections=false.
How it is checked
Audit method: SQL query
ssl=$(ysqlsh -h "${PGHOST:-127.0.0.1}" -p "${PGPORT:-5433}" -U "${PGUSER:-yugabyte}" -d "${PGDATABASE:-yugabyte}" -tAc "SHOW ssl" 2>/dev/null) || exit 1; out=$(curl -sf "http://${YB_TSERVER_WEB:-127.0.0.1:9000}/varz?raw=1" 2>/dev/null) || exit 1; if [ "$ssl" = on ] && printf '%s\n' "$out" | grep -qE -- '--use_client_to_server_encryption=true([^[:alnum:]_]|$)' && printf '%s\n' "$out" | grep -qE -- '--allow_insecure_connections=false([^[:alnum:]_]|$)'; then echo compliant; else echo noncompliant; fi- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Start every YB-TServer with --use_client_to_server_encryption=true --allow_insecure_connections=false --certs_for_client_dir=<dir> (rolling restart) and configure clients with sslmode=verify-full / YCQL TLS.
Properties
- Operating systems
- Any
- Tags
- yugabytedbtlsencryption
- Reference
- CIS YugabyteDB Benchmark v2.0.0 - 7.3 Ensure TLS is enabled and configured correctly: client to server
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target yugabytedb