Setting Up Google Cloud Projects, Resource Hierarchy, and IAM
Setting up a Google Cloud environment means building a resource hierarchy — an organization node at the top, folders for teams or environments, and projects that contain every actual resource — then controlling it with IAM roles, organization policies, and Cloud Identity users and groups. The ACE exam opens with this domain because everything else depends on it: you cannot deploy a VM, enable an API, or grant access without a project, and you cannot govern dozens of projects without inheritance flowing down from the organization. This lesson walks through creating the hierarchy, granting IAM roles at the right level, managing identities manually and automatically, enabling APIs, provisioning Google Cloud Observability, checking quotas and regional availability, and the newer setup tasks Google now tests: Cloud Asset Inventory, Gemini Cloud Assist, and Workforce Identity Federation. Expect scenario questions that hinge on where in the hierarchy you attach a policy.
On this page8 sections
- How the Google Cloud resource hierarchy works
- How IAM policy inheritance flows down the hierarchy
- Applying organization policies to the hierarchy
- Managing users and groups in Cloud Identity
- Configuring Workforce Identity Federation
- Enabling APIs and managing quotas
- Provisioning Google Cloud Observability
- Networking setup, regional availability, and Cloud Asset Inventory
- Explain the organization, folder, project, resource hierarchy and how IAM policies inherit down it
- Grant IAM roles within a project using the Console and gcloud, choosing predefined roles over basic ones
- Apply organization policy constraints at the organization, folder, or project level
- Manage Cloud Identity users and groups manually and with automated sync or federation
- Enable APIs, provision Google Cloud Observability, and assess quotas and request increases
- Verify product availability across regions and zones and analyze resources with Cloud Asset Inventory and Gemini Cloud Assist
How the Google Cloud resource hierarchy works
The resource hierarchy is a tree: one organization node at the root, optional folders beneath it, projects inside the organization or folders, and every actual resource — VMs, buckets, databases — inside a project. Resource Manager is the service that creates and manages this tree.
The organization node represents your company and is created automatically when you set up Cloud Identity or Google Workspace with a verified domain. If your company has no Google Workspace, you can set up a standalone organization by creating a free Cloud Identity account, verifying domain ownership, and then creating your first project under it — the organization node appears the first time a user from that domain creates a project or billing account. Folders group projects by department, team, or environment (for example engineering/prod and engineering/dev) and are the natural attachment point for policies that apply to a subset of the company.
Projects are the unit that matters day to day. Every project has three identifiers: a mutable display name, a globally unique, immutable project ID you choose at creation (used in gcloud commands and API calls), and a Google-assigned immutable project number. Create one with gcloud projects create my-app-prod --organization=ORG_ID or place it in a folder with --folder=FOLDER_ID. APIs are enabled per project, billing is linked per project, and quotas are enforced per project — which is why the exam's default answer to "how do I isolate two workloads?" is almost always "separate projects."
How IAM policy inheritance flows down the hierarchy
IAM policies attached at a higher level of the hierarchy are inherited by everything beneath: a role granted on the organization applies to every folder, project, and resource in it; a role granted on a folder applies to all its projects; a role granted on a project applies to all resources in that project. The effective policy on a resource is the union of the policy set on it and every policy inherited from above — and a lower level can never remove or restrict a grant made higher up. If someone is Editor on the organization, making them Viewer on one project does not reduce their access there.
An IAM policy is a set of role bindings: each binding ties a role (a bundle of permissions) to one or more principals — a Google Account, a group, a service account, or a domain. Grant one in a project with gcloud projects add-iam-policy-binding my-app-prod --member=group:devs@example.com --role=roles/compute.instanceAdmin.v1.
The three role types
| Type | Examples | When to use |
|---|---|---|
| Basic | Owner, Editor, Viewer | Rarely — they span the entire project and violate least privilege |
| Predefined | roles/compute.instanceAdmin.v1, roles/storage.objectViewer | The default choice — service-specific, maintained by Google |
| Custom | Your own permission bundle | When no predefined role matches the exact permission set |
Two habits the exam rewards: grant roles to groups, not individual users, and grant at the lowest level of the hierarchy that satisfies the need.
Applying organization policies to the hierarchy
Organization policies constrain what can be done with resources, regardless of who is doing it — the complement to IAM, which controls who can do what. An organization policy is built from a constraint, and constraints come in two flavors: boolean constraints that enforce or not (for example constraints/compute.disableSerialPortAccess or constraints/iam.disableServiceAccountKeyCreation) and list constraints that allow or deny specific values (for example constraints/gcp.resourceLocations to restrict which regions resources may be created in, or constraints/compute.vmExternalIpAccess to control which VMs may have external IPs).
Like IAM, organization policies attach to the organization, a folder, or a project and are inherited downward. Unlike IAM, a lower node can override the inherited policy — replacing it entirely or, for list constraints, merging with the parent's values — unless the parent is configured to block overrides. That override behavior is a favorite exam discriminator: IAM inheritance is strictly additive; organization policy inheritance can be overridden below.
Setting policies requires the Organization Policy Administrator role (roles/orgpolicy.policyAdmin), which is granted at the organization level. A typical scenario: the security team wants to guarantee that no resource in the finance folder is ever created outside approved regions. The answer is a gcp.resourceLocations list constraint on that folder — not an IAM change, because IAM cannot express "nobody, not even Owners, may do this." When you see "prevent anyone from…" or "enforce across all projects," think organization policy before IAM.
Managing users and groups in Cloud Identity
Cloud Identity is where the human identities live — Google Cloud IAM grants roles to identities but never creates them. Cloud Identity provides Google Accounts for your domain (free and premium tiers exist) and is administered in the Admin console at admin.google.com, which is separate from the Google Cloud Console. Users, groups, and organizational units are managed there by a Super Admin.
Manual management means creating users and groups directly in the Admin console: add alice@example.com, create the group devs@example.com, add members. This works for small teams but drifts out of date fast.
Automated management keeps Cloud Identity synchronized with an existing source of truth. The main options:
- Google Cloud Directory Sync (GCDS) — a tool you run on-premises that performs one-way sync from an LDAP directory into Cloud Identity. The directory server remains authoritative; GCDS never writes back to it.
- SAML single sign-on — authentication is delegated to your external identity provider, so users sign in with corporate credentials while their accounts still exist in Cloud Identity.
- Provisioning APIs and connectors — the Admin SDK Directory API or your IdP's provisioning integration can create and deactivate users automatically as people join and leave.
The operational pattern the exam expects: sync or provision users automatically, organize them into groups that mirror job functions, and bind IAM roles to those groups. When an engineer changes teams, membership changes in one place and every project's access updates with it — no IAM edits required.
Configuring Workforce Identity Federation
Workforce Identity Federation lets your employees access Google Cloud using their existing external identity provider without creating Google Accounts for them at all — the alternative to syncing users into Cloud Identity. Your IdP authenticates the user via SAML 2.0 or OpenID Connect, and Google Cloud trusts that assertion directly.
The setup has three parts. First, create a workforce identity pool at the organization level — a container representing a set of external identities. Second, add a workforce pool provider to it, configured with your IdP's metadata and attribute mappings that translate IdP claims (like group membership) into Google Cloud attributes you can reference in IAM bindings. Third, grant IAM roles to principals from the pool, using identifiers such as principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP. Federated users then sign in through a dedicated federated Console URL or configure gcloud for workforce federation.
Choosing between the approaches is a classic exam decision:
- Sync into Cloud Identity (GCDS or provisioning) when users need full Google Accounts — for Google Workspace apps, or the broadest product compatibility.
- Workforce Identity Federation when the organization wants no duplicate account lifecycle to manage and users only need Google Cloud access. Identities live solely in the external IdP; deactivating someone there removes their access.
Do not confuse this with Workload Identity Federation, which does the same trick for applications and CI pipelines instead of humans — that one belongs to the service-account domain of the exam.
Enabling APIs and managing quotas
Every Google Cloud service is exposed through an API that is disabled by default in a new project — you must enable it before the service will accept requests. Enable through the Console's APIs and Services page or with gcloud: gcloud services enable compute.googleapis.com. List what is already on with gcloud services list --enabled, and disable with gcloud services disable. Enabling an API requires the serviceusage.services.enable permission, and some enablements automatically create Google-managed service agents in the project. If a deployment fails with an error saying an API "has not been used in project… or it is disabled," the fix is enabling the API — a frequent exam distractor dressed up as a permissions problem.
Quotas cap how much of each resource a project may consume. They come in two kinds: rate quotas that reset over a time window (API requests per minute) and allocation quotas that cap concurrent resources (CPUs per region, VPC networks per project, static IPs). Quotas are per project, and many are also per region.
View and manage quotas on the Cloud Quotas page (IAM and Admin, then Quotas) or with gcloud services quota commands. When a quota blocks you — say a managed instance group cannot scale because the regional CPU allocation is exhausted — you request an increase from that page. Increases are reviewed by Google, are not guaranteed, and can take time to approve, so the exam expects you to plan ahead rather than request mid-incident. Requesting increases requires quota-admin permissions, and raising a quota never raises your bill by itself — you pay only for what you actually consume.
Provisioning Google Cloud Observability
Google Cloud Observability — Cloud Monitoring, Cloud Logging, and companion tools like Cloud Trace and Cloud Profiler — is provisioned per project, and its baseline works with no setup: platform metrics for supported services flow into Monitoring automatically, and platform logs land in Logging's _Default log bucket, with admin activity audit logs kept in the non-configurable _Required bucket.
The setup tasks the exam cares about sit on top of that baseline:
- Metrics scopes for multi-project monitoring. A Monitoring metrics scope defaults to seeing only its own project. To build one dashboard across many projects, add those projects to a central scoping project's metrics scope — a standard pattern for ops teams overseeing separate prod projects per service.
- The Ops Agent on Compute Engine VMs. Without it, a VM reports only hypervisor-visible metrics (CPU, disk and network throughput). Installing the Ops Agent adds in-guest telemetry — memory utilization, disk space, application logs — so any question about missing memory metrics or in-VM application logs is answered by "install the Ops Agent."
- Log routing. Log sinks route entries to destinations such as BigQuery for analysis, Cloud Storage for archival, or Pub/Sub for streaming to external systems; exclusion filters drop noise to control cost.
Provisioning also includes deciding retention on log buckets and creating notification channels (email, chat, PagerDuty-style integrations) so that alerting policies created later have somewhere to send incidents. At setup time your job is wiring: agents installed, scopes arranged, sinks pointed at the right destinations.
Networking setup, regional availability, and Cloud Asset Inventory
Initial network setup means deciding what VPC networks your projects use. New projects ship with a default auto mode VPC — one subnet pre-created in every region with fixed IP ranges and permissive default firewall rules. Convenient for experiments, wrong for production: the exam-preferred practice is to delete or ignore it and create a custom mode VPC (gcloud compute networks create prod-vpc --subnet-mode=custom), then add subnets only in the regions you need with CIDR ranges that will not collide with on-premises or peered networks. For multi-project setups, a Shared VPC lets a host project own the network while service projects attach workloads to it — centralizing network administration while keeping workloads isolated in their own projects.
Verify product availability before you commit to a region. Not every product, machine type, or GPU exists in every region or zone. List locations with gcloud compute regions list and gcloud compute zones list, check a specific resource with commands like gcloud compute machine-types list --zones=europe-west2-a, and consult Google's per-product locations pages. A scenario that requires a specific region for data-residency plus a product missing there is testing exactly this verification step.
Finally, Cloud Asset Inventory gives you visibility over everything the hierarchy contains: search assets and IAM policies across the organization (gcloud asset search-all-resources), export full snapshots to BigQuery or Cloud Storage, and review up to five weeks of change history. Gemini Cloud Assist layers AI on top — you can ask it in the Console to analyze and summarize your resources, investigate configuration questions in natural language, and surface optimization suggestions, which is how the current exam guide expects resource analysis to be done.
Tip. The ACE exam tests this topic with scenario questions about where to attach policies and grants: expect wording like 'enforce across all projects' (organization policy at the org or folder), 'grant access following least privilege' (predefined role, to a group, at the lowest level), and 'without creating Google Accounts' (Workforce Identity Federation). Watch for distractors that present a disabled API as an IAM problem, and for questions where the fix for missing VM memory metrics is installing the Ops Agent. Commands like gcloud projects create, gcloud services enable, and gcloud projects add-iam-policy-binding appear in answer options, so know their shapes.
- The hierarchy is organization to folders to projects to resources; IAM and organization policies attach at any level and inherit downward
- IAM inheritance is additive — a lower level can never revoke a role granted above it
- Prefer predefined roles granted to groups at the lowest hierarchy level that works; avoid basic Owner/Editor/Viewer
- Organization policies constrain what can be done (even by Owners); IAM controls who can do it
- Manage Cloud Identity users manually in the Admin console or automatically via GCDS/provisioning; Workforce Identity Federation grants access with no Google Accounts at all
- APIs are disabled by default per project — enable with gcloud services enable before use
- Quota increases are requested from the Cloud Quotas page, are reviewed by Google, and are not instant
- Install the Ops Agent for VM memory/disk-space metrics, and use a metrics scope to monitor multiple projects from one place
Frequently asked questions
What is the Google Cloud resource hierarchy?
The resource hierarchy is Google Cloud's tree of containers: a single organization node at the root (created via Cloud Identity or Google Workspace with a verified domain), optional folders for teams or environments, projects inside them, and all actual resources — VMs, buckets, databases — inside projects. IAM policies and organization policies attached at any level are inherited by everything below, which is how you govern many projects with one policy.
How does IAM policy inheritance work in Google Cloud?
A role granted at a higher level applies to everything beneath it: organization grants cover all folders and projects, folder grants cover their projects, and project grants cover the project's resources. The effective policy is the union of the resource's own policy and all inherited ones, and inheritance is strictly additive — you cannot restrict or revoke an inherited role at a lower level. That is why over-granting at the organization level is dangerous.
What is the difference between IAM and organization policies?
IAM controls who can do what: it binds roles (bundles of permissions) to principals like users, groups, and service accounts. Organization policies control what can be done at all, regardless of identity: constraints such as restricting resource locations or blocking external IPs apply even to project Owners. Use IAM to grant access; use organization policies to enforce guardrails across the hierarchy.
What is Workforce Identity Federation in Google Cloud?
Workforce Identity Federation lets employees access Google Cloud by authenticating with an external identity provider over SAML or OpenID Connect, without creating or syncing Google Accounts. You create a workforce identity pool and provider at the organization level, map IdP attributes, and grant IAM roles to pool principals. It suits organizations that want identity lifecycle managed only in their existing IdP; syncing into Cloud Identity remains the choice when users need full Google Accounts.
How do I request a quota increase in Google Cloud?
Open the Cloud Quotas page (IAM and Admin, then Quotas) in the Console, filter to the quota that is blocking you — for example CPUs in a region — select it, and submit an increase request with the value you need. Google reviews requests, so approval is not guaranteed and not instant; plan increases ahead of scaling events. Raising a quota does not itself increase your bill.
Why can't I see memory metrics for my Compute Engine VM?
Because memory utilization is only visible from inside the guest OS, and the default hypervisor-level metrics do not include it. Install the Ops Agent on the VM: it collects in-guest metrics such as memory and disk-space utilization and forwards application logs to Cloud Logging. Once the agent is running, memory metrics appear in Cloud Monitoring automatically.
Sign up free to mark lessons complete, bookmark topics and track your exam readiness.