Skip to main content

HIPAA Compliance Checklist โ€” GCP

Stack: Cloud Run ยท Cloud SQL ยท Cloud Memorystore (Redis) Status legend: [ ] Not started ยท [~] In progress ยท [x] Complete

Before processing real PHI

Do not process real PHI until every checklist item is marked [x]. Use synthetic data in all development and testing environments.


1. Business Associate Agreement (BAA)โ€‹

#ItemStatusOwner
1.1Sign Google Cloud BAA via GCP Console (Compliance > HIPAA)[ ]Cloud Admin
1.2Verify all HIPAA-eligible services are covered under the BAA[ ]Cloud Admin
1.3Store a copy of the signed BAA in compliance records[ ]Compliance Officer
1.4Review BAA annually and after major architectural changes[ ]Compliance Officer

Reference: BAA & GCP Setup โ†’


2. GCP Project & Organization Setupโ€‹

#ItemStatusOwner
2.1Create a dedicated GCP project exclusively for PHI workloads[ ]Cloud Admin
2.2Enable Organization Policy constraints (resource location, etc.)[ ]Cloud Admin
2.3Restrict resource locations to approved US regions only[ ]Cloud Admin
2.4Enable VPC Service Controls to create a security perimeter[ ]Cloud Admin
2.5Enable Google Cloud Security Command Center (SCC)[ ]Security Team
2.6Tag all PHI-related resources with data-sensitivity: phi[ ]Cloud Admin

3. IAM & Access Controlโ€‹

#ItemStatusOwner
3.1Apply principle of least privilege to all IAM roles[ ]Cloud Admin
3.2Eliminate primitive roles (Owner, Editor, Viewer) on PHI projects[ ]Cloud Admin
3.3Enforce MFA for all accounts with PHI access[ ]IT Security
3.4Use Workload Identity instead of service account keys[ ]Cloud Admin
3.5Rotate service account keys every 90 days (if keys must be used)[ ]Cloud Admin
3.6Disable and remove unused service accounts[ ]Cloud Admin
3.7Review IAM bindings quarterly[ ]Security Team

Reference: IAM & Access Control โ†’


4. Cloud Runโ€‹

#ItemStatusOwner
4.1Confirm Cloud Run is covered under the signed BAA[ ]Cloud Admin
4.2Deploy in an approved US region[ ]Developer
4.3Set --ingress=internal-and-cloud-load-balancing[ ]Developer
4.4Set --no-allow-unauthenticated[ ]Developer
4.5Enable VPC Connector for private traffic[ ]Cloud Admin
4.6Use dedicated per-service service account[ ]Cloud Admin
4.7Store all secrets in Secret Manager (--set-secrets)[ ]Developer
4.8Never log PHI in container stdout/stderr[ ]Developer
4.9Enable Cloud Armor WAF in front of the Load Balancer[ ]Security Team
4.10Enable container image vulnerability scanning[ ]Security Team
4.11Run container as non-root user in Dockerfile[ ]Developer

Reference: Cloud Run โ†’


5. Database (Cloud SQL)โ€‹

#ItemStatusOwner
5.1Disable public IP on Cloud SQL; use Private IP only[ ]Cloud Admin
5.2Enable SSL/TLS (require_ssl = true)[ ]Developer
5.3Use Cloud SQL Auth Proxy for all connections[ ]Developer
5.4Enable CMEK via Cloud KMS[ ]Security Team
5.5Enable automated backups with PITR (7-day log window)[ ]Cloud Admin
5.6Test backup restore quarterly[ ]Cloud Admin
5.7Enable Cloud SQL audit logging (Data Access logs)[ ]Cloud Admin
5.8Apply column-level encryption for SSN, diagnosis codes[ ]Developer

Reference: Database โ†’


6. Redis (Cloud Memorystore)โ€‹

#ItemStatusOwner
6.1Deploy within private VPC (no public IP)[ ]Cloud Admin
6.2Enable TLS (--transit-encryption-mode=SERVER_AUTHENTICATION)[ ]Developer
6.3Enable AUTH (--auth-enabled)[ ]Cloud Admin
6.4Do NOT store raw PHI in Redis[ ]Developer
6.5Set TTL on all PHI-adjacent keys (max 30 min for sessions)[ ]Developer
6.6Restrict access via VPC firewall rules[ ]Cloud Admin

Reference: Redis โ†’


7. Encryptionโ€‹

#ItemStatusOwner
7.1Enable CMEK for Cloud SQL[ ]Security Team
7.2Enable CMEK for Cloud Storage (audit log bucket)[ ]Security Team
7.3Enable KMS key rotation (90-day period)[ ]Security Team
7.4Enforce TLS 1.2+ via SSL policy RESTRICTED on Load Balancer[ ]Developer
7.5Enable HSTS header in application[ ]Developer
7.6Manage all secrets via Secret Manager[ ]Developer

Reference: Encryption โ†’


8. Network Securityโ€‹

#ItemStatusOwner
8.1Use custom VPC (delete default)[ ]Cloud Admin
8.2No public IPs on Cloud SQL or Redis[ ]Cloud Admin
8.3VPC Connector for Cloud Run โ†’ private services[ ]Cloud Admin
8.4Cloud NAT for outbound internet access[ ]Cloud Admin
8.5Enable VPC Service Controls perimeter[ ]Cloud Admin
8.6Enable Cloud Armor WAF + DDoS protection[ ]Security Team
8.7Enable VPC Flow Logs[ ]Cloud Admin

Reference: Network Security โ†’


9. Audit Loggingโ€‹

#ItemStatusOwner
9.1Enable Data Access audit logs for all PHI services[ ]Cloud Admin
9.2Export audit logs to Cloud Storage[ ]Cloud Admin
9.3Apply 6-year locked retention policy on log bucket[ ]Cloud Admin
9.4Implement application-level PHI access audit logging[ ]Developer
9.5Configure security alerts (failed logins, IAM changes, VPC-SC violations)[ ]Security Team

Reference: Audit Logging โ†’


10. Incident Responseโ€‹

#ItemStatusOwner
10.1Document and publish an Incident Response Plan[ ]Compliance Officer
10.2Assign HIPAA Privacy Officer and Security Officer[ ]Management
10.3Define breach notification SLAs (HHS: 60 days)[ ]Compliance Officer
10.4Test backup restoration annually[ ]Cloud Admin
10.5Conduct tabletop incident response exercise annually[ ]Security Team

Reference: Incident Response โ†’


11. Risk Assessment & Policiesโ€‹

#ItemStatusOwner
11.1Conduct and document initial HIPAA Risk Assessment[ ]Compliance Officer
11.2Maintain a Risk Register with mitigations and owners[ ]Compliance Officer
11.3Create and distribute HIPAA Policies & Procedures[ ]Compliance Officer
11.4Conduct HIPAA security training for all workforce[ ]HR / Compliance
11.5Maintain list of all Business Associates and their BAAs[ ]Compliance Officer

Reference: Risk Assessment โ†’