Alibaba Cloud
TMA-ALIBABA-6.9
Ensure server parameter 'log_duration is set to 'ON' for PostgreSQL Database Server
Description
Enable log_duration on PostgreSQL Servers. Enabling log_duration helps PostgreSQL Database to Logs the duration of each completed SQL statement which in turn generates query and error logs. For every PostgreSQL instance the running parameter log_duration must be on. Iterates every RDS region and instance (DescribeDBInstances). Read-only aliyun CLI calls; credentials and default region come from the CLI's normal profile (aliyun configure, ~/.aliyun/config.json or ALIBABA_CLOUD_* environment variables). JSON output is parsed with sed/awk. A missing CLI or credential fails the check.
How it is checked
Audit method: Shell command
regs=$(aliyun rds DescribeRegions 2>/dev/null) || exit 1
regions=$(printf '%s\n' "$regs" | sed -n 's/.*"RegionId"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | sort -u)
[ -n "$regions" ] || exit 1
bad=0
for r in $regions; do
page=1
while :; do
out=$(aliyun rds DescribeDBInstances --RegionId "$r" --Engine PostgreSQL --PageSize 100 --PageNumber "$page" 2>/dev/null) || exit 1
ids=$(printf '%s\n' "$out" | sed -n 's/.*"DBInstanceId"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | sort -u)
[ -n "$ids" ] || break
for i in $ids; do
p=$(aliyun rds DescribeParameters --DBInstanceId "$i" 2>/dev/null) || exit 1
v=$(printf '%s\n' "$p" | awk '
/\{/ { nm = ""; vl = "" }
/"ParameterName"/ { nm = $0; sub(/^[^:]*:[[:space:]]*"/, "", nm); sub(/".*/, "", nm) }
/"ParameterValue"/ { vl = $0; sub(/^[^:]*:[[:space:]]*"/, "", vl); sub(/".*/, "", vl) }
/\}/ { if (nm == "log_duration") { print tolower(vl); exit } }')
[ "$v" = on ] || { echo "log_duration=${v:-unset}: $r $i"; bad=1; }
done
set -- $ids
[ "$#" -lt 100 ] && break
page=$((page + 1))
done
done
[ "$bad" -eq 0 ] && echo compliant- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
aliyun rds ModifyParameter --DBInstanceId <id> --Parameters '{"log_duration":"on"}' (RDS console > Parameters), then confirm the running value.
Properties
- Operating systems
- Any
- Tags
- alibabards
- Reference
- CIS Alibaba Cloud Foundation Benchmark v2.0.1 - 6.9 Ensure server parameter 'log_duration is set to 'ON' for PostgreSQL Database Server
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target alibaba