Google Cloud KMS and Regional Keys for Protected Data

Short answer: Google Cloud KMS regional key design should align key location, service identity, rotation, backups, regional endpoints, and administrator access with the protected data boundary. As of 2026-08-15, Google Cloud publishes KMS pricing, regional endpoint and resource-location guidance, and covered-product scope. A key location or encryption setting does not replace tenant authorization or a complete risk analysis.

GCP service fit and regional boundary

KMS can support a regional encryption boundary when the rest of the data path respects it. Google Cloud KMS Pricing describes key storage and operations. Regional Endpoints and Resource Locations guidance describes location controls. The HIPAA page provides provider and shared-responsibility context. These documents support evidence collection, not a platform guarantee.

Assign tenant home region before the first protected write. Keep database, files, logs, backups, queues, secrets, and keys in that zone unless the customer and counsel approve a different recovery or transfer path. A global control plane should hold only opaque tenant and deployment metadata. Do not use a browser-selected region or key name as authority.

Key granularity should follow data class, region, role, recovery, and deletion requirements. One key per record is rarely a useful default. One global key may be too broad for a regional policy. Document the reason for the chosen topology, the owner, and the failure behavior when the key is disabled or unavailable.

Key concern Question Evidence
Location Where is the key and where can it be used? Key and resource inventory
Identity Which service can encrypt or decrypt? Role policy and denied calls
Lifecycle How are rotation, disable, and destruction handled? Lifecycle runbook and test
Recovery Which key and region serve backup restore? Isolated restore evidence

Compare AWS KMS architecture, Cloud Run home zones, and logging retention and audit evidence.

Request, data, key, and identity path

Authorize the data operation before the key operation. Authenticate, resolve tenant membership and home region, select the approved service and key, and then encrypt or decrypt. A role that can use a key should not automatically be able to read every tenant record. A key policy should not be the only membership control.

Separate application service identity, deployment identity, key administrator, backup operator, restore operator, support, and emergency access. Use regional endpoints where supported and document any global control-plane action. Test a request that supplies another tenant, another region, another key, or a missing identity context.

Keep sensitive content out of key aliases, labels, logs, error messages, and build configuration. A generic conversion record may use approved event type, time, currency, value, and opaque reference. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising systems.

tenant membership
  -> immutable home region
  -> regional service and key selection
  -> approved encrypt or decrypt operation
  -> redacted audit event
  -> regional backup and restore

Jobs, audit, backup, and failure handling

Key design is proven by failure behavior. Test wrong region, missing grant, expired identity, disabled key, rotation transition, backup restore, queue retry, and emergency access. The application should stop safely and expose a reason code without returning the protected value.

Rotation needs a complete lifecycle. Create synthetic data before and after rotation, read both through the normal role, and attempt denied access with another role. Verify that backups and restore can access the intended key without granting broad database permissions. Record who approved the change.

Regional endpoint controls help reduce accidental location paths, but they do not fix a global log sink or an unreviewed support session. Inspect keys, logs, queues, backups, files, and monitoring. Audit key-policy changes, grants, decrypt attempts, exports, restores, and emergency use without copying full records.

Run a restore drill in the approved region. Reapply membership, row or document policies, keys, and support restrictions before reading. Delete the synthetic copy according to policy. If recovery requires another region, record the transfer and contract gate rather than hiding it under disaster recovery.

Cost and proof gate

KMS pricing is usually one line; key operations and review are the larger design surface. Use the current KMS Pricing page for storage and operations. Add regional keys, encrypt and decrypt calls, grants, logs, backups, endpoints, support, and test environments. Label estimates with region, workload, retention, and date.

  • Choose key topology from region, data class, and access role.
  • Separate use from administration and emergency access.
  • Test rotation, disable, denial, backup, restore, and deletion.
  • Check regional endpoint and resource-location controls.
  • Recalculate current key and operation pricing before launch.

Regional key proof checklist

Use synthetic data to test the full lifecycle.

  1. Create a synthetic tenant in the approved region.
  2. Encrypt and decrypt with the application identity.
  3. Attempt wrong-tenant, wrong-region, and support-role access.
  4. Rotate and disable the key, then inspect safe failure.
  5. Back up and restore with separate recovery identity.
  6. Inspect logs, queues, aliases, labels, and endpoints for leakage.
  7. Review owner, administrator, grants, and emergency approval.

The conclusion should state which key actions are proven, which operations remain application-enforced, and which regional or transfer questions are open.

Use a lifecycle matrix for each key class. Record owner, administrators, services, regions, rotation, grants, backup, restore, disable, destruction, emergency access, audit, and cost. Review it after adding a data store or recovery copy. A key that is regional while its backup or service identity is global does not satisfy the intended boundary.

Test service identity and regional endpoint together. A missing grant should deny without returning data. A wrong region should fail before a write. A disabled key should alert and stop safely. A rotated key should preserve approved reads for old records and use the new key for new records. A restore should not grant the application broad key administration.

Keep labels, aliases, log fields, and error messages free of sensitive content. Generic conversion records stay limited to approved event type, time, currency, value, and opaque reference. Do not place patient, contact, service, treatment, or clinical details into key metadata. See logging retention and redaction for the secondary evidence path.

Price key storage and operations as estimates, then add rotation, grants, backups, logs, endpoints, support, and proof work. Recheck current pricing and location guidance before a new region or tenant is added. Document exceptions rather than silently sharing a key across zones.

Frequently asked questions

Should each region have a separate key?

Choose from the data and recovery boundary, access roles, deletion, and operational burden. A regional design often benefits from regional keys, but the exact topology needs evidence.

Does encryption establish compliance?

No. It is one technical control. Authorization, risk analysis, agreements, logging, backups, incident response, and minimum necessary use remain separate.

What is the first KMS test?

Encrypt and decrypt synthetic data through the normal role, then deny wrong region, wrong tenant, support, expired identity, and disabled-key paths. Inspect logs and restore.

Why do regional endpoints matter?

They can help constrain control-plane access and resource location where supported. They do not automatically constrain application routing, logs, backups, support, or data exports.

References

Cloud Build and Artifact Registry Costs for Deployments

Short answer: Cloud Build and Artifact Registry costs should be separated from application traffic and modeled from build minutes, image storage, retention, transfer, and deployment frequency. As of 2026-08-15, Google Cloud publishes pricing for Cloud Build, Artifact Registry, and Cloud Run. A low build bill does not prove image governance, secret handling, regional policy, or deployment safety.

GCP service fit and regional boundary

Build infrastructure supports a deployment but does not make the application approved. Cloud Build Pricing describes build-minute inputs, Artifact Registry Pricing describes artifact storage and transfer, and Cloud Run Pricing describes runtime inputs. Use these pages to model deployment cost and then review project, region, identity, secrets, logs, and source controls.

Keep production artifacts in an approved repository and region. Decide whether images, build logs, caches, provenance records, and rollback versions are protected data or operational metadata. Do not put patient, appointment, service, click, or conversion records into build arguments, image layers, test fixtures, logs, or commit messages.

Use separate projects or repositories for development and production where the risk analysis requires it. A build identity should be able to publish an image without reading production data. A deployment identity should pull the approved digest without changing source or artifact policy. Retention should be deliberate, not an accidental result of every deployment.

Cost or control Question Evidence
Build How many minutes, workers, and retries run? Build history and estimate
Artifact How many images, layers, tags, and regions remain? Repository inventory
Runtime What deployment traffic and resources follow? Cloud Run estimate
Governance Who can publish, deploy, delete, or restore? Role review and test

Compare Cloud Run migration, logging retention, and regional KMS keys.

Request, data, key, and identity path

Keep customer data out of the build path unless the contract and control design explicitly require it. Use synthetic fixtures for tests. Build from source, inject secrets at runtime through approved mechanisms, and prevent environment snapshots or error output from revealing values.

