Google Cloud Platform organises resources in a four-level hierarchy: organisation, folders, projects, and individual resources. Like Azure’s management group structure, each level is a scope at which IAM policies and organisation policies can be applied and inherited downward. Unlike Azure, GCP’s hierarchy is tied to a Google Workspace or Cloud Identity domain at the organisation level, making domain ownership the prerequisite for the root governance scope rather than an Azure AD tenant.
IAM policies in GCP use an additive model: a policy applied at the organisation level adds permissions to all resources below it, and policies at lower scopes can only add more permissions, never restrict what was granted above. This additive-only inheritance is fundamentally different from AWS and Azure, where deny policies at higher scopes override allow policies at lower scopes. In GCP, the only mechanism for restricting access granted at a higher scope is organisation policies, which constrain resource configuration rather than IAM permissions.
Projects are the foundational unit of GCP resource management: every GCP resource belongs to exactly one project, APIs are enabled per project, and billing is tracked per project. This project-centric model means that environment isolation in GCP is achieved by using separate projects for production and development rather than separate resource groups within the same project. Understanding this distinction is critical because the recommended GCP landing zone pattern uses dozens of projects where Azure might use a handful of resource groups.