GCP-ACE domain - 20% of the exam

Configuring access and security

Configuring access and security is 20% of the GCP-ACE exam. These are the objectives it covers, each with practice questions, with every answer explained.

The domain in numbers

58
Practice questions
2
Objectives
28
Medium
30
Hard

Where people go wrong

  • Granting a broad role where a narrow one fits

    The wrong answers reach for Editor, Owner or a service-level admin role because it certainly includes the needed action. Each over-grants: Editor spans nearly every service, pubsub.admin changes IAM policy, and monitoring.admin edits dashboards. The correct answer is the predefined role that matches the stated verb, such as storage.objectViewer for reading a bucket, pubsub.publisher for sending messages, or monitoring.viewer for review, bound on the narrowest resource.

    See it in a sample question
  • Expecting a lower binding to cancel an inherited one

    The wrong answers expect a binding closer to the resource to take precedence, or a project-level removal to withdraw a folder grant, and blame leftover access on propagation delay or basic roles that cannot be removed. Allow policies are additive: effective access is the union of the resource policy and every ancestor policy. A grant on the folder or organization keeps working after the project binding is deleted. The fix removes the ancestor binding, or scopes the allow on the intended projects or bucket from the start.

    See it in a sample question
  • Confusing Service Account User and Token Creator

    The wrong answers swap two roles that both involve a service account. Service Account User carries the permission to attach the account to a resource such as a VM, so the resource runs as it. Service Account Token Creator lets a caller mint short-lived tokens or sign blobs, which is what impersonation with --impersonate-service-account needs. Service Account Admin creates, updates and deletes accounts but grants neither ability.

    See it in a sample question
  • Keeping an exported key where a keyless route exists

    The wrong answers keep a long-lived JSON key and dress it up: store it in a password manager or Secret Manager, rotate it, or mount it from a ConfigMap. The key still exists and stays valid until deleted. The correct answers remove it, using impersonation through Token Creator, Workload Identity on GKE, or Workload Identity Federation, all of which issue short-lived credentials from an IAM binding.

    See it in a sample question
  • Placing a custom role at a folder or billing account

    The wrong answers offer a folder or a billing account as a place to define a custom role, or treat a project-level role as shared with sibling projects. Custom roles are created only at the organization or project level. A project custom role stays in that project. A role meant for reuse across several projects is defined at the organization, where it can be granted on any folder or project beneath it.

    See it in a sample question

Objectives in this domain

What to study

The official documents this domain's practice questions cite most.

Sample questions from this domain

Free sampleConfiguring access and securitymedium

A reporting service account needs to read objects from a single Cloud Storage bucket that holds nightly exports. It must never write, delete, or change bucket configuration. Following least privilege, which predefined role should be granted on that bucket?

  • AGrant roles/editor at the project level so the service account inherits object read access to the bucket along with the other permissions the reporting job may later require.
  • BGrant roles/storage.objectViewer on the bucket so the account can read and list objects there without any permission to modify or remove them. Correct
  • CGrant roles/storage.objectAdmin on the bucket so the account can list and read the exported objects while Cloud Storage handles the reporting access it needs.
  • DGrant roles/storage.admin on the bucket so the account has a role dedicated to Cloud Storage rather than a broad basic role at the project level.
Choose the narrowest predefined role, such as roles/storage.objectViewer, that satisfies a read-only requirement rather than a broad basic or admin role. Least privilege means granting only the permissions the workload actually uses. roles/storage.objectViewer carries just storage.objects.get and storage.objects.list, so a read-only reporting account gains no ability to alter or delete data, unlike Editor, objectAdmin, or storage.admin.

Why A is wrong: Tempting because Editor certainly includes reading objects, but it is a basic role spanning almost every service in the project, which massively over-grants for a read-only bucket task.

Why B is correct: Correct: objectViewer grants exactly get and list on objects for that bucket, matching the read-only need with no write, delete, or admin capability.

Why C is wrong: Tempting because it is scoped to the bucket, but objectAdmin also allows creating, overwriting, and deleting objects, which exceeds the stated read-only requirement.

Why D is wrong: Tempting because it is a service-specific role, but storage.admin confers full control over buckets and objects including deletion and IAM changes, far beyond reading exports.

Free sampleConfiguring access and securitymedium

To let a team manage objects in one Cloud Storage bucket called reports-2026, an engineer granted the team roles/storage.objectAdmin at the project level. The team can now modify objects in every bucket in that project, which breaches least privilege. You must restrict them to reports-2026 while keeping their ability to manage objects there. What should you do?

  • ARemove the project-level binding and grant roles/storage.objectAdmin on the reports-2026 bucket instead, so the team manages only that bucket's objects. Correct
  • BAdd a second objectAdmin binding on the reports-2026 bucket, since a binding closer to the resource takes precedence and narrows the effective scope to that bucket.
  • CChange the project-level binding from objectAdmin to roles/storage.objectViewer, so the team keeps a Cloud Storage role but with tighter permissions overall.
  • DLeave the project binding in place and create IAM deny policies on each of the other buckets to block object writes everywhere except reports-2026.