Deployment identity should verify image digest, project, region, service account, and configuration before release. A tag can move; a reviewed digest gives a more stable release reference. Rollback should select an approved earlier artifact without restoring old protected data into a build log or test environment.

If an application sends a generic conversion event, keep its approved event type, time, currency, value, and opaque reference outside build logs. Never send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising systems or CI telemetry.

source review
  -> isolated build identity
  -> artifact repository and digest
  -> deployment approval
  -> Cloud Run service and runtime secrets
  -> regional logs and rollback record

Jobs, audit, backup, and failure handling

Build failures can become data leaks when logs capture too much. Test failed dependency install, secret access, test assertion, deployment, rollback, and artifact pull. Inspect build logs, caches, test reports, image layers, and notification payloads. Remove request data from fixtures and redact error output.

Audit source change, build, artifact publish, deployment, rollback, deletion, restore, role change, and approval. Keep audit events minimum necessary. Build metadata can include branch and commit references without including customer data. Use separate roles for developer, builder, publisher, deployer, and administrator.

Artifact retention is an operational decision. Keep enough versions to recover and investigate, then delete unneeded images and layers according to policy. Test deletion, legal hold, backup, and restore. A repository with many stale images increases both cost and review surface.

Regional resources need a location test. Verify repository, build worker, logs, keys, runtime, and backups. A global build trigger may be acceptable when it carries no protected data, but document the control-plane path and remote operator access.

Cost and proof gate

Model deployment cost from frequency and retention, not traffic alone. Use Cloud Build Pricing for build minutes, Artifact Registry Pricing for storage and transfer, and Cloud Run Pricing for runtime. Add logs, keys, secrets, DNS, support, egress, and regional duplication. Label estimates with workload, region, retention, and date.

  • Count builds, retries, workers, and average duration.
  • Count images, tags, layers, regions, and retention.
  • Separate deployment traffic from application traffic.
  • Test identity, digest, rollback, secret, and log boundaries.
  • Recheck current pricing before quoting.

Deployment proof checklist

Approve the pipeline only after a synthetic release passes.

  1. Build from a reviewed source change with synthetic fixtures.
  2. Inspect logs, test reports, caches, and image layers for data leakage.
  3. Publish an immutable artifact reference with the least-privilege identity.
  4. Deploy to the approved region and verify service configuration.
  5. Roll back and restore the previous approved artifact.
  6. Delete an unneeded artifact and verify retention evidence.
  7. Recalculate build and storage estimates.

The final record should state what the pipeline proves and what it excludes. Build and registry controls strengthen release evidence; they do not establish application compliance.

Artifact governance should include a release inventory: source revision, build identity, worker, dependencies, image digest, project, region, deployment identity, runtime secrets, and rollback owner. Keep test fixtures synthetic and prevent customer data from entering image layers or build logs. A release can be reproducible without carrying a protected record through the pipeline.

Retention should match recovery and investigation. Keep enough approved versions to roll back, then delete old images, tags, layers, caches, logs, and exports according to policy. Review legal hold and customer offboarding separately. A repository that grows without ownership creates cost and access risk even when application traffic is low.

Run a failed build and a failed deploy. Inspect error output, test reports, notifications, artifact permissions, secret references, and rollback. Then run a synthetic production smoke check. The Cloud Run migration review explains why a running container is only one part of the release proof.

Cost estimates should state build frequency, average duration, retries, worker type, artifact count, image size, layer reuse, retention, transfer, region, and runtime. Recalculate after release cadence or image architecture changes. Do not treat a free build allowance as a permanent price or a security control.

Frequently asked questions

Are build minutes the main deployment cost?

Not always. Image storage, layers, retention, transfer, logs, keys, runtime, and regional resources can matter. Model each line with current provider pricing.

Should protected data be used in CI fixtures?

Use synthetic data by default. If a customer-approved exception exists, document the contract, controls, access, retention, and deletion before placing it in a build path.

Does an image digest prove a safe release?

It gives a stable artifact reference. The release still needs source review, secret separation, deployment identity, region, runtime authorization, logs, rollback, and data tests.

What should be rechecked before a cost quote?

Recheck build rates, artifact storage and transfer, Cloud Run rates, regional multipliers, retention, build frequency, and exclusions. Label the result as a dated estimate.

References

Cloud SQL High Availability: Cost and Production Tradeoffs

Short answer: Cloud SQL high availability should be priced as an uptime and recovery decision, not as a simple instance multiplier. As of 2026-08-15, Google Cloud publishes Cloud SQL pricing, operational guidelines, and covered-product scope. A single-zone price can be a useful reference, but it does not prove production availability, backup recovery, tenant isolation, or contract readiness.

GCP service fit and regional boundary

HA is justified by recovery requirements, not by the word healthcare alone. Cloud SQL Pricing describes instance, storage, and availability cost inputs. Cloud SQL Operational Guidelines provide production considerations and limitations. Google Cloud’s HIPAA page defines provider scope and shared responsibility. Together they support a planning comparison, not an automatic production recommendation.

Write the recovery objective first: acceptable downtime, data-loss window, restore source, operator, region, and tested procedure. Then compare single-zone reference pricing with HA and any required replicas. A lower monthly estimate may be unsuitable if it cannot meet the customer’s recovery contract.

Keep the location boundary explicit. Database, Cloud Run, files, keys, logs, queues, backups, and support access should follow the tenant home region. HA inside an approved geography can be different from cross-region replication. Do not make a region claim based only on a database setting.

Dimension Single-zone reference HA production question
Compute One instance path What capacity and failover resources are required?
Availability More interruption exposure What failure is covered and tested?
Recovery Backup and restore procedure What is the target time and data-loss window?
Cost Lower reference floor What fixed and variable resources are added?

Compare Cloud SQL RLS, Firestore proof, and regional Cloud Run deployment.

Request, data, key, and identity path

High availability does not change authorization. Authenticate, resolve membership and home region, authorize the request, and then query the database. Test failover and connection retry without losing tenant context. A reconnect that uses a broad role or stale session can create a security failure during an availability event.

Use database-enforced policies where appropriate and keep application membership checks. Separate application, migration, report, support, backup, and restore identities. Verify that failover preserves key access, audit, logs, backups, and region policy.

Keep data minimum necessary. A generic conversion record may use approved event type, time, currency, value, and opaque reference. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising systems. HA does not authorize external disclosure.

request -> membership and region
        -> HA database endpoint
        -> tenant policy and query
        -> redacted audit
        -> backup and restore evidence

Jobs, audit, backup, and failure handling

Measure both planned failover and unplanned failure. Run a synthetic workload through restart, failover, connection retry, transaction rollback, backup, restore, and regional restriction. Observe query completion, duplicate writes, queue behavior, logs, alerts, and tenant authorization.

Backups are not a substitute for HA. HA may reduce interruption, while backups address corruption, deletion, and recovery. Test a restore into an isolated approved location, reapply keys and roles, and verify tenant access before reading. Record restore duration and any manual step.

Audit failover, role change, export, restore, support, key use, and policy change. Do not log full records. Ensure monitoring and alerting do not create a global data path. A working database connection says nothing about whether logs or backups comply with the same region policy.

Scheduled jobs can affect both cost and reliability. Inventory reports, cleanup, queues, health checks, and migrations. A job that retries after failover may duplicate writes or keep an instance active. Test idempotency and record the workload assumption.

Cost and proof gate

Use three scenarios: reference single-zone, required HA, and incident recovery. Cloud SQL pricing is volatile. Include instance class, edition, storage, backups, traffic, logs, keys, monitoring, support, and regional resources. Label estimates with date, region, utilization, and exclusions.

  • Do not use single-zone price as a production promise.
  • Price backups and recovery separately from HA.
  • Include connection, job, log, and key operations.
  • Measure failover, restore, retry, and duplicate-write behavior.
  • Reopen operational guidelines before launch.

