SaveMyCert
Log in
5 of 5 free questions left today·for 30 a day
ACE · Domain 4

Configuring access and security practice questions

Configuring access and security is worth 20% of the ACE exam — the 3rd-heaviest of the 4 domains. Managing IAM policies and roles, and service accounts, on Google Cloud. Official (approximate) weighting ~20%. 6 fully worked examples are further down this page, answers included.

Exam weight
20%
the 3rd-heaviest of the 4 domains
Questions
40
across 2 topics
Free, no account
5/day
sign up free to remove the cap
Explanations
Every option
right and wrong

Build a practice session

5 free questions left today.

Domains

How many?

Mode

Ready when you are

10 fresh questions drawn across 1 of 4 domains, in Learn mode.

Focused review

Every question you answer incorrectly, and every question you flag while practising, is saved here automatically. Finish a session and you can come back to re-drill just those.

6 sample Configuring access and security questions, fully explained

Questions from the ACE bank mapped to domain 4, with the answer key and the reasoning behind every option. None of them repeat the examples on the main ACE practice page.

Question 1Configuring access and security

A new operations engineer must be able to start, stop, and reconfigure Compute Engine VM instances in a production project, but must not be able to modify Cloud Storage buckets, BigQuery datasets, or IAM policies. Following Google-recommended practices, which role should you grant?

Choose one.

  • a
    The predefined role roles/compute.instanceAdmin.v1 on the project Correct

    Correct. This predefined role grants full management of Compute Engine instances (create, start, stop, modify) without touching storage, analytics, or IAM — least privilege for the stated job.

  • b
    The basic role roles/editor on the project

    Editor grants modify access to nearly every service in the project, including Cloud Storage and BigQuery, which the engineer must not have. Google recommends avoiding basic roles in production.

  • c
    The basic role roles/owner on the project

    Owner includes everything Editor has plus the ability to manage IAM policies — the opposite of the requirement and the broadest possible grant.

  • d
    The predefined role roles/compute.viewer on the project

    compute.viewer is read-only: the engineer could see instances but could not start, stop, or reconfigure them.

The concept

Cloud IAM offers basic roles (Owner, Editor, Viewer), predefined roles maintained by Google per service, and custom roles you assemble yourself. Predefined roles are the recommended default because they scope permissions to one service and one job function.

Why that’s the answer

roles/compute.instanceAdmin.v1 contains the permissions to create, modify, start, and stop VM instances and their disks, but includes no Cloud Storage, BigQuery, or IAM-administration permissions. It exactly matches 'manage VMs, nothing else'. Editor and Owner are project-wide basic roles that sweep in every other service (Owner even adds IAM control), and compute.viewer cannot change instance state at all.

How to reason it out
  1. List the actions the principal actually needs: start, stop, and reconfigure VM instances.
  2. Search the predefined roles for the Compute Engine role whose permission set matches that job — roles/compute.instanceAdmin.v1.
  3. Confirm the role does not include permissions on the services that must stay off-limits.
  4. Grant it at the project level with add-iam-policy-binding, and revisit if the scope of the job changes.

Exam tip: Prefer service-specific predefined roles over basic Owner/Editor — they are how least privilege is done on GCP.

Managing Cloud IAM: Roles, Policies, and Inheritance — the lesson that teaches this.

Question 2Configuring access and security

A contractor was granted roles/editor on the folder that contains your project analytics-prod. Your security team asks you to remove the contractor's edit access to analytics-prod only, while leaving their access to the folder's other projects untouched. What must you understand about IAM before responding?

Choose one.

  • a
    You can add a deny binding for roles/editor on analytics-prod that overrides the folder grant

    Standard IAM allow policies have no per-role 'deny binding' you attach this way. Overriding an inherited allow is exactly what the additive model prevents; this is not how the exam expects you to reason about inheritance.

  • b
    IAM policies are additive and allow-only; a role inherited from the folder cannot be revoked at the project level, so the grant must be changed at the folder or the resource hierarchy restructured Correct

    Correct. Effective policy is the union of the resource's policy and its ancestors' policies. A lower level cannot subtract permissions granted above it, so removing access to one project requires changing the folder-level grant or moving the project.

  • c
    Removing the contractor from the project's IAM policy with remove-iam-policy-binding will revoke the inherited access

    remove-iam-policy-binding only removes bindings that exist in the project's own policy. The contractor's grant lives in the folder's policy, so there is nothing to remove at the project.

  • d
    Inheritance only applies to basic roles, so granting the contractor a predefined role at the project will replace the folder grant

    Inheritance applies to all role types, and grants never replace each other — they accumulate. Adding another role would give the contractor more access, not less.

The concept

IAM policy inheritance flows down the resource hierarchy (organization → folder → project → resource). The effective policy on a resource is the union of the policy set on it and the policies of all its ancestors, and allow policies are strictly additive.

Why that’s the answer

