Bug Description
The FedRAMP High / Moderate networking stage creates a KMS keyring and key for the VDSS host project and grants exactly the identities that would need to use it — then never references the key.
nva.tf:194 — module "kms", keyring vdss-keyring (:216), key default, HSM.
nva.tf:209 — roles/cloudkms.cryptoKeyEncrypterDecrypter granted to the NVA service account and to the VDSS host project's compute service agent. That grant pair has no purpose unless a compute resource in that project is meant to use the key.
nva.tf:75 — the NVA boot_disk is initialize_params { image = "cos-cloud/cos-stable" } with no kms_key_self_link.
Across all nine .tf files in the stage, module.kms appears only at its own definition and in that IAM block. Nothing consumes the key.
The IL5 option, by contrast, creates the identically-named key and uses it four times:
bastion.tf:36 and bastion.tf:46 — kms_key_self_link = module.kms.keys.default.id on the bastion disks
ngfw.tf:213-214 — disk_encryption_key { kms_key_self_link = module.kms.keys.default.id } on the NGFW VMs
ngfw.tf:113 — encryption_key = module.kms.keys.default.id on the NGFW bootstrap bucket
So the two networking options diverge on whether the appliance disks are customer-managed-encrypted, and only the IL5 one does what its own KMS grants imply.
Environment and Deployment Context
- Stellar Engine Version/Commit:
v2.13.0 (8f5b67a6); the same file layout is present at v3.0.0 (f64ce6cd), where the directory is renamed 2-networking-a-fedramp.
- Deployment Type:
- FAST Stage (if applicable): Stage 2 (Networking) — the
a-fedramp option
Steps to Reproduce
- Deploy
fast/stages-aw/2-networking-a-fedramp (FedRAMP High).
- Confirm the key exists:
gcloud kms keys list --project <prefix>-net-vdss-host --location ,region> --keyring vdss-keyring
- Inspect either NVA instance's boot disk and look for a
diskEncryptionKey.kmsKeyName.
Expected Behavior
Either the NVA boot disks are encrypted with the vdss-keyring default key — matching what the stage's own IAM grants imply and what the IL5 option does — or the stage does not create the key and the grants at all.
Actual Behavior
The keyring, the key and both IAM grants are created; no resource references the key. The NVA boot disks are encrypted with Google-managed keys. Verified in a built FedRAMP High organization: the key .../keyRings/vdss-keyring/cryptoKeys/default exists at HSM protection level with no consumer.
Relevant Logs and Errors
None — the apply succeeds and reports no warning. That is the substance of the report: nothing surfaces the gap.
Additional Context
No org policy forces the issue either way in this configuration: 0-bootstrap/data/org-policies/cloudkms_policy.yaml sets gcp.restrictNonCmekServices to deny only documentai.googleapis.com, so compute.googleapis.com is not required to use CMEK and the unencrypted disks apply cleanly.
The practical impact is twofold: dead infrastructure (a key plus two IAM grants that do nothing), and a misleading signal — an operator reading this stage would reasonably conclude the NVA disks are customer-managed-encrypted. If the intent is that FedRAMP High does not need CMEK on the appliance disks, removing the key and its grants would say so far more clearly than leaving them in place.
Bug Description
The FedRAMP High / Moderate networking stage creates a KMS keyring and key for the VDSS host project and grants exactly the identities that would need to use it — then never references the key.
nva.tf:194—module "kms", keyringvdss-keyring(:216), keydefault, HSM.nva.tf:209—roles/cloudkms.cryptoKeyEncrypterDecryptergranted to the NVA service account and to the VDSS host project's compute service agent. That grant pair has no purpose unless a compute resource in that project is meant to use the key.nva.tf:75— the NVAboot_diskisinitialize_params { image = "cos-cloud/cos-stable" }with nokms_key_self_link.Across all nine
.tffiles in the stage,module.kmsappears only at its own definition and in that IAM block. Nothing consumes the key.The IL5 option, by contrast, creates the identically-named key and uses it four times:
bastion.tf:36andbastion.tf:46—kms_key_self_link = module.kms.keys.default.idon the bastion disksngfw.tf:213-214—disk_encryption_key { kms_key_self_link = module.kms.keys.default.id }on the NGFW VMsngfw.tf:113—encryption_key = module.kms.keys.default.idon the NGFW bootstrap bucketSo the two networking options diverge on whether the appliance disks are customer-managed-encrypted, and only the IL5 one does what its own KMS grants imply.
Environment and Deployment Context
v2.13.0(8f5b67a6); the same file layout is present atv3.0.0(f64ce6cd), where the directory is renamed2-networking-a-fedramp.a-fedrampoptionSteps to Reproduce
fast/stages-aw/2-networking-a-fedramp(FedRAMP High).gcloud kms keys list --project <prefix>-net-vdss-host --location ,region> --keyring vdss-keyringdiskEncryptionKey.kmsKeyName.Expected Behavior
Either the NVA boot disks are encrypted with the
vdss-keyringdefaultkey — matching what the stage's own IAM grants imply and what the IL5 option does — or the stage does not create the key and the grants at all.Actual Behavior
The keyring, the key and both IAM grants are created; no resource references the key. The NVA boot disks are encrypted with Google-managed keys. Verified in a built FedRAMP High organization: the key
.../keyRings/vdss-keyring/cryptoKeys/defaultexists at HSM protection level with no consumer.Relevant Logs and Errors
None — the apply succeeds and reports no warning. That is the substance of the report: nothing surfaces the gap.
Additional Context
No org policy forces the issue either way in this configuration:
0-bootstrap/data/org-policies/cloudkms_policy.yamlsetsgcp.restrictNonCmekServicesto deny onlydocumentai.googleapis.com, socompute.googleapis.comis not required to use CMEK and the unencrypted disks apply cleanly.The practical impact is twofold: dead infrastructure (a key plus two IAM grants that do nothing), and a misleading signal — an operator reading this stage would reasonably conclude the NVA disks are customer-managed-encrypted. If the intent is that FedRAMP High does not need CMEK on the appliance disks, removing the key and its grants would say so far more clearly than leaving them in place.