HA proof checklist

Approve the production floor only after an observed failure test.

  1. Document uptime and recovery objectives.
  2. Run normal and burst synthetic requests.
  3. Trigger planned failover and observe authorization and transaction behavior.
  4. Simulate connection loss, retry, duplicate event, and rollback.
  5. Restore a backup and verify region, key, role, and tenant policy.
  6. Inspect logs, alerts, support, and export paths.
  7. Recalculate current price assumptions and record owner approval.

Keep the decision honest: HA can improve availability, but it does not create tenant isolation or legal approval. Those are separate gates.

Build the HA decision around a failure table. List instance failure, zone failure, connection loss, transaction rollback, storage growth, key outage, backup corruption, operator mistake, and regional disaster. For each, name expected behavior, recovery target, data-loss tolerance, owner, evidence, and cost. A high-availability flag is only one row in that table.

Do not compare a production HA configuration with a development single-zone configuration as if they supplied the same service. Use the single-zone row to understand a lower reference floor, then add availability, backups, monitoring, support, testing, and recovery. If a customer contract requires a target not met by the reference configuration, it is not an acceptable production option.

Test tenant context through failover and reconnect. A connection pool can retain stale state, while a retry can repeat a write. Use synthetic tenants and inspect database policies, logs, queue messages, and audit records. The logging retention review keeps the evidence path visible when the database fails over.

Refresh the estimate when region, edition, instance, storage, schedule, traffic, or tenant count changes. State taxes, support, transfer, and engineering exclusions. Cloud cost is a planning input; recovery and security evidence are separate acceptance gates.

Frequently asked questions

Is a single-zone Cloud SQL price enough for production planning?

It can be a reference, not a conclusion. Compare recovery objectives, availability, backups, support, and operational risk before selecting the production configuration.

Does HA replace backups?

No. HA addresses some availability failures. Backups and restore address deletion, corruption, retention, and recovery. Test both.

Can HA cause security issues?

Failover and reconnect paths can expose stale tenant context, broad roles, duplicate writes, or unreviewed logs. Test those paths with synthetic tenants.

What should a price estimate state?

State region, edition, instance, availability, storage, backup, traffic, logs, keys, support, utilization, exclusions, and retrieval date. Label it as an estimate.

References

Cloud SQL PostgreSQL and Row-Level Security for Tenants

Short answer: Cloud SQL PostgreSQL row-level security can provide a database-enforced backstop for tenant access, but it does not replace server-side membership, role design, migrations, reports, backups, or support controls. As of 2026-08-15, Google Cloud documents Cloud SQL editions, covered-product scope, and operational guidance. Test the policy under every application and privileged path before making a stronger claim.

GCP service fit and regional boundary

Cloud SQL is useful when the workload needs relational behavior and an enforceable database policy layer. Google Cloud’s Cloud SQL Editions page describes editions and capabilities, while the HIPAA page sets provider scope and shared responsibility. Operational guidance describes production considerations. These sources support a technical candidate review, not a deployment guarantee.

Start with the tenant contract: every row belongs to a tenant, every request has a trusted membership, and a database session receives a server-derived tenant context. The policy should deny rows when the context is missing, not return all rows by default. The application still checks membership, role, and region before opening the transaction.

Regional design remains separate. Keep Cloud SQL, Cloud Run, files, keys, logs, queues, backups, and support paths in the approved home zone. A database policy cannot stop an export job, backup operator, or global log sink from crossing a boundary.

Layer Control Proof
Application Membership and role check Wrong-tenant request denial
Database Row policy on tenant context Missing and changed context tests
Operations Admin, report, backup, and restore roles Privileged-path review
Region Data and recovery location Resource and restore evidence

Compare RLS versus application filters, Firestore Rules and Admin SDK, and Cloud SQL high availability cost.

Request, data, key, and identity path

Set tenant context only from trusted server-side membership. Do not derive it from a browser parameter or an unverified JWT claim. The server authenticates, resolves membership and home region, begins a transaction, sets a local tenant context, and performs the query. The policy should fail closed when that context is missing.

Connection pooling needs a focused test. A session setting left behind by a prior request can expose the wrong tenant, while a missing setting can expose no rows or, in a weak policy, all rows. Use transaction-scoped context where possible, reset state, and test concurrent requests with synthetic tenants.

Keep stored data minimum necessary. A generic conversion record may use approved event type, time, currency, value, and opaque reference. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising systems. RLS protects records in the database, not an external disclosure.

authenticated request
  -> membership and home region
  -> transaction-scoped tenant context
  -> application query plus row policy
  -> redacted result and audit event

Jobs, audit, backup, and failure handling

RLS proof must include every identity that can connect. Test ordinary application role, report role, migration role, support role, backup and restore role, and database administrator. A privileged role may bypass row policies by design, so its use needs separate approval, logging, and operational limits.

Run wrong-tenant reads and writes, missing context, changed context, connection reuse, batch reports, exports, direct SQL, migrations, and restore. Use two synthetic tenants and record which layer denied each operation. A successful web request proves only one route.

Audit policy changes, role grants, context-setting failures, exports, restores, support access, and administrative reads. Keep full row data out of logs. Backups and restored databases need policy installation and role review before any application read. Test deletion and retention of test copies.

Operational guidance and availability choices affect recovery. A single-zone development setting may be a cost reference rather than a production decision. Test backup, restore, failover, migration, and key access under the selected edition and region.

Cost and proof gate

Price Cloud SQL with the availability and proof the workload actually needs. Google Cloud pricing can change by edition, instance, storage, backups, network, and region. Add Cloud Run, logs, keys, secrets, and support. Mark estimates with date and assumptions. Do not use a small instance estimate to imply production suitability or legal sufficiency.

  • Choose edition and availability from recovery objectives.
  • Implement application membership and database policy together.
  • Separate privileged roles and review bypass paths.
  • Measure connection pool, query, report, backup, and restore behavior.
  • Recheck current Cloud SQL documentation before production.

RLS proof checklist

Require a negative test that would expose a missing policy.

  1. Create records for two synthetic tenants.
  2. Read and write as each tenant through the application.
  3. Remove tenant context and confirm denial or empty scope.
  4. Change context and confirm the wrong tenant is denied.
  5. Test pooled connections, reports, exports, migrations, support, backup, and restore.
  6. Review roles that can bypass policies.
  7. Inspect logs, key access, locations, and incident evidence.

State the result precisely: row policy provides a database backstop for tested roles and queries; membership and privileged operations remain separate controls. That is stronger and more useful than calling the database universally isolated.

Policy design should be reviewed beside schema and connection behavior. Name the tenant column, context source, transaction boundary, policy for read, insert, update, and delete, and behavior when context is absent. Review views, functions, indexes, reports, migrations, and background workers. A new database caller is a new authorization path, even if it uses the same table.

Run concurrency tests with two synthetic tenants using a connection pool. Start requests close together, switch tenant context, fail one transaction, retry another, and inspect results. Then test a report role, migration role, support role, backup restore, and direct connection. Capture the role and context for every result. Do not accept an RLS claim based only on a static policy review.

RLS can support a strong database backstop, but it should be combined with minimum necessary data, audit, key, log, backup, and offboarding controls. A generic conversion payload remains a separate approval surface. Do not use a database query to justify sending patient name, email, phone, hashed identifier, service or treatment detail, or clinical text to an advertising destination.

Cost proof should include edition, instance, storage, backups, logs, keys, network, availability, support, migration, and test environments. Recheck current provider guidance when the database version or edition changes. Keep the acceptance sentence precise: tested roles and queries are protected by policy; untested privileged paths remain open risk.

Frequently asked questions

Does RLS replace application tenant filters?

No. Keep application membership and tenant checks. RLS is a backstop that can reduce the impact of a missed filter, but privileged roles, exports, reports, backups, and restores need separate controls.

What is the connection-pool risk?

