GCP IAM predefined roles
Google Cloud IAM grants access by binding a role (a bundle of permissions) to
a member on a resource. Predefined roles are Google-curated, least-privilege
bundles scoped to a single service. This reference lists the most common
predefined roles across Storage, Compute, BigQuery, GKE and project basics with
their roles/* IDs and what each grants.
How it works
A role is bound with an IAM policy. The role ID is the canonical identifier you pass to tooling:
gcloud projects add-iam-policy-binding my-project \
--member="user:[email protected]" \
--role="roles/storage.objectViewer"
Predefined roles follow a naming pattern of roles/<service>.<scope> where the
scope is usually one of viewer (read), user/writer (use/write),
admin (full control of resources) or <resource>Admin (manage one resource
type). Bindings can be set at organization, folder, project or resource level
and are inherited downward.
Tips and notes
- Avoid the basic roles
roles/owner,roles/editor,roles/viewerin production — they span every API. - Bind roles at the narrowest resource scope possible (a single bucket or dataset) rather than project-wide.
- Pair data and job roles in BigQuery:
dataViewerto read,jobUserto run queries. - Use
gcloud iam roles describe roles/<id>to see the exact permission list behind any predefined role.