TMAegisBeta
More rules for yugabytedb

YugabyteDB

TMA-YUGABYTEDB-7.2

Ensure TLS is enabled and configured correctly: server to server

HighLevel 1Automatedyugabytedb

Description

YugabyteDB clusters can be configured to use server-to-server encryption to protect data in transit between YugabyteDB servers. 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. 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 use_node_to_node_encryption=true and allow_insecure_connections=false (the flags the benchmark remediation sets); check the YB-Master web UI (port 7000) the same way. The benchmark audit also expects SHOW ssl to return on.

How it is checked

Audit method: Shell command

shell
out=$(curl -sf "http://${YB_TSERVER_WEB:-127.0.0.1:9000}/varz?raw=1" 2>/dev/null) || exit 1; if printf '%s\n' "$out" | grep -qE -- '--use_node_to_node_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

Create node certificates, then start every YB-Master and YB-TServer with --use_node_to_node_encryption=true --allow_insecure_connections=false --certs_dir=<dir> and perform a rolling restart.

Properties

Operating systems
Any
Tags
yugabytedbtlsencryption
Reference
CIS YugabyteDB Benchmark v2.0.0 - 7.2 Ensure TLS is enabled and configured correctly: server to server

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target yugabytedb