A session can retain a prior tenant context or omit the current one. Use transaction-scoped context, reset state, and run concurrent synthetic tests across tenants.

Can an administrator bypass RLS?

Some privileged roles may have broader authority. Inventory those roles, restrict use, log access, and test support, migration, backup, and restore paths separately.

What should be checked before production?

Verify edition, region, availability, keys, backups, roles, application checks, row policy, queries, reports, exports, restore, logging, and the customer contract and counsel review.

References

Why Firestore Location Is a One-Time Architecture Decision

Short answer: Firestore database location is a one-time architecture decision because the selected location cannot simply be changed after creation. As of 2026-08-15, Google Cloud documents Firestore locations and covered-product scope, while the European Commission describes international-transfer safeguards. Choose tenant home zones before onboarding, and treat a region move as an export, import, approval, and deletion project.

GCP service fit and regional boundary

Choose Firestore location before creating the production database. Google’s Firestore Locations page describes available regional and multi-region choices and the consequences of the database location. Google Cloud’s HIPAA page provides provider scope and shared-responsibility context. The European Commission’s transfer guidance matters when EU data or remote access crosses the European Economic Area. None of these sources approves a particular tenant deployment.

Make home region a control-plane fact: tenant ID, region, deployment state, and billing reference. Keep patient, appointment, service, click, and conversion data out of that global record. Assign the region through an authorized server workflow before the first protected write, then reject changes through ordinary application paths.

Match Cloud Run, files, keys, logs, queues, backups, workers, and support policy to the same zone. A database in Europe with a globally replicated log or support export still has cross-border paths. A multi-region database may solve availability but conflict with a contract that promises one home region. The decision must name the requirement being served.

Decision Effect Required evidence
Location Sets database geography and migration path Tenant onboarding record
Service Must route to matching regional resources Route and resource inventory
Recovery Backups and restore need approved geography Restore drill and deletion check
Access Remote support may create transfer issues Role, contract, and transfer review

Compare Cloud Run home zones, Firestore database proof, and regional key design.

Request, data, key, and identity path

Route by immutable server configuration, never by client-selected location. Authenticate caller, resolve membership, load tenant home region, select the correct Firestore database or regional service, and authorize the operation. A request that supplies another region should fail before a read or write.

Use minimum necessary data in the regional store. A generic conversion record can contain an approved event type, time, currency, value, and opaque reference. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising systems. Region does not make a prohibited payload acceptable.

Keep keys, secrets, logs, backups, and workers in the same location policy. The Admin SDK or a server identity can bypass client rules, so membership and tenant authorization must remain explicit. Support and restore roles need separate approvals and audit. The application should expose no route that changes a tenant’s home region as a side effect.

authorized onboarding
  -> immutable tenant home region
  -> Firestore database created in chosen location
  -> regional service and key path
  -> server membership check
  -> protected document operation

Jobs, audit, backup, and failure handling

Immutability changes how failures are repaired. A wrong initial location may require export and import, data deletion verification, contract review, and a new database. Test onboarding rejection, wrong-region routing, backup, restore, export, support access, and deletion with synthetic tenants. Do not use a production move as the first location test.

Inspect scheduled jobs and queues. A background worker may read from a regional database and write to a global analytics destination. Logs and traces may use a default location. Key operations may be administered from another country. Record those paths and ask counsel whether remote access or transfer mechanisms are required.

Audit location assignment, attempted changes, exports, restores, support access, key changes, and privileged Admin SDK reads. Keep audit events minimum necessary. Retain documentation according to risk and contract; do not retain full records merely because the location cannot be changed.

Back up synthetic data, restore within the approved zone, inspect key and authorization behavior, and delete the test copy. If disaster recovery requires another geography, document that as a separate approved transfer design rather than hiding it under availability terminology.

Cost and proof gate

Location multiplies fixed cloud and operational decisions. Firestore Pricing should be rechecked for regional rates, reads, writes, indexes, storage, backups, and traffic. Add Cloud Run, logs, keys, queues, support, and regional duplication. Label estimates with date and workload.

  • Choose region before database creation.
  • Record tenant home region as immutable server state.
  • Reject client-selected or post-write region changes.
  • Keep backup, key, log, queue, and support paths in scope.
  • Price a region move as a migration, not a configuration toggle.

Location decision checklist

Run the proof before accepting a tenant.

  1. List approved tenant jurisdictions and home zones.
  2. Create a synthetic database in the selected location.
  3. Deploy regional service, key, log, queue, and backup paths.
  4. Test membership, wrong-region request, Admin SDK, export, restore, and support.
  5. Attempt an onboarding location change and verify the gate.
  6. Document transfer, recovery, deletion, and contract questions.
  7. Obtain customer and counsel approval before protected writes.

If the product cannot preserve the location contract, stop the migration. A new database or a different engine may be cheaper than a later unplanned relocation.

Make location assignment part of an approval gate rather than an infrastructure default. The onboarding record should name tenant jurisdiction, home region, database location, Cloud Run region, files, keys, logs, queues, backups, support countries, and recovery options. Reject onboarding when those resources cannot be provisioned consistently. It is cheaper to stop before the first write than to discover a location mismatch during migration.

A location move is a data project. Define export scope, encryption, transfer mechanism, import validation, record reconciliation, old database deletion, backup cleanup, log retention, and customer approval. Test the procedure with synthetic data. Do not treat a new database as a simple setting change, and do not leave the old copy active after the new path is accepted.

Keep location facts current. Provider regions, features, pricing, endpoint behavior, and transfer guidance can change. Reopen the source pages before a new tenant or region is sold. The Cloud SQL HA cost review shows why regional and recovery choices affect both margin and proof work.

Frequently asked questions

Can Firestore location be changed later?

Treat the initial location as immutable for architecture planning. A move should be handled as a controlled export and import with approval, reconciliation, deletion, and contract review.

Does an EU database prevent all transfers?

No. Remote support, logs, backups, keys, queues, and exports can still cross borders. Map access and data paths and apply the appropriate transfer safeguards.

Can a user choose a preferred region?

A user may request service, but only an authorized server workflow should assign a home region. The value must become immutable before protected data is written.

Does a BAA settle location questions?

No. A BAA is a contract boundary. Region, data flow, support access, backups, security controls, and other jurisdictional obligations remain separate.

References

Firestore for HIPAA Data: What a Database Proof Must Test

Short answer: A Firestore database proof must test query completeness, transactions, tenant authorization, exports, backups, restore, location, and server-side access before a migration decision. As of 2026-08-15, Google Cloud publishes Firestore pricing, location behavior, and covered-product scope. A BAA or database label does not prove that application and administrative paths enforce the intended boundary.

GCP service fit and regional boundary

Firestore is a candidate only after the data contract survives a vertical-slice proof. Google Cloud’s HIPAA page describes covered products and shared responsibility. Firestore Locations describes database location. Firestore Pricing describes reads, writes, storage, indexes, and backups. Those sources support a bounded technical evaluation, not a claim that the database is approved for every application use.

List the actual queries: tenant membership, intake, booking state, idempotent outbox, report, export, and support lookup. Record query filters, ordering, indexes, transaction boundaries, expected cardinality, and failure behavior. A document model can be attractive for a Mongo-like workload, but a migration still changes query semantics, reports, constraints, and recovery.

Decide location before creating the database. Firestore location is a foundational choice. Match Cloud Run, files, keys, logs, backups, queues, and support policy to the tenant home zone. Do not add protected records to a database whose location or backup behavior is not approved.

Proof area Question Pass evidence
Queries Do all required reads return complete, scoped results? Query parity and negative tests
Writes Do transactions and retries preserve state? Idempotency and failure tests
Authorization Do server and client paths enforce membership? Denied access matrix
Recovery Can export, backup, and restore be controlled? Isolated restore evidence

Compare Firestore Rules and Admin SDK, Firestore location immutability, and Cloud SQL PostgreSQL RLS.

