35+ services. Every enabled region. Read-only, no agents. Weighted risk scoring - and a signed report your board, and NCSA, can actually read.
chmod +x aws-security-enabled-audit.sh ./aws-security-enabled-audit.sh
Paste one command into AWS CloudShell. Only get/describe/list calls - nothing is changed.
Drop the generated .md/.txt into Cloud Health. No credentials ever leave your account.
Each gap is scored in context - region sensitivity, blast radius, exploitability - not a flat checklist.
A timestamped, Ed25519-signed PDF with a prioritised remediation plan mapped to Qatar NIA v2.1.
Status distinguishes Enabled / Partial / Disabled / No permission / Unavailable - because an AccessDenied is not the same as "switched off."
| Service | Scope | Status | Risk | Finding | Recommendation | Effort |
|---|
#!/usr/bin/env bash
set -uo pipefail
export AWS_PAGER=""
# AWS Security Baseline - READ-ONLY inventory
# ------------------------------------------------------------
# Purpose:
# Show which key AWS security/visibility services are
# already enabled. This script makes LIST/DESCRIBE/GET
# calls only. It DOES NOT enable, disable, create,
# update, or delete anything.
#
# Default:
# Scan every AWS Region that is opted-in or enabled.
#
# Optional:
# SCAN_ALL_REGIONS=0 REGION=eu-west-1 ./aws-...sh
#
# Output:
# ~/aws-security-enabled-audit-YYYYmmdd-HHMMSS.md
# ~/aws-security-enabled-audit-YYYYmmdd-HHMMSS.txt
SCAN_ALL_REGIONS="${SCAN_ALL_REGIONS:-1}"
REGION="${REGION:-${AWS_REGION:-eu-west-1}}"
TS="$(date -u +%Y%m%d-%H%M%S)"
REPORT_MD="$HOME/aws-security-enabled-audit-${TS}.md"
REPORT_TXT="$HOME/aws-security-enabled-audit-${TS}.txt"
have() { command -v "$1" >/dev/null 2>&1; }
if ! have aws; then
echo "ERROR: AWS CLI is required."; exit 1
fi
ACCOUNT_ID="$(aws sts get-caller-identity \
--query Account --output text 2>/dev/null)"
# ... 18 service checks across all regions follow ...
Every finding is hashed, chained, and signed with an offline-verifiable Ed25519 key. The report proves exactly what your posture was at 14:22 AST on 6 Oct 2026 - and your next scan proves the remediation.
For a national regulator that is the point: defensible evidence, before-and-after proof, and verification that does not depend on trusting Spark's servers. Maps directly to NIA v2.1 logging and assurance controls.
Download sample report (PDF)→