Skip to main content
compliance · gcp

Vertex AI resources encrypted with Google-managed keys only

resource types
8
rule IDs covered
8
severity
low

What does ZopNight detect here?

Vertex AI endpoints, models, indexes, feature stores, metadata stores and tensorboards, 8 resource types in total, are checked for an encryptionSpec.kmsKeyName. Where the discoverer records cmek=false, the resource uses Google-managed keys, and organizations mandating customer-managed encryption must recreate it with a Cloud KMS key.

Signal and threshold

How ZopNight evaluates Vertex AI resources encrypted with Google-managed keys only.
Field Value
Rule IDsRC-1341 · RC-1342 · RC-1343 · RC-1344 · RC-1345 · RC-1346 · RC-1347 · RC-1348
Categorycompliance
Severitylow
Metricnone — pure configuration read
Sourcevertex_security.go (VertexCMEKRule, one registration per type)

Eight resource types, one check

Every encryptable Vertex AI resource carries an encryptionSpec: endpoints, models, Vector Search indexes and index endpoints, both feature-store generations, metadata stores, and tensorboards. One parameterized rule registers once per type, 8 rule IDs in all, each asking the same question: is kmsKeyName set? The discoverer reduces the answer to a cmek stamp, and a recorded false means the resource’s data (model artifacts, embeddings, feature values, experiment metadata) is encrypted with keys Google manages and Google rotates, outside your revocation control.

CMEK is set at creation only

Google-managed encryption is not weaker cryptography; the compliance gap is control. CMEK routes encryption through a Cloud KMS key you own, which means your rotation schedule, your audit trail on every use, and, decisively for some regulators, your ability to disable the key and render the data unreadable. Vertex resources accept an encryptionSpec.kmsKeyName only at creation, so remediation is always recreate-and- migrate, never an in-place patch. That makes this finding cheapest to fix early, before an endpoint accumulates deployment history and traffic.

The service agent needs the key

CMEK fails at runtime, not at configuration time, when permissions are missing: the Vertex AI service agent for the project must hold the CryptoKey Encrypter/Decrypter role on the chosen key, in the same region as the resource. Grant it before recreating, or the new resource’s first operation fails with a KMS permission error.

Verify a resource’s encryption spec

Terminal window
gcloud ai endpoints describe ENDPOINT_ID --region us-central1 \
--format="value(encryptionSpec.kmsKeyName)"

Empty output is the Google-managed state; the same field exists on gcloud ai models, indexes, and the other resource groups.

Compliance signal, zero dollars

SavingsUSD is 0 by design: there is a concrete action but no cost lever, and compliance findings are exempt from the savings-floor filters that govern cost rules. The rule fails safe: only a positively recorded cmek=false fires, so resources whose encryption state was never resolved stay off the report rather than being presumed unencrypted.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·