Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

GCP Concepts & Resource Hierarchy

Resource Hierarchy

Organization  (tied 1:1 to a domain — e.g. theodo.com)
└── Folder(s)  (optional grouping — by env, team, BU)
    └── Project  (hard tenancy boundary — billing, APIs, IAM all scoped here)
        └── Resources  (GCS buckets, VMs, BigQuery datasets, Cloud Run, etc.)

A Project is the GCP equivalent of an AWS Account or an Azure Subscription — it is the smallest unit of isolation.

Projects can exist without an org (personal/Gmail accounts). They float under your Google Account directly.

Identity & Account Concepts

ConceptWhat it is
Google AccountYour identity (you@gmail.com or you@theodo.com)
Cloud Identity / Google WorkspaceManages users & groups for a domain. Provisioning an org requires one of these.
OrganizationGCP resource container tied to a domain. Auto-created when you set up Cloud Identity/Workspace.
Service AccountA non-human identity for workloads. Both an identity and a resource you can grant access to.

Relationships

RelationshipCardinalityNotes
Domain → Organization1 : 1One domain, one org. No exceptions.
Google Account ↔ Organizationn : nA user can be member of many orgs (via IAM); an org has many users.
Google Account → create Orgs1 : nYou can create multiple orgs if you control multiple domains.
Organization → Folders1 : nFolders are optional but recommended for large setups.
Organization → Projects1 : nProjects live under org (or directly under a folder).
Project → Billing Accountn : 1A project has exactly one billing account at a time (switchable).
Billing Account → Projects1 : nOne billing account funds many projects.
Organization → Billing Accounts1 : nAn org can have multiple billing accounts (per team, per client, etc).
Google Account ↔ Billing Accountsn : nA user can admin multiple billing accounts.

Billing Account

A billing account holds a payment method (credit card or invoice) and is linked to projects to fund their usage.

  • Lives inside an org, or standalone for personal use.
  • A project without a billing account cannot use paid services.
  • You can have multiple billing accounts under one org.

IAM Model

GCP IAM is resource-centric and additive:

  • Bindings are set on a resource (org, folder, project, or individual resource).
  • Permissions inherit downward — a binding on the org applies to all folders and projects below it.
  • No explicit deny by defaultIAM Deny is a separate, newer feature.
Role typeWhen to use
Basic (Owner / Editor / Viewer)Avoid — too broad
PredefinedDefault choice — Google-managed, service-specific
CustomWhen predefined is still too broad — least-privilege

AWS / Azure → GCP Mental Map

ConceptAWSAzureGCP
Hard tenancy boundaryAccountSubscriptionProject
Hierarchy / groupingOU (Organizations)Management Group / RGOrg → Folder → Project
Workload identityIAM RoleManaged IdentityService Account
Permission grantPolicy on principalRole assignmentIAM binding (role on resource → member)
Human SSOIAM Identity CenterEntra IDCloud Identity / Workforce Identity
CLIawsazgcloud / gsutil / bq
Named profiles~/.aws/config [profile x]az account setNamed configurations
SDK auth (Terraform etc.)AWS_PROFILE / env varsaz login (unified)ADC (application-default login) — separate from CLI auth