Request, data, key, and identity path

Server-side membership must authorize every protected read and write. Client Firestore Security Rules govern client SDK paths, but a server using Admin SDK or another privileged path still needs application membership checks. Resolve tenant and home region server-side. Do not trust a document path or client-supplied tenant field as proof.

Model documents so the authorization context is visible and testable. A tenant path can support a rule, but an export job, scheduled report, Admin SDK worker, backup, restore, and support tool may not use the client path. Test each identity and operation. A successful client read is not evidence for server-side access.

Keep the stored data minimum necessary. Generic event type, time, currency, value, and an opaque internal reference may support an approved conversion workflow. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising destinations. Store additional fields only when the customer contract and risk analysis justify them.

authenticated request
  -> server membership and home region
  -> Firestore query or transaction
  -> authorized document scope
  -> redacted audit and queue event

Jobs, audit, backup, and failure handling

Database proof needs adversarial paths. Create two synthetic tenants and run client reads, server reads, writes, updates, deletes, transactions, batches, reports, exports, backup, restore, and support actions. Attempt wrong-tenant path substitution, missing membership, expired identity, changed region, and a privileged Admin SDK call.

Transactions and retries require measured behavior. Run a failure after one write, a duplicate event, a partial batch, an unavailable dependency, and a timeout. Compare resulting documents with the source contract. Confirm that idempotency keys do not leak across tenants or create duplicate outbound events.

Inspect logs, indexes, errors, backup metadata, and exports. Do not copy full documents into logs. Test restore in an isolated project or database, reapply membership, verify location and keys, and delete the synthetic copy. A provider backup feature is not proof that the restored application is authorized.

Cost is part of proof. Reads, writes, index entries, storage, backups, traffic, and named databases can change the estimate. Run representative queries and record current pricing assumptions. Do not use free-quota arithmetic as a production guarantee.

Cost and proof gate

Choose Firestore only when query and tenancy proof pass together. Use Firestore Pricing for current request, storage, index, and backup inputs. Add Cloud Run, logs, keys, secrets, backups, support, and regional duplication. Label numbers as estimates with workload, region, and date.

  • Freeze source query and transaction contracts.
  • Build one vertical slice with synthetic tenants.
  • Test client, server, Admin SDK, export, restore, and support roles.
  • Measure reads, writes, indexes, storage, backups, and retries.
  • Keep a PostgreSQL fallback if proof or margin fails.

Firestore proof checklist

Do not approve a database from a happy-path demo.

  1. Create synthetic tenant A and tenant B records.
  2. Run every required query and compare completeness with the current contract.
  3. Test wrong-tenant reads and writes through client and server paths.
  4. Run transaction, batch, retry, export, backup, and restore tests.
  5. Inspect Admin SDK roles, logs, keys, location, and support access.
  6. Measure current cost assumptions and record the date.
  7. Obtain counsel and customer approval before protected migration.

The final decision should name missing queries, unproved privileged paths, and any data-location exception. If the database cannot prove the contract, choose another design or defer the migration.

Build the proof from the current source contract. List each collection, document, index, query, transaction, report, export, backup, restore, role, and event. For every item, write expected result for tenant A, expected denial for tenant B, retry behavior, audit field, location, retention, and cost input. If a query is not expressible or requires a broad Admin SDK path, mark it as a migration gap.

Run parity checks with synthetic data that includes empty results, duplicate events, concurrent updates, deleted records, pagination, time ranges, report filters, and failed dependencies. Compare record counts, state transitions, and idempotency with the existing contract. A query that works for one document can fail when an index, report, or export changes the scope.

Review Firestore Rules and server identity independently. Client tests should prove Rules behavior. Server tests should prove membership, tenant, region, role, and collection scope. Restore tests should install policies before reading. Support and export tests should use separate roles. Do not let a provider feature list substitute for these checks.

Cost proof should use measured representative operations. Count reads, writes, index entries, storage, backups, retries, exports, logs, keys, Cloud Run calls, and regional resources. Recalculate when query shape or tenant count changes. Keep a PostgreSQL fallback for contracts that require relational constraints or database-enforced row policy.

The final gate should name what passed, what failed, what remains application-enforced, and which legal or contract question is open. It should not call Firestore compliant because a sample read and write succeeded.

Frequently asked questions

Do Firestore Rules protect Admin SDK reads?

Do not assume that. Server-side Admin SDK access is a privileged application path and still needs membership, tenant, role, and export controls.

What is the most important migration test?

Run a complete vertical slice with real query shapes, transactions, wrong-tenant denials, retries, reports, exports, backups, and restore. A single document demo is not enough.

Does Firestore pricing prove the database is affordable?

No. Add indexes, storage, backups, logs, keys, traffic, regional resources, support, and migration work. Recalculate using measured queries and current provider rates.

When should PostgreSQL be tested?

Test it when the workload needs relational reporting, constraints, transactions, or database-enforced row policies. Compare contracts and proof results rather than choosing from price alone.

References

Cloud Run Custom Domains: When a Load Balancer Matters

Short answer: A Cloud Run custom domain decision should compare direct domain mapping with a production load-balancer path against region, ingress control, certificates, logging, failover, and fixed cost. As of 2026-08-15, Google Cloud documents custom-domain options, Cloud Run pricing, and covered-product scope. Neither a working DNS record nor a load balancer proves that the application handles protected data safely.

GCP service fit and regional boundary

Cloud Run custom-domain options are deployment mechanisms, not compliance boundaries. Google’s custom-domain documentation describes domain mapping and other ingress options. Cloud Run pricing supplies request and resource cost inputs, and the Google Cloud HIPAA page describes provider scope and shared responsibility. Compare those facts with the application’s need for WAF, centralized policy, regional routing, certificates, logs, and operational ownership.

Direct mapping may be adequate for a narrow route when its documented limitations are acceptable. A load balancer may be justified when the design needs centralized ingress, routing, policy, or a controlled origin. The choice must be current because product status, regional availability, and pricing can change. Record the option, date, region, and unresolved feature question.

Set the region before binding a domain. The hostname should route by tenant configuration and home region, not by patient IP geolocation or a client-selected parameter. Keep backend, database, files, keys, logs, queues, backups, and support access aligned with that region.

Ingress question Direct mapping Load balancer path
Domain binding Documented mapping flow Forwarding rule and backend configuration
Policy Cloud Run and app controls Central edge policy plus app controls
Cost Mapping and service assumptions Forwarding rule, traffic, and service assumptions
Proof Origin and route tests Edge, origin, failover, and route tests

For region design, see Cloud Run home zones. For runtime migration, read bounded Cloud Run migration, and for protected service scope compare Google Cloud covered products.

Request, data, key, and identity path

The domain path must preserve identity and tenant checks. Trace DNS, certificate, edge or mapping, Cloud Run service, authentication, membership, database, key, log, and backup. Test direct service URLs and alternate hostnames. A load balancer cannot protect an origin that remains publicly reachable unless the configuration and application enforce the intended path.

Do not place tenant or region authority in the hostname alone. The server should resolve membership and immutable home region, then reject a mismatch. A public route can be recognizable by host while still requiring an application-level identity check.

Minimize request data. A generic conversion record may use approved event type, time, currency, value, and an opaque internal reference. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising systems. An ingress feature does not change that data rule.

DNS and certificate
  -> mapping or load balancer
  -> Cloud Run origin
  -> membership and tenant check
  -> approved database and regional logs

Jobs, audit, backup, and failure handling

Test edge failure and origin failure separately. Use expired certificates, wrong host, missing route, WAF or policy denial, direct-origin request, service timeout, backend error, and retry. Inspect error responses, access logs, traces, and queue records for unnecessary request content.

Audit edge policy changes, DNS changes, certificate changes, deployment changes, identity decisions, exports, restores, and support access. Keep logs minimum necessary. A centralized load balancer can simplify review, but it can also create a global logging path or a second region that needs approval.

