Back matter
Complete GCP Production Checklist
This checklist is intended as a final architecture and production-readiness review.
It is deliberately broad.
Not every control applies to every environment. A small internal service and a regulated multi-region platform do not need identical architectures.
For every item marked not applicable, somebody should be able to explain why.
1. Organization and Resource Hierarchy §
Organization §
- The GCP organization is under an identity domain controlled by the organization.
- Organization administrators are explicitly identified.
- Organization-level privileges are limited to people who genuinely require them.
- Administrative access uses strong authentication.
- Break-glass access is documented.
- Break-glass credentials are protected and tested.
- Emergency access generates an audit trail.
- Organization policies are managed intentionally rather than left entirely at defaults.
- Resource-location requirements are documented.
- Domain-sharing restrictions have been reviewed.
Folder hierarchy §
- Folder structure represents meaningful administrative or policy boundaries.
- Production and nonproduction are separated.
- Shared infrastructure has an explicit home.
- Security resources have an explicit home.
- Logging resources have an explicit home.
- Networking resources have an explicit home.
- Business-unit folders do not create accidental privilege inheritance.
- Folder-level IAM has been reviewed.
Projects §
- Every production project has a documented owner.
- Every project has a documented purpose.
- Project naming is standardized.
- Labels or tags required for ownership and cost allocation are present.
- Project creation is controlled.
- Default networks are removed or deliberately retained.
- Required APIs are enabled intentionally.
- Unused APIs are reviewed.
- Project deletion permissions are tightly controlled.
- Critical projects use deletion protection or an equivalent process where appropriate.
- Sandbox projects are separated from production trust boundaries.
2. Billing and Cost Controls §
- Billing accounts have limited administrative access.
- Production projects are attached to the correct billing account.
- Budgets exist.
- Budget alerts exist.
- Alerts reach somebody who will act on them.
- Cost allocation by project is possible.
- Cost allocation by environment is possible.
- Cost allocation by team or workload is possible where required.
- Expensive services have expected baseline costs documented.
- Logging volume has been reviewed for cost.
- Network egress has been reviewed for cost.
- Cross-region traffic has been reviewed for cost.
- Autoscaling has maximum limits where runaway scale would be dangerous.
- BigQuery or other usage-based platforms have appropriate cost controls.
- Nonproduction resources shut down or scale down when appropriate.
- Orphaned disks, addresses, snapshots, and other idle resources are reviewed regularly.
3. Identity and Access Management §
Human identity §
- Shared human accounts are prohibited.
- Individual administrators use named identities.
- MFA is enforced according to organizational policy.
- Groups are used instead of repeated direct user grants where practical.
- Group ownership is known.
- Joiner/mover/leaver processes update access promptly.
- Former employees and contractors lose access promptly.
- Production access is narrower than development access.
- Privileged roles are separated from routine user roles.
- Just-in-time privilege is used where practical.
- Privileged access can be reviewed after the fact.
IAM policy §
- Routine use of Owner is avoided.
- Routine use of Editor is avoided.
- Basic roles have been reviewed.
- Predefined roles are preferred when they fit.
- Custom roles have a documented reason.
- Custom roles are reviewed as APIs evolve.
- IAM Conditions are used where they reduce unnecessary privilege.
- IAM Deny policies are considered for high-value guardrails.
- Cross-project grants are documented.
- Cross-organization grants are documented and justified.
- Public principals such as
allUsersandallAuthenticatedUsersare reviewed explicitly. - Permission changes are captured in audit logs.
Service accounts and machine identity §
- Service accounts are named by workload or purpose.
- Service accounts have documented owners.
- One service account is not reused across unrelated workloads without justification.
- Service accounts have least privilege.
- Default service accounts are not granted broad roles casually.
- User-managed service account keys are avoided.
- Existing long-lived keys are inventoried.
- Unnecessary keys are revoked.
- Key creation is restricted where practical.
- Workload Identity Federation is used for external workloads where practical.
- GKE workload identity is used where practical.
- Service account impersonation is used instead of downloadable keys where appropriate.
- CI/CD systems use short-lived credentials where possible.
- Machine identity permissions are reviewed separately from human permissions.
4. Networking §
VPC architecture §
- VPC design is documented.
- Custom-mode networks are used where appropriate.
- Production and nonproduction network trust is separated.
- Shared VPC ownership is clear where Shared VPC is used.
- Host and service projects have documented responsibilities.
- IP address allocation is planned.
- Subnet ranges do not overlap with connected networks.
- GKE secondary ranges have adequate capacity.
- Future growth is considered before address space is exhausted.
- IPv6 requirements have been reviewed.
Routing and egress §
- Routes are understood.
- Custom routes have documented purpose.
- Dynamic routing requirements are understood.
- Cloud Router configuration is documented.
- Internet egress is deliberate.
- Cloud NAT is used where appropriate.
- NAT capacity is sufficient.
- Egress IP requirements are documented.
- Third-party allowlists do not rely on unstable source addresses.
- Egress filtering requirements have been evaluated.
- Cross-region routing assumptions are understood.
Firewall policy §
- Firewall rules follow least access.
- Broad
0.0.0.0/0ingress rules are explicitly justified. - Administrative ports are not exposed publicly without a documented reason.
- Firewall rule ownership is known.
- Hierarchical firewall policies are used where they simplify enterprise enforcement.
- Firewall logging is enabled where useful.
- Obsolete firewall rules are removed.
- Network tags and service-account targets are used intentionally.
- Emergency firewall changes are reviewed after the incident.
Private service access §
- Private Google Access requirements are understood.
- Private Service Access ranges are planned where used.
- Private Service Connect is considered where appropriate.
- Private DNS resolution is tested.
- Internal APIs are not accidentally reachable from the internet.
Hybrid connectivity §
- VPN or Interconnect topology is documented.
- Redundancy exists where the business requires it.
- BGP behavior is understood.
- Failover paths are tested.
- On-premises route advertisement is controlled.
- Cloud route advertisement is controlled.
- DNS works during connectivity failover.
- Monitoring exists for tunnels, circuits, and routing sessions.
5. DNS and Certificates §
- Public DNS ownership is known.
- Private DNS ownership is known.
- Zone delegation is documented.
- Administrative access to DNS is restricted.
- DNS changes are versioned or auditable.
- Critical records have appropriate TTLs.
- Split-horizon behavior is documented where used.
- Certificate issuance method is documented.
- Certificate renewal is automated.
- Certificate expiration is monitored.
- Private CA requirements have been reviewed.
- TLS policy matches organizational requirements.
- Obsolete protocols and ciphers are not enabled without justification.
6. Load Balancing and Edge Security §
- The chosen load balancer matches the protocol and scope required.
- Health checks test meaningful application behavior.
- Backend services are not exposed through unintended paths.
- TLS terminates at an intentional boundary.
- HTTP-to-HTTPS behavior is explicit.
- Cloud Armor is evaluated for internet-facing applications.
- WAF rules are tuned rather than blindly enabled.
- Rate limiting exists where abusive traffic can create operational or cost risk.
- DDoS assumptions are documented.
- Origin bypass is prevented where required.
- CDN caching rules do not cache sensitive responses.
- Cache invalidation behavior is understood.
7. Compute Engine §
- VM purpose and owner are documented.
- Instance service accounts use least privilege.
- External IP addresses are avoided when unnecessary.
- Administrative access is controlled.
- OS Login is evaluated.
- IAP-based administration is evaluated.
- Shielded VM features are enabled where compatible.
- Secure Boot requirements are evaluated.
- Confidential VM requirements are evaluated for sensitive workloads.
- Base images are controlled.
- Image provenance is known.
- Startup scripts do not contain secrets.
- Patch process exists.
- Reboot process exists.
- Instance templates are versioned.
- Managed instance groups use health checks.
- Autoscaling limits are appropriate.
- Persistent data is not accidentally stored only on ephemeral disks.
- Snapshot policy exists where needed.
- Restore has been tested.
- Serial console access policy is reviewed.
- Unused instances are removed.
8. Google Kubernetes Engine §
Cluster design §
- Standard versus Autopilot was chosen intentionally.
- Cluster region/zone topology matches availability requirements.
- Private cluster configuration is evaluated.
- Control-plane access is restricted.
- Authorized networks are configured where appropriate.
- Release channel is selected intentionally.
- Upgrade process is documented.
- Maintenance windows/exclusions are configured where needed.
- Node pools have documented purpose.
- Node pool scaling limits are appropriate.
Identity and authorization §
- Workload identity is enabled where practical.
- Kubernetes service accounts map to only the required cloud permissions.
- Human access to the Kubernetes API is group-based where practical.
- Kubernetes RBAC follows least privilege.
- Cluster-admin access is rare and reviewed.
- Break-glass cluster access is documented.
- Namespace boundaries are not mistaken for complete security boundaries.
Workload security §
- Pod security controls are defined.
- Privileged containers are prohibited unless justified.
- Host namespace access is controlled.
- HostPath use is controlled.
- Capabilities are restricted.
- Containers run as non-root where practical.
- Read-only root filesystems are used where practical.
- Resource requests are defined.
- Resource limits are defined where appropriate.
- Network policies are used where application segmentation matters.
- Admission policy is used for important invariants.
- Image source is controlled.
- Vulnerability scanning is part of the image lifecycle.
- Binary Authorization or equivalent provenance controls are evaluated.
Operations §
- Cluster logs are centralized.
- Workload logs are centralized.
- Metrics are collected.
- Control-plane events are observable.
- Node pressure alerts exist.
- Pod crash loops are detected.
- Pending pods are detected.
- Autoscaler failures are detected.
- Persistent volumes are backed up where needed.
- Cluster recovery has been considered.
- Critical manifests exist outside the cluster.
- GitOps state can recreate intended configuration where used.
9. Cloud Run and Serverless §
- Public versus authenticated access is intentional.
- The runtime service account has least privilege.
- Ingress configuration is explicit.
- Egress configuration is explicit.
- VPC connectivity is used only where required.
- Secrets are loaded from a managed secret store.
- Secrets are not embedded in images.
- Minimum instance count matches latency requirements.
- Maximum instance count limits runaway scaling.
- Concurrency is tested for the application.
- CPU and memory are sized from measurements.
- Request timeout is appropriate.
- Application startup behavior is understood.
- Database connection behavior under scale is understood.
- Revision traffic splitting is controlled.
- Rollback procedure is known.
- Logs and metrics are collected.
- Custom domain and TLS behavior are tested.
- Cloud Armor/load balancer integration is used where the threat model requires it.
10. Storage §
Cloud Storage §
- Uniform bucket-level access is enabled where appropriate.
- Public Access Prevention is enabled unless public access is required.
- Public buckets are explicitly approved.
- Bucket location matches residency and availability requirements.
- Object versioning requirements are evaluated.
- Soft-delete behavior is understood.
- Lifecycle rules are configured.
- Retention policy requirements are configured.
- Bucket Lock is evaluated for immutable retention requirements.
- CMEK requirements are reviewed.
- Signed URL use is time-limited and documented.
- Sensitive data classification is known.
- Logging and access analysis are sufficient.
- Cross-project access is documented.
11. Databases §
General §
- Database owner is documented.
- Data classification is documented.
- Public accessibility is avoided unless explicitly required.
- Private connectivity is used where practical.
- Administrative access is limited.
- Application identities have only required database privilege.
- Password authentication is minimized where IAM database authentication is available and suitable.
- Secrets are rotated where passwords still exist.
- Encryption requirements are documented.
- CMEK requirements are evaluated.
- Maintenance strategy is documented.
- Capacity monitoring exists.
- Connection usage is monitored.
- Slow queries can be investigated.
- Backup policy exists.
- Point-in-time recovery requirements are configured.
- Restore has been tested.
- Retention matches business requirements.
- Cross-region recovery requirements are understood.
- Schema migrations have rollback or forward-recovery plans.
Cloud SQL / AlloyDB §
- High availability is enabled where required.
- Read replicas are used for a measured requirement, not by default.
- Failover behavior has been tested.
- Connection pooling is appropriate.
- Serverless scaling cannot exhaust database connections.
- Database flags are reviewed.
- Maintenance windows match operating needs.
12. Messaging and Event-Driven Systems §
- Pub/Sub topic ownership is documented.
- Publisher identities have minimal rights.
- Subscriber identities have minimal rights.
- Dead-letter behavior is configured where appropriate.
- Retry behavior is understood.
- Duplicate delivery is handled safely.
- Ordering requirements are explicit.
- Message retention is appropriate.
- Sensitive payloads are handled according to policy.
- Backlog growth is monitored.
- Poison messages can be diagnosed.
- Consumer scaling cannot overwhelm downstream systems.
- Event schemas are versioned where necessary.
13. Secrets and Key Management §
Secret Manager §
- Secrets are stored in Secret Manager or an approved equivalent.
- Application code contains no production secrets.
- CI/CD files contain no production secrets.
- Container images contain no production secrets.
- Terraform state has been reviewed for sensitive values.
- Secret access uses least privilege.
- Secret versions are used intentionally.
- Rotation requirements are documented.
- Rotation can occur without an extended outage.
- Secret access is auditable.
Cloud KMS §
- Key ownership is documented.
- Key rings follow a deliberate organization.
- Key permissions are separated from data permissions where required.
- Rotation policy is configured.
- Key destruction process is documented.
- Accidental key destruction is protected against.
- CMEK dependencies are inventoried.
- Cross-region recovery implications are understood.
- HSM requirements are evaluated.
- External key-management requirements are evaluated.
- Loss of KMS access is included in recovery planning.
14. Logging, Monitoring, and Observability §
Logging §
- Admin Activity audit logs are retained appropriately.
- Data Access logging is enabled where the threat model or compliance requirements justify it.
- Policy Denied logs are available.
- Critical application logs are centralized.
- Security logs are centralized.
- Log sinks are protected.
- Log storage has limited administrative access.
- Retention periods are documented.
- Sensitive data is not unnecessarily written to logs.
- Credentials and tokens are redacted.
- High-volume logging has cost controls.
- Logs can be exported to a SIEM where required.
- Incident responders know where to find historical evidence.
Monitoring §
- Service health metrics exist.
- Infrastructure metrics exist.
- Application metrics exist.
- User-visible failure is measured where practical.
- SLOs exist for important services.
- Alerting is based on actionable conditions.
- Alerts have owners.
- Alerts have runbooks.
- Alert noise is reviewed.
- Uptime or synthetic checks exist for critical endpoints.
- Prometheus/OpenTelemetry integration is standardized where used.
- Dashboards show useful operating state rather than decorative metrics.
15. Security Operations §
- Security Command Center is configured at the appropriate scope.
- Findings have owners.
- High-severity findings generate an operational response.
- Vulnerability findings are triaged.
- Misconfiguration findings are triaged.
- Threat detections are routed to responders.
- False positives are tuned without blindly suppressing categories.
- Security findings are retained or exported as required.
- SIEM integration is tested where used.
- Security teams can identify asset ownership.
- Security teams can identify the deployment source for a workload.
- Security teams can identify the service account used by a workload.
- Automated remediation is limited to actions that are safe to automate.
16. Application and API Security §
- Authentication method is documented.
- Authorization is enforced server-side.
- API keys are not used as a substitute for user identity.
- OAuth/OIDC configuration is reviewed.
- Token audience and issuer are validated.
- Service-to-service identity is explicit.
- Administrative APIs are more restricted than public APIs.
- Rate limiting is configured where appropriate.
- Input validation exists.
- Security headers are configured where relevant.
- CORS policy is explicit.
- Error responses do not expose unnecessary internal detail.
- API logs do not expose secrets.
- Abuse monitoring exists for public APIs.
- Cloud Armor or an API gateway layer is used where it provides meaningful control.
17. CI/CD and Software Supply Chain §
Source §
- Source repositories require authenticated access appropriate to their sensitivity.
- Protected branches are configured.
- Production changes require review.
- Direct pushes to protected production branches are restricted.
- Commit-signing policy is defined if required.
- Secret scanning runs.
- Dependency scanning runs.
- Static analysis runs where useful.
- IaC scanning runs.
Builds §
- Builds use dedicated identities.
- Build identities use least privilege.
- Build environments do not receive production administrative credentials.
- Private build pools are used where the network model requires them.
- Build dependencies come from controlled sources where required.
- Build provenance is retained.
- Build logs are retained.
- Failed builds cannot promote artifacts.
- Artifact hashes or immutable identifiers are used.
Artifact Registry §
- Repository IAM is limited.
- Production artifacts are separated where appropriate.
- Images are scanned.
- Cleanup policies exist.
- Mutable tags are not the only production identity of an artifact.
- Deployments can identify the exact image digest.
- Promotion copies or references an already-built artifact instead of silently rebuilding different code.
Deployment §
- Deployment identity is separate from build identity where practical.
- Production deploy rights are restricted.
- Approval requirements are documented.
- The approved artifact is the artifact actually deployed.
- Canary or staged rollout is used where appropriate.
- Rollback is tested.
- Deployment health is validated automatically.
- Failed health validation stops promotion.
- Emergency deployment path is documented and auditable.
18. Terraform and OpenTofu §
- Infrastructure definitions live in version control.
- Provider versions are constrained.
- Module versions are constrained.
- Remote state is protected.
- State is not committed to Git.
- State access uses least privilege.
- State recovery/versioning exists.
- Sensitive values in state are understood.
- Production applies do not run from arbitrary developer laptops without an explicit policy decision.
- Pull requests run formatting and validation.
- Pull requests run a plan.
- Plans are reviewed.
- Policy checks run where required.
- Applies correspond to reviewed source.
- Destructive changes receive special attention.
-
prevent_destroyor other safeguards are used where useful, not as a substitute for process. - Imports are documented.
- Drift is detected.
- Manual Console changes are discouraged or reconciled.
- Modules have clear ownership.
- Modules have documentation.
- Modules do not hide dangerous defaults.
19. Ansible and Configuration Management §
- Inventories are generated or maintained from an authoritative source.
- Production inventory is protected.
- SSH host-key verification policy is explicit.
- Privilege escalation is controlled.
- Secrets use an approved secret system.
- Plaintext secrets are not committed to Git.
- Roles are versioned.
- Collections are versioned.
- Playbooks are idempotent where practical.
- Check mode is used where useful.
- Production changes are tested elsewhere first.
- Configuration drift can be detected.
- Configuration rollback or rebuild is possible.
- Ad hoc administrative commands are minimized.
- Emergency ad hoc changes are reconciled into managed configuration.
20. Policy and Governance §
- Organization policies implement important guardrails.
- Policies are documented.
- Policies are tested before broad enforcement.
- Dry-run modes are used where supported.
- Exception process exists.
- Exceptions have owners.
- Exceptions have expiration/review dates.
- Policy changes are reviewed.
- Policy changes are auditable.
- Mandatory regions are enforced where required.
- Public resource creation is restricted where required.
- Service account key creation is restricted where required.
- External IP usage is restricted where required.
- Domain sharing is restricted where required.
- Encryption policy is enforced where required.
- Compliance mappings distinguish technical evidence from actual legal compliance.
21. Backups and Disaster Recovery §
- Every stateful production system has an explicit recovery requirement.
- RPO is documented.
- RTO is documented.
- Backup frequency supports RPO.
- Restore process supports RTO.
- Backups exist in a failure domain appropriate to the threat model.
- Backup IAM is narrower than normal production administration where practical.
- Backups are encrypted.
- Backup retention is documented.
- Backup deletion is protected where appropriate.
- Database point-in-time recovery is configured where required.
- Object versioning/retention is configured where required.
- Kubernetes state recovery is defined.
- Terraform/OpenTofu state is recoverable.
- KMS dependencies are included in recovery planning.
- DNS dependencies are included in recovery planning.
- Secrets are included in recovery planning.
- Recovery procedures are documented.
- Recovery procedures are tested.
- Restore tests verify application usability, not merely that files exist.
- Disaster-recovery exercises produce follow-up work.
- Recovery ownership is known during an incident.
22. Reliability and Availability §
- Availability requirement is documented.
- Single points of failure are known.
- Regional dependencies are known.
- Zonal dependencies are known.
- Multi-region design is used only where the business requires its complexity.
- Health checks are meaningful.
- Autoscaling is tested.
- Capacity limits are understood.
- Quotas are monitored before exhaustion.
- Dependency failure behavior is defined.
- Timeouts are configured.
- Retries are bounded.
- Retry storms are considered.
- Circuit breaking is used where appropriate.
- Graceful degradation is designed where appropriate.
- Maintenance behavior is understood.
- Failover is tested.
- Failback is tested where relevant.
23. Incident Response §
- Incident severity levels are defined.
- On-call ownership is defined.
- Escalation paths exist.
- Security escalation paths exist.
- Incident communication channels are defined.
- Cloud audit evidence can be preserved.
- Application logs can be preserved.
- VM/container evidence procedures are documented where necessary.
- Compromised service accounts can be disabled quickly.
- Compromised keys can be revoked quickly.
- Workloads can be isolated from the network.
- Traffic can be redirected or blocked.
- Malicious deployments can be rolled back.
- Break-glass access works.
- Emergency changes are logged.
- Post-incident reviews are blameless and technically useful.
- Corrective actions receive owners.
- Corrective actions are tracked to completion.
24. Data Protection and Privacy §
- Data classes are defined.
- Sensitive data locations are known.
- Unnecessary sensitive data is not collected.
- Data residency requirements are documented.
- Retention requirements are documented.
- Deletion requirements are documented.
- Encryption requirements are documented.
- Access to sensitive data is auditable.
- Sensitive data is not unnecessarily copied into logs.
- Sensitive data is not unnecessarily copied into lower environments.
- Production data used in testing is masked or otherwise controlled.
- Data export paths are understood.
- Service perimeter requirements are evaluated.
- Sensitive Data Protection/DLP capabilities are evaluated where relevant.
25. Documentation and Ownership §
- Every production service has an owner.
- Every production project has an owner.
- Every critical alert has an owner.
- Every critical runbook has an owner.
- Architecture is documented.
- Major trust boundaries are documented.
- Data flows are documented.
- External dependencies are documented.
- Known technical debt is documented.
- Recovery procedures are documented.
- Deployment procedures are documented.
- Emergency procedures are documented.
- Documentation is versioned where practical.
- Documentation is reviewed after major architectural change.
- The system can be understood by somebody other than the person who built it.
26. Final Go-Live Review §
Before declaring the environment production-ready:
- Architecture review is complete.
- Security review is complete.
- IAM review is complete.
- Network review is complete.
- Cost review is complete.
- Production data handling is approved.
- Monitoring is live.
- Alerts have been tested.
- Logs are reaching the expected destination.
- CI/CD production path has been tested.
- Rollback has been tested.
- Backup has completed successfully.
- Restore has been tested.
- DNS has been tested.
- TLS has been tested.
- Failure of critical dependencies has been considered.
- Quotas have been reviewed.
- Support/escalation contacts are known.
- Runbooks exist for likely incidents.
- Break-glass access has been tested.
- Somebody other than the primary implementer has reviewed the environment.
- The team can explain what happens if the primary region disappears.
- The team can explain what happens if the deployment identity is compromised.
- The team can explain what happens if the database is accidentally deleted.
- The team can explain how to rebuild the infrastructure from source.
- The team can explain where the authoritative configuration lives.
The Last Question §
After every checkbox, architecture diagram, approval, test, and deployment, one question remains:
If this fails tonight, do we know enough about the system to understand what happened, contain the damage, and recover it?
If the answer is no, the work is not finished.