Move an over-broad grant down to the specific resource by removing the higher binding and rebinding at the resource level. IAM grants are additive across the hierarchy and a lower binding cannot revoke one inherited from above. To confine the team to reports-2026 you must remove the project-level objectAdmin binding and grant the same role on the bucket itself, so the only path to the permissions is the bucket binding.

Why A is correct: Correct: deleting the project binding stops the inherited project-wide access, and a bucket-level binding then confines objectAdmin to reports-2026, matching the requirement precisely.

Why B is wrong: Tempting because it sounds like a more specific binding wins, but IAM bindings are additive rather than overriding, so the project-level grant would remain and the team would still reach every bucket.

Why C is wrong: Tempting because it reduces the permission set, but objectViewer is read-only across the whole project, so the team loses the object management it legitimately needs on reports-2026.

Why D is wrong: Tempting because deny policies can subtract access, but maintaining a deny for every other bucket, plus each new bucket, is fragile and misses the simpler fix of scoping the allow correctly.

Free sampleConfiguring access and securityhard

A team wants to hand a downstream service account permission to generate signed blobs on behalf of an upstream service account, using short-lived credentials rather than a key. Which role must be granted on the upstream service account?

  • AService Account Admin, which manages the lifecycle of service accounts and therefore can sign on their behalf.
  • BService Account User, which attaches the account to workloads and lets attached code sign requests without a token.
  • CWorkload Identity User, which federates external identities and thereby covers internal signing between two service accounts.
  • DService Account Token Creator, which allows the caller to request short-lived tokens and signed artefacts for the target service account. Correct
Service Account Token Creator authorises keyless token generation and blob signing on behalf of a target service account. Signing without a key relies on the IAM Credentials API, and only the Token Creator role grants the generateAccessToken and signBlob permissions on the target account, so the operation stays keyless and short-lived.

Why A is wrong: Service Account Admin creates, updates, and deletes service accounts but does not grant the ability to mint tokens or sign blobs as them, so it does not satisfy the requirement.

Why B is wrong: Service Account User permits deploying resources that run as the account, but it does not confer the token-generation permission needed to sign on demand from another identity.

Why C is wrong: Workload Identity User binds an external or Kubernetes identity to a service account; it is not the role that authorises one Google service account to sign as another.

Why D is correct: roles/iam.serviceAccountTokenCreator authorises generateAccessToken and signBlob against the target account, providing keyless signing with credentials that expire automatically.

Free sampleConfiguring access and securityhard

A developer runs a local script that must authenticate as a service account for a one-off task, and your policy forbids downloading keys. Which approach lets the script authenticate while keeping the keyless posture?

  • ARegister a new user-managed key through the console and store it in the developer's password manager for reuse.
  • BConfigure the gcloud CLI to impersonate the service account so calls are authorised with short-lived credentials from the developer's own identity. Correct
  • CGrant the developer the Service Account User role and rely on it to sign requests directly as the service account.
  • DAdd the developer to a Google group that owns the service account, which then shares its permanent credential automatically.
gcloud impersonation lets a human principal authenticate as a service account using short-lived tokens without any key file. The CLI impersonation flag routes calls through the IAM Credentials API, which returns a short-lived token derived from the developer's authenticated identity, so the service account is used without provisioning or storing an exported key.

Why A is wrong: Storing a key in a password manager still creates a long-lived exported credential, which violates the keyless policy no matter how carefully it is held.

Why B is correct: The impersonate-service-account setting makes gcloud request short-lived tokens on the developer's behalf, so the script acts as the service account without any key file existing.

Why C is wrong: Service Account User permits attaching the account to resources, but on its own it does not let a local CLI mint tokens to sign requests, so the script would still lack credentials.

Why D is wrong: Group membership can convey IAM roles, but service accounts do not distribute a shared permanent credential to members, so no usable authentication results from this alone.

Free sampleConfiguring access and securitymedium

An administrator plans to create a custom IAM role so it can be reused across several projects under one folder. At which levels of the resource hierarchy can a custom role be created?

  • AAt the folder level only, so that every project beneath the folder inherits the same custom role definition automatically.
  • BAt the billing account level, because custom roles are scoped to the account that pays for the resources they govern.
  • CAt the project level only, because a custom role defined anywhere else would conflict with the predefined roles Google maintains organisation-wide.
  • DAt either the organisation level or the project level, depending on how widely the administrator wants the role to be available. Correct
Recall that custom IAM roles can be created at the organisation or project level, but not at the folder level. Custom roles are defined at the organisation level for reuse across all its projects, or at the project level for a single project; the folder level is not available for defining custom roles even though folders participate in policy inheritance.

Why A is wrong: Custom roles cannot be created at the folder level at all, so a folder-only answer is incorrect even though folders do play a role in policy inheritance.

Why B is wrong: Billing accounts are not a location for defining custom roles; role creation is tied to the organisation and project scopes, not to who pays for usage.

Why C is wrong: This wrongly rules out organisation-level custom roles, which are supported; there is no conflict with predefined roles, so restricting creation to projects is inaccurate.

Why D is correct: Custom roles can be defined at the organisation level, making them available to all projects in the organisation, or at the project level for use within that single project.

Other domains in this exam

See also the GCP-ACE cert hub, the study guide, and the cheat sheet.

Examworthy is not affiliated with or endorsed by Google Cloud. Original, blueprint-aligned practice material only.