TMAegis
More rules for azure

TMA-AZURE-SQL-TDE

Ensure Transparent Data Encryption is enabled on every Azure SQL database

HighLevel 1Automatedazure

Description

TDE encrypts database files, backups and logs at rest. Every user database on every logical SQL server must have TDE state Enabled. Read-only Azure CLI calls against the current subscription; credentials come from the CLI's normal sign-in (az login, a service principal or managed identity; select the subscription with az account set). A missing CLI or session fails the check.

How it is checked

Audit method: Shell command

shell
srv=$(az sql server list --query '[].[name,resourceGroup]' -o tsv 2>/dev/null) || exit 1
bad=0
while read -r n g; do
  [ -n "$n" ] || continue
  dbs=$(az sql db list --server "$n" --resource-group "$g" --query '[?name!=`"master"`].name' -o tsv 2>/dev/null </dev/null) || exit 1
  for d in $dbs; do
    s=$(az sql db tde show --server "$n" --resource-group "$g" --database "$d" --query state -o tsv 2>/dev/null </dev/null) || exit 1
    [ "$s" = Enabled ] || { echo "TDE off: $n/$d"; bad=1; }
  done
done <<EOF
$srv
EOF
[ "$bad" -eq 0 ] && echo compliant
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

az sql db tde set --server <server> --resource-group <rg> --database <db> --status Enabled (optionally with a customer managed TDE protector).

Properties

Operating systems
Any
Tags
azuredatabase
Reference
CIS Microsoft Azure Foundations Benchmark v6.0.0 - Database Services - SQL Database transparent data encryption (verify section number for your release)

Check this host

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

shell
tmaegis scan --target azure