Most of the 93 controls are paperwork plus a sensible process. These eight take real engineering time, and each is where auditors spend the longest. Links go to the control articles with full implementation notes.
You need a process that collects, analyses and acts on threat information, not a feed subscription. AWS: enable Amazon GuardDuty organisation-wide through a delegated administrator account in every region you use, route findings to Security Hub, and subscribe to AWS security bulletins. Azure: Microsoft Defender for Cloud plus threat analytics and intel profiles in the Defender portal for named-actor context (the standalone Microsoft Defender Threat Intelligence product reached end of life on 1 August 2026 and its capabilities now sit in the Defender portal). GCP: Security Command Center with Event Threat Detection; Google Threat Intelligence for the strategic layer. Done looks like: a documented list of sources, a monthly review note, and at least one ticket showing an advisory that changed a configuration or a patch priority.
Auditors want a policy for acquiring, using, managing and exiting cloud services, a register of the services in use, and evidence you understand the shared-responsibility split. Download the providers' own ISO 27001, 27017 and 27018 certificates and SOC reports from AWS Artifact, the Microsoft Service Trust Portal and Google Cloud's Compliance Reports Manager, and file them against the supplier record. Enforce the boundary with organisation-level guardrails: AWS Organizations service control policies, Azure management groups with Azure Policy, GCP folders with Organization Policy constraints. Done looks like: each cloud service has an owner, a data classification, assurance evidence with a review date, and an exit plan.
Start from a business impact analysis that sets RTO and RPO per service, then prove you can meet them. AWS: AWS Backup with cross-account and cross-region vaults, multi-AZ data stores, AWS Elastic Disaster Recovery for anything stateful on EC2. Azure: Azure Backup with geo-redundant vaults, Azure Site Recovery, zone-redundant SKUs. GCP: Backup and DR Service, regional or multi-regional storage, Cloud SQL high availability. Done looks like: an annual restore test record with measured recovery time against the target, and backups covered by A.8.13 that are immutable and tested from a different account.
The requirement is coverage, timeliness and accountability. AWS: Amazon Inspector for EC2, ECR images, Lambda functions and, since June 2025, connected code repositories; Systems Manager Patch Manager with patch baselines and compliance reporting. Azure: Microsoft Defender Vulnerability Management for VMs and container registries, Azure Update Manager for patch compliance. GCP: Security Command Center vulnerability findings, Artifact Analysis for images, VM Manager OS patch management. Done looks like: written remediation SLAs by severity, scanners covering every in-scope asset class, a monthly report showing SLA adherence, and documented risk acceptance for anything overdue.
Define baselines, enforce them, detect drift. Keep infrastructure in code and treat the repository as the baseline. AWS: AWS Config rules and conformance packs, Security Hub CSPM standards (Foundational Security Best Practices, CIS), service control policies for the things that must never happen. Azure: Azure Policy in deny and deployIfNotExists modes, Machine Configuration for guest settings, and the ISO/IEC 27001:2022 standard in Defender for Cloud, which can also assess connected AWS and GCP accounts. GCP: Organization Policy constraints, Security Health Analytics in Security Command Center (whose detectors map to ISO 27001:2022), OS Config for VM baselines. Done looks like: documented baselines per platform, drift alerts routed to a queue someone owns, and an exceptions register.
Logs must exist for every in-scope system, be protected from tampering, be retained for a defined period and actually be looked at. AWS: an organisation trail in CloudTrail delivered to a dedicated log-archive account, S3 Object Lock and log-file validation on, CloudWatch alarms for the events that matter, GuardDuty for detection, Security Lake if you want OCSF-normalised retention. Azure: activity log and resource diagnostic settings sent to a central Log Analytics workspace, immutable storage for the archive tier, Microsoft Sentinel for analytics rules. GCP: Cloud Audit Logs with Data Access logs switched on (they are off by default for most services), an organisation-level Log Router sink into a locked Cloud Logging bucket, Security Command Center for detections. Done looks like: a log-source inventory with retention periods, evidence that admins cannot delete logs, alert rules with runbooks, and a weekly review record with at least one investigated alert.
A cryptography policy that names approved algorithms and protocols, plus key management across the whole lifecycle. AWS: customer-managed KMS keys with rotation and restrictive key policies, encryption enforced on S3, EBS and RDS through Config rules, AWS Certificate Manager for TLS, CloudHSM only if a contract demands it. Azure: Key Vault or Managed HSM with customer-managed keys, minimum TLS 1.2 policies on storage and app services, encryption at host for VM disks (Azure Disk Encryption retires on 15 September 2028). GCP: Cloud KMS with customer-managed encryption keys on storage and databases, Cloud HSM for regulated workloads, Certificate Authority Service for internal PKI. Done looks like: a key inventory with owners and rotation evidence, and secret scanning in CI proving no plaintext credentials in repositories (see A.5.17).
These two are audited together because the pull request is the change record. Write a short secure-coding standard, enforce branch protection with mandatory review, and run SAST, dependency and secret scanning in CI. AWS: Amazon Inspector code security for GitHub and GitLab repositories (Amazon CodeGuru Reviewer has not accepted new repository associations since 7 November 2025, so do not build on it). Azure: GitHub Advanced Security or Defender for Cloud DevOps security. GCP: Cloud Build with Artifact Analysis and Binary Authorization so only scanned, signed images deploy. Separate development, test and production accounts or subscriptions (A.8.31) and write an emergency change path with after-the-fact review. Done looks like: any sampled production change traces to a pull request, a pipeline run, a reviewer and a deployment record.