Because effective access is a union, no setting at the project level can subtract a permission granted at the folder level. The only real remedies are to narrow the folder-level grant (for example, grant the contractor per-project roles instead) or to move analytics-prod out of that folder. The distractors all describe subtractive mechanisms that the additive allow-only model does not provide at a lower level.

How to reason it out
  1. Locate where the grant actually lives — run get-iam-policy on the folder, not just the project.
  2. Recognize that inherited grants cannot be revoked further down the hierarchy.
  3. Remove or narrow the binding at the folder level, replacing it with project-level grants on only the intended projects.
  4. Alternatively, restructure: move the sensitive project to a folder where the contractor has no inherited role.

Exam tip: Effective IAM policy is the union of the resource's and ancestors' policies — you cannot revoke inherited access at a child.

Managing Cloud IAM: Roles, Policies, and Inheritance — the lesson that teaches this.

Question 3Configuring access and security

A user holds roles/viewer granted at the organization level and roles/compute.instanceAdmin.v1 granted directly on the project vm-lab. What access does the user have in vm-lab?

Choose one.

  • a
    Only read access, because the organization-level grant is closer to the root and takes precedence

    There is no precedence between levels in allow policies. Higher-level grants do not override or cap lower-level grants; everything accumulates.

  • b
    Only Compute Engine instance administration, because the most specific (project-level) grant overrides the inherited one

    Specificity does not override in IAM. The inherited Viewer role continues to apply alongside the project grant.

  • c
    No access, because holding two conflicting roles invalidates both bindings

    Allow-policy roles never conflict — they are sets of permissions that are simply merged. Holding multiple roles is normal and expected.

  • d
    Read access to all services in the project plus full management of Compute Engine instances — the union of both grants Correct

    Correct. The effective policy is the union of all applicable bindings: the inherited org-level Viewer and the project-level instanceAdmin both apply simultaneously.

The concept

In Cloud IAM, a principal's effective permissions on a resource are the union of every role binding that applies — bindings on the resource itself and bindings inherited from every ancestor in the hierarchy.

Why that’s the answer

The org-level roles/viewer is inherited by every project in the organization, including vm-lab, granting broad read access. The project-level roles/compute.instanceAdmin.v1 adds instance-management permissions. Neither grant caps or overrides the other; the user can both read everything and administer VMs. Options claiming precedence, override, or conflict all misstate the additive model.

How to reason it out
  1. Enumerate all bindings that mention the principal: on the resource, its project, folder(s), and organization.
  2. Take the union of the permissions in every role from those bindings.
  3. Apply that combined permission set as the user's effective access on the resource.
  4. When auditing, always check ancestor policies too — project-level get-iam-policy alone understates real access.

Exam tip: IAM grants merge — a principal's effective access is the union of every role bound at every level above and at the resource.

Managing Cloud IAM: Roles, Policies, and Inheritance — the lesson that teaches this.

Question 4Configuring access and security

Your organization wants a custom role that bundles a precise set of permissions for a deployment pipeline, and wants the same role definition reusable by every project in the company. At which levels of the resource hierarchy can this custom role be created?

Choose one.

  • a
    At the organization level or at the project level only — custom roles cannot be defined on folders Correct

    Correct. Custom roles are created either in an organization (usable by all projects under it) or in a single project. Folders cannot own custom role definitions.

  • b
    At any level: organization, folder, or project

    Folders are a valid level for granting roles and for policy inheritance, but you cannot define (create) a custom role on a folder.

  • c
    Only at the project level; organization-wide reuse requires copying the role into each project

    Organization-level custom roles exist precisely for reuse across projects — copying per project is unnecessary and creates drift.

  • d
    Only at the organization level; projects can only use predefined roles

    Projects can define their own custom roles too; they are just scoped to that single project.

The concept

Custom roles let you assemble an exact permission list when no predefined role fits. Their defining scope matters: an org-level custom role can be granted anywhere in the organization, while a project-level custom role exists only within that project.

Why that’s the answer

Google Cloud supports custom roles at exactly two scopes — organization and project. Since the requirement is one definition reusable company-wide, it should be created at the organization level. The common trap is assuming folders, which participate fully in policy inheritance, can also hold custom role definitions; they cannot.

How to reason it out
  1. Decide the reuse scope: company-wide reuse means the role must be created at the organization level.
  2. Create it with gcloud iam roles create --organization=ORG_ID with a permissions list or YAML file.
  3. Grant the custom role like any other role in bindings on projects or resources under the org.
  4. Remember custom roles are not maintained by Google — review their permission lists when services evolve.

Exam tip: Custom roles can be created at the organization or project level only — never on a folder.

Managing Cloud IAM: Roles, Policies, and Inheritance — the lesson that teaches this.

Question 5Configuring access and security

You created a custom role that a pilot team is actively trialing before wider rollout. You want the role's lifecycle status to signal that it is still being tested and may change. Which launch stage should you set on the custom role?

