Courseiva
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.

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 →

How Courseiva writes practice questions · Editorial policy

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.