Alibaba Cloud
TMA-ALIBABA-KMS-ROTATION
Ensure automatic rotation is enabled for customer created symmetric KMS keys
Description
Automatic rotation limits the amount of data protected by one key version. In the profile's region, every Enabled symmetric (Aliyun_AES_256 / Aliyun_SM4) key created by the account must have AutomaticRotation Enabled; service-created default keys are skipped. 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 grep/sed/awk. A missing CLI or credential fails the check.
How it is checked
Audit method: Shell command
out=$(aliyun kms ListKeys --PageSize 100 2>/dev/null) || exit 1
keys=$(printf '%s\n' "$out" | sed -n 's/.*"KeyId"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p')
get() { printf '%s\n' "$m" | sed -n "s/.*\"$1\"[[:space:]]*:[[:space:]]*\"\([^\"]*\)\".*/\1/p" | head -n 1; }
bad=0
for k in $keys; do
m=$(aliyun kms DescribeKey --KeyId "$k" 2>/dev/null) || exit 1
case "$(get KeySpec)" in ''|Aliyun_AES_256|Aliyun_SM4) ;; *) continue ;; esac
[ "$(get KeyState)" = Enabled ] || continue
case "$(get Creator)" in ''|*[!0-9]*) continue ;; esac
[ "$(get AutomaticRotation)" = Enabled ] || { echo "rotation off: $k"; bad=1; }
done
[ "$bad" -eq 0 ] && echo compliant- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
aliyun kms UpdateRotationPolicy --KeyId <key-id> --EnableAutomaticRotation true --RotationInterval 31536000s (or a shorter interval) for each listed key.
Properties
- Operating systems
- Any
- Tags
- alibabakms
- Reference
- CIS Alibaba Cloud Foundation Benchmark - Logging and Monitoring - KMS key rotation (verify section number for your release)
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target alibaba --level 2