Cloud Security Checklist
A practical checklist for securing cloud environments across AWS, Azure, and Google Cloud Platform (GCP).
Purpose
This checklist provides a structured approach to:
- Pre-migration security review
- Cloud configuration baselines
- Ongoing security monitoring
- Compliance validation
Use this as a starting point and tailor to your organisation's specific risk profile and cloud usage.
Shared Responsibility Model
Understanding Cloud Responsibilities
| Layer | AWS | Azure | GCP | Customer |
|---|---|---|---|---|
| Data | - | - | - | Customer |
| Applications | - | - | - | Customer |
| Access & Identity | - | - | - | Shared |
| Operating System | Varies | Varies | Varies | Shared |
| Network Controls | Varies | Varies | Varies | Shared |
| Compute Infrastructure | Provider | Provider | Provider | - |
| Physical Security | Provider | Provider | Provider | - |
Key Principle: You are always responsible for your data, access controls, and proper configuration of cloud services.
Pre-Migration Security Review
Business & Compliance
- Data Classification: Identify data sensitivity levels being migrated
- Regulatory Requirements: Confirm cloud provider compliance (GDPR, HIPAA, PCI DSS, etc.)
- Data Residency: Verify data storage locations meet legal requirements
- Contractual Review: Review cloud provider SLA, DPA, and BAA (if applicable)
- Risk Assessment: Conduct cloud-specific risk assessment
- Shared Responsibility: Document understanding of shared responsibility model
Architecture & Design
- Well-Architected Review: Use cloud provider's well-architected framework
- Network Architecture: Design VPCs/VNets with proper segmentation
- Encryption Strategy: Define encryption at rest and in transit requirements
- Identity Strategy: Design IAM model (RBAC, least privilege)
- Logging Strategy: Define which logs to collect and retention periods
- Backup & DR Strategy: Define RPO/RTO and backup approach
Identity & Access Management (IAM)
General IAM Controls
-
Root Account Protection (AWS) / Global Administrator (Azure) / Owner (GCP):
- Enable MFA on root/admin accounts
- Do not use for day-to-day operations
- Rotate credentials regularly
- Monitor root account usage
-
Least Privilege:
- No overly permissive policies (e.g.,
*:*on*) - Use role-based access control (RBAC)
- Regularly review and remove unused permissions
- No overly permissive policies (e.g.,
-
MFA Enforcement:
- Enforce MFA for all human users
- Enforce MFA for privileged operations
- Use hardware tokens for highly privileged accounts
-
Service Accounts / Service Principals:
- Use service accounts for applications, not personal accounts
- Rotate service account keys regularly
- Limit service account permissions to minimum required
-
Federation & SSO:
- Integrate with corporate identity provider (Entra ID, Okta, Google Workspace)
- Use SAML 2.0 or OIDC federation
- Centralise user management
-
Access Reviews:
- Conduct quarterly access reviews
- Remove accounts for leavers immediately
- Audit privileged access logs
AWS-Specific
- IAM Policies: Use managed policies over inline policies
- IAM Roles: Use roles for EC2, Lambda, and cross-account access
- IAM Access Analyzer: Enable and review findings
- AWS Organizations: Use for multi-account management
- Service Control Policies (SCPs): Restrict actions at organisation level
Azure-Specific
- Entra ID (Azure AD): Use for all user authentication
- Conditional Access: Implement risk-based access policies
- Privileged Identity Management (PIM): Use for just-in-time admin access
- Managed Identities: Use for Azure resources (instead of service principals where possible)
GCP-Specific
- Workload Identity Federation: Use for external identity integration
- Service Accounts: Use for application authentication
- IAM Recommender: Review and act on recommendations
- Organisation Policies: Use for organisation-wide constraints
Network Security
General Network Controls
-
Network Segmentation:
- Separate environments (dev, test, prod)
- Isolate sensitive workloads (databases, PII)
- Use private subnets for backend resources
-
Firewall Rules / Security Groups:
- Default deny inbound, allow outbound
- No
0.0.0.0/0inbound except for public web services (ports 80/443) - Document and review rules quarterly
- Remove unused rules
-
Private Connectivity:
- Use private endpoints/links for PaaS services
- Avoid public internet exposure where possible
- Use VPN or dedicated connections (AWS Direct Connect, Azure ExpressRoute, GCP Interconnect) for hybrid
-
DDoS Protection:
- Enable cloud provider DDoS protection (AWS Shield, Azure DDoS Protection, GCP Cloud Armor)
-
Web Application Firewall (WAF):
- Deploy WAF in front of public web applications
- Enable OWASP Top 10 protections
- Configure rate limiting
-
DNS Security:
- Use DNSSEC where supported
- Monitor DNS queries for data exfiltration
AWS-Specific
-
VPC Configuration:
- Enable VPC Flow Logs
- Use VPC endpoints for AWS services (S3, DynamoDB, etc.)
- Use Network ACLs as additional layer
-
AWS Network Firewall: Consider for advanced network filtering
Azure-Specific
- Network Security Groups (NSGs): Apply at subnet and NIC level
- Azure Firewall: Use for centralised network filtering
- Private Link: Use for PaaS services
GCP-Specific
- VPC Firewall Rules: Use hierarchical firewall policies
- Private Google Access: Enable for private subnet access to Google APIs
- Cloud NAT: Use for outbound internet from private instances
Data Protection & Encryption
Encryption at Rest
-
Default Encryption: Enable default encryption for all storage services
- AWS: S3, EBS, RDS
- Azure: Storage Accounts, Managed Disks, SQL Database
- GCP: Cloud Storage, Persistent Disks, Cloud SQL
-
Customer-Managed Keys (CMK):
- Use CMK for sensitive data (vs provider-managed keys)
- Rotate encryption keys annually
- Use hardware security modules (HSM) for highly sensitive keys (AWS CloudHSM, Azure Key Vault HSM, GCP Cloud HSM)
-
Key Management:
- Centralise key management (AWS KMS, Azure Key Vault, GCP Cloud KMS)
- Restrict key access with IAM policies
- Enable key usage logging
Encryption in Transit
- TLS/SSL: Enforce TLS 1.2+ for all connections
- Certificate Management: Use cloud provider certificate managers (AWS ACM, Azure Key Vault, GCP Certificate Manager)
- API Encryption: Enforce HTTPS for all API calls
Data Classification & Handling
- Data Discovery: Identify and classify sensitive data
- Data Loss Prevention (DLP): Implement DLP controls (GCP DLP API, Microsoft Purview)
- Access Logging: Enable logging for data access (S3 access logs, Azure Storage Analytics, GCP Cloud Audit Logs)
- Public Exposure Prevention:
- Block public access to storage buckets (S3 Block Public Access, Azure deny assignment, GCP uniform bucket-level access)
- Scan for publicly accessible resources regularly
Logging & Monitoring
General Logging
-
Enable All Logging:
- AWS: CloudTrail (management and data events), VPC Flow Logs, S3 access logs, ELB access logs
- Azure: Activity Log, Diagnostic logs, NSG flow logs
- GCP: Cloud Audit Logs (Admin, Data Access, System Event), VPC Flow Logs
-
Centralised Logging:
-
Aggregate logs to SIEM or cloud-native solution
- AWS: CloudWatch Logs, S3 + Athena, or third-party SIEM
- Azure: Log Analytics, Microsoft Sentinel
- GCP: Cloud Logging, BigQuery
-
Log Retention:
- Define retention policy per compliance requirements (typically 1-7 years)
- Store logs in immutable storage where possible
-
Log Protection:
- Restrict access to logs (read-only for auditors)
- Enable log file integrity monitoring
- Encrypt logs at rest
Monitoring & Alerting
-
Security Monitoring:
- AWS: GuardDuty for threat detection
- Azure: Microsoft Defender for Cloud
- GCP: Security Command Center
-
Configuration Monitoring:
- AWS: Config for configuration tracking
- Azure: Azure Policy compliance
- GCP: Asset Inventory
-
Alerting:
- Alert on critical security events (root account usage, IAM changes, public S3 buckets, etc.)
- Integrate with incident response workflow
- Define escalation procedures
-
Cost Monitoring: Monitor for unusual spending (potential crypto-mining or resource abuse)
Compute Security
Virtual Machines / Instances
-
Hardened Images:
- Use hardened AMIs/images (CIS benchmarks)
- Disable unnecessary services
- Remove default credentials
-
Patch Management:
- Automate patching (AWS Systems Manager, Azure Update Management, GCP OS Patch Management)
- Patch within 30 days of release (critical vulnerabilities within 7 days)
-
Anti-Malware:
- Deploy endpoint protection (EDR/antivirus)
- Integrate with cloud security tools
-
Instance Metadata Service (IMDS):
- AWS: Use IMDSv2 (session-oriented, prevents SSRF)
- Restrict metadata access
-
SSH/RDP Access:
- Disable public SSH/RDP where possible
- Use bastion hosts or jump servers
- Require key-based authentication (no password auth)
- Implement just-in-time (JIT) access (Azure JIT VM Access)
Containers & Kubernetes
-
Image Security:
- Scan container images for vulnerabilities (AWS ECR scanning, Azure Container Registry scanning, GCP Artifact Registry scanning)
- Use minimal base images (distroless, Alpine)
- Use trusted registries only
-
Runtime Security:
- Use Pod Security Standards/Policies (Kubernetes)
- Restrict privileged containers
- Use read-only root filesystems where possible
-
Network Policies: Implement Kubernetes network policies to restrict pod communication
-
Secrets Management: Use cloud secret managers (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager) - do not hardcode secrets
Serverless (Lambda, Functions, Cloud Functions)
- Least Privilege Execution Roles: Grant minimum required permissions
- Environment Variables: Encrypt sensitive environment variables
- Code Scanning: Use SAST tools to scan function code
- Runtime Protection: Enable runtime security monitoring
Database Security
-
Network Isolation:
- Place databases in private subnets
- No public internet access (use bastion/VPN)
-
Encryption:
- Enable encryption at rest
- Enforce TLS for all connections
-
Authentication:
- Use IAM database authentication where supported
- Rotate database credentials regularly
- Enforce strong password policy
-
Backups:
- Enable automated backups
- Encrypt backups
- Test restoration regularly
-
Auditing:
- Enable database audit logs
- Monitor for suspicious queries
-
Vulnerability Patching: Keep database engines up to date
Compliance & Governance
Policy as Code
-
Infrastructure as Code (IaC) Security:
- Scan IaC templates for misconfigurations (Terraform, CloudFormation, ARM templates)
- Use tools like Checkov, tfsec, or cloud-native scanners
-
Policy Enforcement:
- AWS: Service Control Policies (SCPs), Config Rules
- Azure: Azure Policy
- GCP: Organisation Policies
-
Automated Compliance Checks:
- AWS: Security Hub, Config compliance packs
- Azure: Microsoft Defender for Cloud regulatory compliance
- GCP: Security Command Center compliance dashboards
Compliance Certifications
- Provider Certifications: Verify cloud provider holds required certifications (ISO 27001, SOC 2, PCI DSS, HIPAA, etc.)
- Attestations: Obtain and review SOC 2 reports, attestations, certifications
- Data Processing Agreement (DPA): Execute DPA with cloud provider (GDPR requirement)
- Business Associate Agreement (BAA): Execute BAA if handling PHI (HIPAA requirement)
Incident Response & Forensics
- Incident Response Plan: Adapt IR plan for cloud-specific scenarios
-
Forensic Readiness:
- Enable log collection (CloudTrail, Activity Log, Cloud Audit Logs)
- Retain logs for forensic analysis (immutable storage)
- Document snapshot and disk imaging procedures
-
Automated Response:
- Use cloud-native automation (Lambda, Logic Apps, Cloud Functions) for auto-remediation
- Isolate compromised instances automatically
-
Contact Information: Know how to contact cloud provider security team
Backup & Disaster Recovery
-
Backup Strategy:
- Automated backups for all critical data
- Encrypt backups
- Store backups in separate region (cross-region replication)
-
Disaster Recovery:
- Define RTO/RPO for cloud workloads
- Use multi-region or multi-AZ deployments for critical services
- Test DR failover annually
-
Immutable Backups: Use immutable storage or versioning to protect against ransomware
Cloud Security Posture Management (CSPM)
-
Enable Native CSPM:
- AWS: Security Hub, Config
- Azure: Microsoft Defender for Cloud
- GCP: Security Command Center
-
Third-Party CSPM (optional):
- Prisma Cloud (Palo Alto Networks)
- Wiz
- Orca Security
- Lacework
-
Misconfiguration Detection:
- Scan for common misconfigurations (public buckets, open security groups, unencrypted data)
- Set up automated alerts
- Remediate within SLA (critical: 24 hours)
Multi-Cloud & Hybrid Considerations
- Consistent Security Policies: Apply consistent security baseline across all cloud providers
- Centralised Identity: Use federated identity across clouds
- Unified Logging: Aggregate logs from all environments to central SIEM
- Cross-Cloud Networking: Secure interconnections between clouds
- Hybrid Connectivity: Secure VPN or dedicated connections to on-premises
Cloud Provider-Specific Tools Summary
| Category | AWS | Azure | GCP |
|---|---|---|---|
| Threat Detection | GuardDuty | Defender for Cloud | Security Command Center |
| CSPM | Security Hub, Config | Defender for Cloud | Security Command Center |
| SIEM | CloudWatch + 3rd party | Microsoft Sentinel | Chronicle (or 3rd party) |
| IAM | IAM, Organizations | Entra ID, PIM | IAM, Workload Identity |
| Secrets | Secrets Manager, SSM | Key Vault | Secret Manager |
| Encryption | KMS, CloudHSM | Key Vault, HSM | Cloud KMS, Cloud HSM |
| DLP | Macie | Microsoft Purview | DLP API |
| WAF | AWS WAF | Azure WAF | Cloud Armor |
| DDoS | Shield, Shield Advanced | DDoS Protection | Cloud Armor |
Quick Selection Guide
| Organisation Profile | Priority Focus Areas |
|---|---|
| Startup migrating to cloud | IAM (least privilege, MFA), encryption at rest, logging, CSPM |
| Enterprise hybrid cloud | Federation/SSO, centralised logging, network security, compliance automation |
| SaaS provider | Multi-tenancy isolation, DDoS protection, WAF, data residency, SOC 2 compliance |
| Financial services | Encryption (CMK), audit logging, PCI DSS compliance, network segmentation, DLP |
| Healthcare | HIPAA compliance, BAA with provider, encryption, access controls, PHI isolation |
| Regulated industry (general) | Compliance certifications, data residency, logging & monitoring, policy enforcement |
Common Cloud Security Mistakes
- Public S3 Buckets: Unintentional public exposure of sensitive data
- Overly Permissive IAM: Granting
*:*permissions or admin access unnecessarily - No MFA on Root: Root/admin accounts without MFA
- Unencrypted Data: Failing to enable encryption at rest
- No Logging: CloudTrail, Activity Log, or Audit Logs disabled
- Default Configurations: Using default security groups, passwords, or settings
- Credential Exposure: Hardcoded credentials in code or IaC templates
- No Network Segmentation: Flat network with no isolation
- Ignoring CSPM Findings: Alerts exist but not acted upon
- No Backup Testing: Backups exist but never tested for restoration