Backups and support are independent of ingress. Verify that a support engineer cannot bypass tenant membership by calling a backend endpoint, and that restore data is only readable after the application policy is installed. Test a domain migration or rollback without leaving two active origins.

Use synthetic tenants and records. Verify that each home region routes to its intended service and data store, and that a wrong-region host is denied or redirected only through an approved policy. Record observed behavior and date it.

Cost and proof gate

A load balancer has a fixed cost floor that direct mapping may avoid, but cost is not the only axis. Use Cloud Run pricing and current ingress documentation to estimate forwarding rules, traffic, service requests, certificates, logs, monitoring, DNS, and regional duplication. Mark estimates with region and date.

  • List required ingress features and limitations.
  • Confirm current regional and product status.
  • Check direct origin reachability and alternate hostnames.
  • Include edge and backend logs in the data map.
  • Run domain, identity, region, failure, export, and restore tests.

Custom-domain proof checklist

Approve one ingress option only after the route and bypass tests pass.

  1. Bind a synthetic hostname in the approved region.
  2. Verify certificate, TLS, expected route, and tenant membership.
  3. Call the direct origin and alternate hostname and confirm the intended denial.
  4. Trigger edge and backend failures and inspect redacted logs.
  5. Test regional routing, queue, backup, restore, and support paths.
  6. Measure fixed and variable cost assumptions.
  7. Record provider status and legal questions for review.

A custom domain is a presentation and routing feature. The final decision should say what it controls and what remains application, database, identity, and contract work.

Ingress review should end in an explicit origin policy. Name the public hostname, expected edge, Cloud Run service, region, certificate owner, allowed methods, authentication, WAF or policy controls, and direct-origin behavior. If the origin must be private or reachable only through the edge, test that requirement instead of inferring it from DNS.

Compare domain mapping and load balancer options against operational evidence. A load balancer may centralize routing and policy while adding forwarding-rule, traffic, log, and regional costs. Direct mapping may reduce infrastructure but have limitations that matter for production. Product status and pricing are volatile, so date the decision and recheck before release.

Run a controlled hostname with synthetic data. Test normal route, wrong tenant, expired identity, certificate or DNS failure, direct origin, alternate host, backend timeout, rollback, logs, backup, and support. The same route should not expose a broad administrative endpoint because it happens to be behind a working certificate.

Keep customer and counsel review separate from technical proof. The edge proves a routing and policy behavior. It does not decide whether a data path, region, contract, or advertising event is permitted. See covered-product review for the provider and customer boundary.

Frequently asked questions

Is a load balancer required for every Cloud Run custom domain?

No universal answer applies. Compare documented mapping options, required edge controls, production routing, region, cost, and operational proof. Recheck current Google Cloud documentation before choosing.

Does a load balancer protect the backend?

Only if origin access and application authorization are configured and tested. An alternate direct origin, privileged job, or support path can bypass edge policy.

What costs should be estimated?

Include Cloud Run requests and resources, forwarding rules, traffic, certificates, DNS, logs, monitoring, keys, backups, and regional duplication. Label values as estimates with date and region.

What should be tested first?

Run a synthetic domain request, wrong-tenant request, direct-origin request, certificate or route failure, log inspection, regional route, backup, restore, and support access test.

References

Cloud Run Regions and Immutable Tenant Home Zones

Short answer: Cloud Run should be deployed in a tenant home region that is assigned by trusted server policy, with storage, keys, backups, logs, queues, and support procedures aligned to that region. As of 2026-08-15, Google Cloud documents Cloud Run locations, Firestore locations, and organization policies for resource locations. A regional service is not proof that every downstream copy stays regional.

GCP service fit and regional boundary

Cloud Run region selection is an architectural decision, not a complete residency guarantee. Google Cloud’s Cloud Run Locations page describes available deployment locations. Firestore Locations describes database location choices, and resource-location organization policy can constrain where resources are created. Use these documents to establish technical controls, then verify every data path and contract.

Choose tenant home region before onboarding. The control plane can hold opaque tenant ID, home region, deployment state, and billing references. It should not hold patient, appointment, service, click, or conversion records. The application resolves membership and home region server-side. Browser geolocation or a client-provided region must never authorize access or route protected data.

Operate one pooled stack per approved active zone where the product and contract permit it. Keep Cloud Run, database, object storage, keys, secrets, logs, backups, queues, and workers in the same policy boundary. If a service has a global control plane or global endpoint, document what metadata crosses it and whether the customer permits that path.

Resource Regional rule Proof
Compute Deploy service in tenant home region Service location and route test
Data Use region-matched store and files Write and read inventory
Operations Keep logs, queues, backups, and keys aligned Configuration and restore test
Governance Block unapproved resource locations Organization policy denial

Compare this with Firestore’s one-time location decision, regional keys, and DynamoDB global table residency.

Request, data, key, and identity path

Route by trusted tenant configuration, not by client input. Authenticate the caller, resolve membership, read immutable home region, and select the regional endpoint or service. Reject a request that supplies a different region or tenant. Log the decision without copying the full request.

Keep the data payload minimum necessary. A generic conversion record can contain an approved event type, time, currency, value, and opaque internal reference only when the tenant and counsel approve the exact use. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising systems.

Regional keys and secrets should follow the data store. Deployment identity should not automatically read production data. Support and restore identities need separate approvals. If a job runs globally, either prove it carries no protected data or redesign it to execute inside the tenant home zone.

control plane
  tenant ID -> immutable home region
                    |
         regional hostname and service
                    |
       database, files, keys, logs, backups

Jobs, audit, backup, and failure handling

Regional promises fail in background systems first. Inspect scheduled jobs, queue destinations, dead letters, logging sinks, monitoring, error reports, snapshots, key replicas, support exports, and restore targets. A Cloud Run service can be regional while its logging or backup path is not. Verify actual resource location and access identity.

Use organization policy to block creation outside approved locations, then test the denial with a non-production service. Do not rely on policy alone: a resource may be created in an approved region and still call a global or foreign service. Test wrong-region writes, alternate hostnames, direct API calls, and job triggers.

Backups and restore need the same home-zone rule. Create synthetic tenants, back up, restore inside the approved region, verify keys and tenant membership, inspect logs, and delete the test copy. Test an attempted restore outside the zone and record the denial or approval process.

Incident response should identify who can contain a service, revoke a role, inspect logs, restore data, and notify the customer. Remote support access from another country may be a transfer or contract issue even if the database remains regional. Keep the legal analysis separate and route it to counsel.

Cost and proof gate

Every active region adds a fixed operational floor. Estimate Cloud Run, ingress, database, storage, logs, keys, secrets, backups, queues, DNS, and support per region. Label provider prices as estimates with region, workload, retention, and date. Do not assume three regions cost only three times request charges when fixed resources dominate.

  • Assign home region before protected onboarding.
  • Use organization policy to restrict resource locations.
  • Inspect global endpoint and support paths.
  • Test data, logs, keys, backups, and restore in region.
  • Recalculate price and recheck region availability before launch.

Regional proof checklist

Use one synthetic tenant per approved zone.

  1. Assign immutable home region on the server.
  2. Deploy service, store, key, queue, log, and backup in that region.
  3. Run normal, wrong-tenant, wrong-region, and alternate-host requests.
  4. Attempt resource creation outside policy and verify denial.
  5. Inspect actual locations and operator identities.
  6. Restore synthetic data and verify authorization before read.
  7. Record transfer and support questions for counsel.

The final claim should name the verified resources and remaining exceptions. A region setting alone does not establish a residency or legal conclusion.

Home-region assignment should be a controlled onboarding state transition. Before the first protected write, an authorized workflow validates customer jurisdiction, contract, region availability, resource template, key, backup, and support policy. After assignment, ordinary users and browser requests can read the region but cannot change it. A move requires export, import, reconciliation, deletion, approval, and an audit trail.

