A regulated team is planning a Dataflow streaming pipeline that consumes Pub/Sub messages, transforms them, and writes to BigQuery. Compliance requires that data at rest, including intermediate state, is encrypted with keys the team controls and can rotate or disable on demand, while the team prefers not to manage key material directly on virtual machines. Which encryption approach best satisfies these requirements across Pub/Sub, Dataflow, and BigQuery?
- ARely on default Google-managed encryption keys for Pub/Sub, Dataflow temporary state, and BigQuery, since all data at rest is encrypted by Google by default.
- BUse customer-supplied encryption keys passed in each request to Pub/Sub, Dataflow, and BigQuery so the team holds the key bytes outside Google Cloud.
- CEncrypt the message payloads in the publisher application before sending to Pub/Sub and decrypt them in BigQuery, leaving Dataflow blind to the contents.
- DConfigure customer-managed encryption keys in Cloud KMS and apply them to the Pub/Sub topic, the Dataflow job's temporary storage, and the BigQuery destination dataset or table. Correct
Why A is wrong: Tempting because default encryption is always on, but it does not give the team the ability to rotate or disable the underlying key, which the compliance requirement explicitly demands.
Why B is wrong: Plausible because customer-supplied keys give the team possession of key material, but they are supported only on specific Cloud Storage operations, not on Pub/Sub, Dataflow state, or BigQuery, so this option does not cover the pipeline.
Why C is wrong: Application-layer encryption can supplement defence in depth, but it breaks Dataflow's ability to transform the data and does not address encryption of intermediate Dataflow state, so it does not solve the stated problem.
Why D is correct: Correct. Customer-managed encryption keys held in Cloud KMS let the team control rotation and disable access without managing raw key material, and CMEK can be applied to Pub/Sub topics, Dataflow temporary state, and BigQuery datasets or tables along the pipeline.