Choose one.

  • a
    GA

    GA (general availability) signals the role is stable and ready for unrestricted production use — premature for a role still under trial.

  • b
    BETA Correct

    Correct. BETA indicates the role is being tested more broadly and its definition may still change — the right signal for a pilot preceding general rollout.

  • c
    DISABLED

    DISABLED deactivates the role: existing bindings stop granting its permissions. The pilot team could no longer use it at all.

  • d
    DEPRECATED

    DEPRECATED marks a role that is being phased out and should no longer be granted — the opposite end of the lifecycle from a new role in testing.

The concept

Custom roles carry a launch stage (ALPHA, BETA, GA, DEPRECATED, DISABLED) that documents where the role is in its lifecycle. The stage is informational metadata for administrators, except DISABLED, which actually stops the role from granting permissions.

Why that’s the answer

A role in active trial by a pilot team maps to BETA: broader than initial ALPHA experimentation, but not yet stable enough to declare GA. GA would overstate stability, DEPRECATED signals end-of-life, and DISABLED would break the pilot by nullifying the role's permissions in existing bindings.

How to reason it out
  1. Create the custom role with --stage=ALPHA (or BETA) while the definition is still in flux.
  2. Move it to BETA while a pilot group validates it, updating the permission list as feedback arrives.
  3. Promote to GA with gcloud iam roles update --stage=GA once the definition is stable for production.
  4. Use DEPRECATED when phasing it out, and DISABLED to switch off its permissions entirely.

Exam tip: Launch stages document a custom role's maturity — ALPHA/BETA while testing, GA when stable, and DISABLED actually turns it off.

Managing Cloud IAM: Roles, Policies, and Inheritance — the lesson that teaches this.

Question 6Configuring access and security

An external consultant needs roles/bigquery.dataViewer on your project, but company policy requires that the access automatically end when their contract expires on a known date. Following Google-recommended practices, how do you implement this without manual cleanup?

Choose one.

  • a
    Grant the role normally and create a calendar reminder to remove the binding on the end date

    This is exactly the manual cleanup the policy forbids — it relies on a human remembering, and access silently persists if they forget.

  • b
    Grant the role with an IAM Condition whose expression compares request.time to the contract end timestamp Correct

    Correct. IAM Conditions attach a CEL expression to a binding; a request.time < timestamp condition makes the grant expire automatically at the deadline.

  • c
    Create a custom role that includes an expiry date in its definition

    Custom roles define permission lists only; role definitions have no expiry mechanism. Expiration is a property of the binding via a condition, not of the role.

  • d
    Grant roles/bigquery.dataViewer at the folder level so it can be revoked centrally later

    Granting higher in the hierarchy widens the blast radius to every project in the folder and still requires a manual revocation step — it solves neither requirement.

The concept

IAM Conditions add a boolean CEL expression to a role binding; the binding grants access only while the expression evaluates true. Time-based expiry (request.time) and resource-attribute restrictions are the classic uses.

Why that’s the answer

A conditional binding such as expression: request.time < timestamp("2026-12-31T00:00:00Z") causes the dataViewer grant to stop working the moment the deadline passes, with no human action required. The alternatives either depend on manual follow-through, misplace expiry into a role definition where it does not exist, or broaden the grant while still needing manual revocation.

How to reason it out
  1. Grant the role with add-iam-policy-binding, adding a --condition with title, description, and a CEL expression on request.time.
  2. Set the expression to compare request.time against the contract end timestamp.
  3. Verify the conditional binding appears in get-iam-policy output with its condition block.
  4. After the timestamp passes, the binding no longer grants access; remove the stale binding during routine policy hygiene.

Exam tip: Use IAM Conditions with a request.time expression to make role grants expire automatically.

Managing Cloud IAM: Roles, Policies, and Inheritance — the lesson that teaches this.

What ACE domain 4 tests, topic by topic

The official exam guide breaks Configuring access and security into 2 topics. The question bank follows the same split, so a weak topic shows up as a cluster of misses you can go back and read.

Published ACE practice questions per topic in Configuring access and security
TopicWhat it coversQuestions
Managing IAMOfficial ACE exam-guide sub-section. Viewing and creating IAM policies; attaching roles and understanding policy inheritance in the Organization hierarchy; managing the various role types and defining custom IAM roles.20
Managing service accountsOfficial ACE exam-guide sub-section. Creating service accounts (including Google-managed); using service accounts in IAM policies with minimum permissions; assigning service accounts to resources; managing a service account’s IAM permissions; service account impersonation; creating and managing short-lived credentials; using a service account with a GKE application; provisioning Workload Identity Federation.20
Total40

Revise Configuring access and security before you drill it

Other ACE domains

Configuring access and security: your questions

Configuring access and security is domain 4 of the ACE exam guide and carries 20% of the scored content — the 3rd-heaviest of the 4 domains. On a 55-question paper that works out to roughly 11 questions, though Google Cloud does not publish an exact per-domain count and individual exam forms vary.

Source

The domain weight and topic list on this page come from the official ACE exam guide.