Test location using observed artifacts. Inspect resource metadata, database location, storage bucket, key ring, log bucket, queue, backup, and restore target. Check deployment and support identities. A policy file is useful, but a smoke test should prove that an unapproved resource creation or wrong-region request is rejected. Record exceptions explicitly.

Regional stacks can be pooled across tenants in the same approved zone, but pooled storage still needs tenant authorization. A region boundary does not replace a database policy, application membership, or support review. Use the Firestore location article when a database cannot be moved in place, and Cloud SQL RLS when row policy is a required backstop.

Include region activation in product economics. A new zone adds compute, ingress, database or document store, keys, secrets, logs, backups, monitoring, support, and testing. Provision it only after a tenant and contract require it, then run the synthetic proof before production.

Frequently asked questions

Can Cloud Run be deployed in one home region?

Yes, where the selected service and product plan support it, but the rest of the data path must match. Verify database, files, logs, keys, backups, queues, workers, and support access.

Can a browser choose tenant region?

No. Resolve membership and immutable home region from trusted server-side configuration. Browser input can request a route but cannot authorize a region or tenant.

Do organization policies prove residency?

No. They can block some resource locations. They do not eliminate global endpoints, service calls, logs, backups, support access, or application routing that creates another path.

When should a new region be activated?

Activate it when a contract and paying tenant need it, after a synthetic regional proof. Include fixed cloud, operations, recovery, support, and legal review costs.

References

Cloud Run for Next.js: A Bounded Healthcare Migration

Short answer: A bounded Cloud Run migration should move the current Next.js runtime first, prove domains, jobs, secrets, logs, identity, and scale behavior, then evaluate database replacement as a separate gate. As of 2026-08-15, Google Cloud publishes Cloud Run pricing and covered-product guidance. A successful container deployment does not prove tenant authorization, regional handling, backup, or a protected data design.

GCP service fit and regional boundary

Cloud Run is a plausible first migration target when the application can be containerized without changing the data contract. Google Cloud pricing describes request and resource charges, and its HIPAA page describes covered products and shared responsibility. Those sources support a bounded platform evaluation. They do not approve the application, database, jobs, region, or tenant model.

Begin with a deployment inventory: Next.js version, runtime assumptions, environment variables, build output, image, ingress, custom domain, scheduled jobs, queues, database calls, object storage, logs, monitoring, secrets, and backup. Mark each item as moved, retained, replaced, or unknown. A compute lift that silently keeps an unreviewed database bridge is not a complete protected-data migration.

Choose one non-production region and synthetic dataset. Prove container startup, scale behavior, health, request timeout, authentication, secret access, logs, deployment rollback, and custom domain. Keep the database contract stable while measuring runtime behavior. Only after that should the team compare Firestore, Cloud SQL PostgreSQL, or another store.

Phase Scope Exit evidence
Compute lift Container, ingress, runtime, secrets, logs Route and rollback test
Jobs Authenticated scheduler or queue triggers Least-privilege job test
Data proof One vertical slice in candidate databases Query, transaction, and tenant tests
Regional proof Tenant home zone and resource locations Location and denial evidence

Read Cloud Run regions and immutable home zones, then compare Firestore database proof and Cloud SQL PostgreSQL RLS.

Request, data, key, and identity path

The migration is complete only when the request path remains bounded. Trace client, domain, load balancer or mapping, Cloud Run service, identity, tenant membership, database, key, logs, queues, backups, and support. Do not allow browser values to choose tenant or region. Server-side membership must resolve the destination and access scope.

Inventory environment variables without printing values. Identify secret names, service identity, rotation, failure behavior, and deployment permissions. A production service should not inherit broad development secrets. A build identity should not automatically read application data. Store configuration and secret access evidence separately.

Keep the data contract minimum necessary. An approved generic conversion can include generic event name, time, currency, value, and an opaque internal reference only if tenant-specific counsel approval permits it. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising systems.

custom domain
  -> approved ingress
  -> Cloud Run service
  -> authenticated membership check
  -> retained database contract
  -> regional logs and backups

Prove that scheduled jobs and administrative endpoints use a separate identity. If the migration keeps a temporary data bridge, document the exact service, tier, region, contract, retention, and deletion gate. Do not carry protected data through an unverified bridge merely to make the container demo pass.

Jobs, audit, backup, and failure handling

Next.js deployment proof must include non-request paths. Replace unauthenticated cron calls with authenticated jobs, least-privilege identities, retries, and audit evidence. Test cold start, timeout, duplicate trigger, failed secret read, database outage, queue retry, and rollback. Inspect logs for request bodies, query data, stack traces, and secret references.

Cloud Run logs and monitoring should contain operational facts, not full booking records. Record principal, tenant, route, result, timestamp, and reason code where allowed. Review admin access, deployment changes, key use, export, restore, and support. Keep required documentation retention separate from indefinite application retention.

Backups should be tested before database cutover. Restore a synthetic slice, reapply membership and tenant controls, verify region and key, and delete the test copy. A container deployment does not transfer backup ownership from the old system. Add a migration checklist for old snapshots and bridge deletion.

Use a rollback plan that does not reintroduce an unapproved data path. Dual reads, shadow writes, or temporary queues need explicit retention and deletion. The safest first gate may be compute only with synthetic data, followed by a separate database proof. Do not call partial traffic a production migration.

Cost and proof gate

Cloud Run pricing is only one line in a migration estimate. Include requests, vCPU and memory, ingress, load balancer or domain method, logs, storage, keys, secrets, scheduler, queues, database, backups, traffic, support, and engineering verification. Label all figures as estimates with region, workload, and date.

Separate recurring cloud cost from migration work. The compute lift may be modest, while database replacement, query conversion, data backfill, regional controls, and cutover consume most engineering time. A low Cloud Run bill does not prove the migration is cheap or safe.

  • Run a container-only proof with synthetic data.
  • Prove domains, jobs, secrets, logs, identity, rollback, and alerts.
  • Keep database replacement behind a separate decision gate.
  • Measure resource usage under normal and burst traffic.
  • Recalculate current pricing before a commercial promise.

Bounded migration proof

Use a vertical slice and an explicit stop condition.

  1. Build and deploy the current application to a non-production Cloud Run service.
  2. Run a synthetic request through the intended domain and identity.
  3. Trigger every scheduled job with authentication and a least-privilege identity.
  4. Inspect logs, secrets, keys, queues, and backup paths.
  5. Test rollback, duplicate trigger, database outage, and failed secret access.
  6. Prove one database slice with tenant denial, transaction, export, backup, and restore.
  7. Record unresolved agreement, transfer, and legal questions before protected data.

The migration decision should state whether only compute moved, whether a bridge remains, and which data paths are still excluded. Keep the scope truthful until every gate passes.

Migration planning should include a compatibility inventory rather than a broad promise that the application is portable. List runtime APIs, image base, native modules, scheduled jobs, request limits, streaming behavior, custom domains, secrets, database connections, file uploads, background workers, logging, and health checks. Mark each item as proven, changed, or untested. A container that starts is only one line in that inventory.

Use a staged rollback. First prove the new service with synthetic traffic. Then route a controlled test hostname. Keep the old path available only under an approved and time-limited plan, and document which data it can still read or write. If dual writes are used, reconcile counts and idempotency and delete bridge records after the gate closes. Do not leave a hidden path because it is convenient during migration.

The database decision deserves its own acceptance sentence: Firestore is selected only if query completeness, transactions, tenant authorization, exports, backups, restore, and cost proof pass; otherwise evaluate Cloud SQL PostgreSQL. That keeps the compute lift from forcing a database choice. A migration can retain a temporary non-protected bridge only when its exact service, region, tier, agreement, and deletion plan are approved.

