mediumMultiple ChoiceObjective-mapped
Google ACE A GKE Pod needs to call the Cloud Storage API Practice Question
A GKE Pod needs to call the Cloud Storage API. The team wants to avoid creating and managing service account key files. What is the recommended approach?
⚠ Common exam trap
Google Cloud often tests the misconception that the node's Compute Engine service account is sufficient for Pod-level authentication, but the trap here is that this approach lacks Pod-level identity isolation and violates least privilege, whereas Workload Identity provides a secure, keyless, and granular solution.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Enable Workload Identity on the GKE cluster and bind a Kubernetes ServiceAccount to a GCP IAM ServiceAccount
Workload Identity is the recommended approach because it allows a Kubernetes ServiceAccount in GKE to authenticate as a GCP IAM ServiceAccount without managing or storing any service account key files. This eliminates the security risk of key leakage and simplifies credential rotation. By binding the Kubernetes ServiceAccount to a GCP IAM ServiceAccount, Pods can directly call Cloud Storage APIs using the IAM permissions of the linked service account, with automatic token exchange via the GKE metadata server.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Mount a service account JSON key file as a Kubernetes Secret and set GOOGLE_APPLICATION_CREDENTIALS
Why it's wrong here
Storing a service account JSON key in a Kubernetes Secret and setting GOOGLE_APPLICATION_CREDENTIALS allows Pods to authenticate, but it requires managing long-lived static credentials that must be manually rotated and securely stored. These key files can easily leak through Docker image layers, environment dumps, or compromised containers, and they do not automatically expire or integrate with GCP audit logs in the same way as workload identity. This pattern is exactly what Workload Identity is designed to replace, because it adds operational overhead and increases the risk of key leakage.
- ✓
Enable Workload Identity on the GKE cluster and bind a Kubernetes ServiceAccount to a GCP IAM ServiceAccount
Why this is correct
Workload Identity lets each Kubernetes ServiceAccount map to a dedicated GCP IAM ServiceAccount, so Pods authenticate through the GKE metadata server using short-lived OAuth2 tokens. This completely removes the need for static JSON key files, eliminating manual rotation and key-leak risk. It also enforces least privilege because each workload gets only the IAM permissions bound to its own service account. Enabling it requires the cluster, node pools, and the metadata server configuration, but it's the recommended modern pattern.
- ✗
Rely on the GKE node's Compute Engine service account for all Pod authentication
Why it's wrong here
Using the Compute Engine service account attached to the GKE node means every Pod on that node automatically inherits the exact same broad GCP permissions, violating the principle of least privilege. If any workload is compromised, the attacker gains access to all node-level permissions, including any roles assigned to the node pool. This also makes it impossible to grant different permissions to different workloads without changing the node's service account, which affects all Pods on the node simultaneously.
- ✗
Grant the GKE node pool's service account the Storage Admin role to cover all Pod needs
Why it's wrong here
Assigning Storage Admin to the node pool's service account grants full control over all storage resources across the entire project, far beyond what individual Pods typically need. This broad role not only over-provisions every Pod on those nodes but also creates a single set of credentials with enormous blast radius if compromised. For least privilege, you should instead bind scoped roles like roles/storage.objectViewer or roles/storage.objectAdmin to dedicated IAM service accounts via Workload Identity.
Go deeper
Related to this question
Learn chapter
Google Cloud Platform Overview
Key term
GKE
GKE is Google's managed Kubernetes service that automates deploying, scaling, and managing containerized applications in the cloud.
Key term
Service account
A service account is a special type of account used by an application or a virtual machine, rather than a human user, to authenticate and interact with cloud services and APIs securely.
About these practice questions
One of 769 original ACE practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This ACE practice question is part of Courseiva's free Google Cloud certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the ACE exam.