Security evidence should include build artifact, deployment identity, runtime identity, key and secret access, logs, jobs, backup, restore, support, and incident runbook. Test wrong tenant, wrong region, missing secret, failed database, duplicate job, rollback, and direct-origin access. The build and artifact cost review adds the release evidence that a runtime smoke test cannot provide.

Budget separately for container work, job conversion, ingress, database proof, data migration, regionalization, cutover, and ownership. Provider runtime pricing is an estimate; engineering verification is a separate cost. Recheck current pricing and product support before signing a commercial plan.

Frequently asked questions

Should the database move with Cloud Run?

Not necessarily. Separate compute lift from database replacement so runtime behavior, query semantics, tenancy, and recovery can be proven independently. A temporary bridge requires its own contract and control review.

Does Cloud Run pricing include the full migration cost?

No. It covers a provider billing input. Add ingress, logs, keys, secrets, jobs, database, backups, support, migration engineering, tests, and cutover work.

What is the first Cloud Run proof?

Deploy a synthetic application, run its intended route, authenticate jobs, inspect logs and secrets, test rollback, and verify that no unapproved database or region is used.

Does a covered product list authorize the migration?

No. It supports provider scope. Customer configuration, application controls, tenant isolation, contracts, risk analysis, and counsel review remain necessary.

References

How to Check Google Cloud HIPAA Product Coverage

Short answer: Google Cloud’s covered-product page can narrow which services may be considered for a protected workload, but it does not approve a project, region, application, tenant boundary, or data flow. As of 2026-08-15, Google Cloud documents product scope and regional endpoint controls, while HHS explains cloud shared responsibility. Review the provider list, agreement, service configuration, identity, logs, backups, and application controls together.

GCP service fit and regional boundary

A covered-product list answers only one question: whether a named Google Cloud product is in the provider’s stated scope. Google Cloud’s HIPAA Compliance page describes covered products and shared responsibility. HHS Cloud Computing and HIPAA guidance explains that a cloud provider can handle protected information under an appropriate agreement while the customer remains responsible for its configuration and use.

Record the exact Google Cloud organization, folders, projects, services, regions, endpoints, keys, logs, backups, workers, and vendors. A product can appear on a covered list while a selected feature, beta capability, region, or integration needs separate verification. Do not use the product list as a substitute for a data-flow diagram or risk analysis.

Set the regional policy before provisioning. A tenant home region should determine compute, database, object storage, keys, backups, logs, queues, and support procedures. A global control plane should contain only opaque tenant and deployment metadata. If a service uses a global endpoint, document whether that endpoint can create an unapproved access or data path.

Review layer Question Evidence
Provider Is the named product in the current covered list? Provider page and retrieval date
Agreement Is the correct agreement accepted and applicable? Agreement record and counsel review
Configuration Are project, region, feature, identity, and logs correct? Configuration snapshots
Application Are tenant, minimum necessary, and incident controls tested? Negative tests and runbook

Use what a BAA does not prove to keep the contract claim narrow. For region controls, compare Cloud Run home zones and regional KMS keys.

Request, data, key, and identity path

Map the customer-controlled path after confirming provider scope. Trace caller identity, membership, region, endpoint, compute, database, object store, key, queue, log, backup, and support access. Browser input cannot authorize a tenant or region. The server must resolve membership and home zone from trusted records.

Minimize every field. An approved generic conversion record may use generic event name, time, currency, value, and an opaque internal reference when the tenant and counsel approve the exact use. Do not send patient names, email addresses, phone numbers, hashed identifiers, service names, treatment details, or clinical text to advertising destinations.

Identity roles should reflect the data path. Separate application access, deployment, key administration, backup, restore, support, and audit review. HHS shared-responsibility guidance is a useful reminder that provider infrastructure does not replace customer authorization, workforce controls, audit, or incident response.

tenant membership
  -> immutable home region
  -> regional endpoint and workload
  -> authorized data operation
  -> approved key, log, and backup path

Test alternate hostnames, direct service endpoints, scheduled jobs, administrative APIs, exports, and restores. A public request that passes through the intended route does not prove that a privileged worker uses the same region and membership policy.

Jobs, audit, backup, and failure handling

Secondary systems often determine whether the product claim is true. Inspect scheduled jobs, queues, dead letters, logs, error reports, traces, backups, snapshots, keys, support exports, and test projects. Make sure failed operations return a safe error and do not copy a full request into an uncontrolled log.

Create synthetic tenants in each approved region. Run reads, writes, retries, exports, restore, support access, and wrong-tenant requests. Verify actual resource location, not only a project label. If the provider exposes regional endpoint or organization-policy controls, test both allowed and denied locations.

Keep audit evidence minimum necessary. Record principal, tenant, operation, decision, timestamp, and reason code. Review access changes, key policy changes, export, restore, and emergency access. Set retention from customer contract and risk analysis. A six-year documentation obligation does not mean every application payload belongs in an audit log for six years.

Incident handling should identify provider notice, customer notice, technical containment, restore, and evidence owners. Keep current rules separate from proposed changes and state the retrieval date for product lists, pricing, service behavior, and region claims.

Cost and proof gate

Covered products can still create very different operating floors. Estimate compute, database, ingress, backups, logs, keys, secrets, DNS, support, and three-region duplication separately. Mark prices as planning estimates with region, workload, retention, and date. Do not call the lowest cloud estimate a complete compliance budget.

  • Verify product and feature scope before provisioning.
  • Record agreement, project, account, and role boundaries.
  • Keep regional data and operational copies inside the approved policy.
  • Test denied tenant, region, export, restore, and support paths.
  • Reopen volatile provider pages before production or pricing claims.

Product coverage proof

Use a bounded non-production deployment to connect provider claims to customer evidence.

  1. List every service and feature in the intended data path.
  2. Check each against the current Google Cloud covered-product page.
  3. Record agreement scope, project, region, endpoint, identity, key, log, and backup.
  4. Run synthetic tenant and wrong-region tests.
  5. Review export, restore, support, and incident roles.
  6. Record open contract or legal questions for counsel.

The conclusion should state what Google Cloud documents, what the customer configured, what engineering tested, and what remains unresolved. Do not collapse those categories into a platform guarantee.

A useful coverage review has four columns: provider statement, customer configuration, observed test, and open question. For example, a covered product page can support the provider statement, a project and region policy can support configuration, a synthetic restore can support observation, and a counsel question can remain open. Never fill an open question with an assumption based on a product name.

Review control-plane and data-plane paths separately. A control plane may contain opaque tenant metadata while the data plane holds protected records. Deployment, billing, support, logging, monitoring, key management, and backups can touch both. Document which path is global, which is regional, and who can access each one.

Use a change trigger for rechecking sources: provider list change, new region, new feature, new subprocessor, price change, customer contract, incident, migration, or proposed rule. The retrieval date is part of the claim. If a fact cannot be reproduced, make it qualitative or remove it. The custom-domain review shows why an apparently small ingress choice can add a new control and cost path.

Before protected data, complete a synthetic proof that exercises tenant mismatch, region mismatch, secret failure, export, restore, support, and deletion. Preserve the result with the agreement and configuration record. The goal is a bounded statement about this deployment, not a permanent statement about Google Cloud.

Frequently asked questions

Does a covered-product list approve a project?

No. It supports a provider-scope statement. Project configuration, region, identity, data minimization, logs, backups, application controls, and agreements remain separate.

Does a Google Cloud agreement make an application compliant?

No. It defines a contract boundary. The customer still owns configuration, authorization, risk analysis, workforce access, incident response, and legal review.

What should be rechecked before deployment?

Recheck covered products, BAA or agreement terms, regions, endpoints, features, pricing, quotas, logging, backups, and any proposed rule or policy change. Record the date of each check.

What is the minimum useful proof?

Deploy a synthetic slice, test tenant and region denial, inspect logs and backups, restore in isolation, and review support and export paths. Preserve the evidence and open questions.

References