Concept guide

Access management

Everything that happens in the cloud is a request: someone wants to do something to something. Access management is about checking who sent that request, and deciding whether that person (or program) is allowed to do it. Every cloud provider uses different names, but the skeleton is the same. We'll look at the skeleton first, then see what's different for each provider, chapter by chapter.

You’re viewing this for Google Cloud. Each chapter also shows Google Cloud’s service names and how it differs from other providers.

01

Who are you, and what can you do? Authentication and authorization

Think about walking into an office building. At the entrance, your ID badge proves it's really you. Then on each floor, the same badge is checked again to see whether you're allowed in there. The first check is authentication (confirming who you are), and the second is authorization (deciding whether you're allowed to do this). The cloud works the same way, in the same two steps.

Whoever sends a request is called a security principal, or just a principal. Principals aren't only people. A program that runs backups every night and a server that processes orders also call the cloud's storage and databases, so they're principals too. People prove who they are with a password and a second factor; programs prove it with keys or temporary credentials (chapter 4). Try switching the situation in the scene below.

Situation
Situation
Normal

A developer’s request passes the authentication door, then the authorization door

The request passes two doors in turn. The first asks, “Is this request really from Alex?” (authentication). The second asks, “Is Alex allowed to read this storage?” (authorization).

AuthenticationAuthorization
AsksIs this request really from that principal?Is that principal allowed to do this?
UsesPasswords, MFA, keys, tokensPolicies, roles, permissions
If it failsWe don’t know who you are → sign in again, get a new keyWe know who you are → request or fix permissions

In the HTTP standard, 401 means an authentication failure (tell me who you are again) and 403 means an authorization failure (I know who you are, but you're not allowed). Cloud APIs don't always follow that split, though. Some return 403 for both, and some return 401 for both. So instead of the status number, look at the error code and message to tell which door stopped you.

The most powerful account is the one you don't use

The top-level account you get when you first sign up for a cloud (the root or main account, or the top admin) can do anything — even change billing details or close the account. So you put MFA on it, lock it away, and do your everyday work with separate accounts that have only the permissions they need. If this account is compromised, no permission setting in the world can save you.

"Authentication" is who you are; "authorization" is what you can do. If a question says "the user can sign in, but the action is denied," authentication passed and authorization blocked it. Time to look at the policies.

If a question says… → pick this

  • “The process of a user proving who they are”Authentication
  • “Deciding what an authenticated user is allowed to do”Authorization
  • “Sign-in works, but actions on resources are denied”An authorization problem — check the permissions (policies)
  • “First step to protect the top-level (root) account”Turn on MFA and don’t use it for daily work
  • “The identity a program on a server uses to call cloud APIs”An identity for programs (role or service account), not a person’s account

You've seen the door that checks who you are. But if your employees use dozens of apps, do you need to build that door separately for each one?

02

One identity for everything: SSO, federation, MFA and conditional access

Give every app its own accounts and passwords, and people end up with more passwords than they can remember — so they reuse the same one. When someone leaves, you have to go through every app to delete their account, and if you miss even one, that door stays open. That's why identities are kept in one place: an identity provider (IdP). You sign in once at the IdP, and the apps let you in because they trust the proof (a token) the IdP issues. That's SSO (single sign-on).

If your company already has a corporate directory, you don't have to create people all over again in the cloud. You can make the cloud trust that directory instead. Trusting another organization's identity checks like this is called federation, and the standards for passing that proof back and forth are SAML 2.0 and OIDC (OpenID Connect).

Method
Sign-in location
Method
Single sign-on: Cloud Identity
Sign-in location
Usual place · work device

An employee signs in to three apps · purple = identity provider

You sign in only at the identity provider, and the apps let you in because they trust the proof (token) it issued. When someone leaves, blocking their account in that one place locks them out of every app.

One password isn't enough: MFA

Passwords leak easily — through phishing, or because the same password leaked from some other site. MFA (multi-factor authentication) adds a second check on top of the password: something you have (a phone app, a security key) or something you are (a fingerprint). Not all MFA is equally strong. A text message (SMS) code or the six-digit number from an authenticator app can be typed straight into a fake site and passed along, but security keys and passkeys (FIDO2) only work on the real site, so they resist phishing.

Deciding by the situation: conditional access

You don't need the same level of checking every time someone signs in. Someone on a work laptop in the office can go straight through, while a sign-in from a country and device you've never seen can be asked for MFA or blocked. Looking at signals like the user, location, device and risk and deciding "allow / allow after an extra check / block" is called conditional access. You can only set conditions like this in one place if identities are kept in one place (the IdP).

TermWhat it does
IdP (identity provider)Stores people’s identities and handles sign-in
SSOSign in once to get into many apps
Federation (SAML, OIDC)Trusts identity checks from another organization (a corporate directory)
MFAA second check besides the password — security keys and passkeys resist phishing
Conditional accessAllows, asks for an extra check or blocks based on location, device and risk

If a question says… → pick this

  • “Access many apps with one sign-in”SSO
  • “Sign in to the cloud console with a corporate directory account”Federation (SAML 2.0, OIDC)
  • “A phishing-resistant MFA method”Security keys and passkeys (FIDO2)
  • “Require extra verification for sign-ins from an unfamiliar country”Conditional access
  • “Block a departing employee in every app at once”Keep identities in one IdP

Now we know for sure who you are. Next comes the second door — "are you allowed to do this?" Let's read the policies that decide it.

Advertisement

03

How to read a policy: who, what, where and under which conditions

Permissions are granted with policies. Policies look different at each provider, but they hold almost the same fields: who (the principal), what (the action), where (the resource), under which conditions (the condition), and whether it's an allow or a deny.

Allow | Who: developers group
      | What: read objects, write objects
      | Where: every object in the dev bucket
      | Condition: only when signed in with MFA

When a request comes in, the system gathers every policy that applies to it and checks them all. The rules for the verdict fit in three lines.

OrderRule
1If no policy allows it, it’s denied (implicit deny)
2If a policy allows it, it’s allowed
3But if even one policy denies it, it’s denied, even with an allow (explicit deny wins)

In the scene below, try attaching and removing the allow policy and the deny policy.

Result
Allowed

One request is checked against the attached policies · orange card = deny, lime card = allow

No policy denies it, and the attached allow policy allows deleting anywhere in storage, so it goes through. Try attaching the deny policy.

Two places to attach a policy: the identity side and the resource side

You can attach a policy to an identity like a person, group or role ("this person can do these things"), or to a resource like a storage bucket ("these principals can get into this bucket"). A resource-side policy always has a "who" field. Resource-side policies matter most when you let in principals from other accounts or organizations, so chapter 5 covers them on their own.

Don't grant person by person — bundle it: groups and roles

If you attach policies to each person one by one, it becomes unmanageable as people join. Instead, you put people who do the same job in a group and attach the policy to the group, and you build bundles of permissions like "read-only" or "database operator" as roles. This is called role-based access control (RBAC). Using attributes like tags as conditions on top of that — "only resources with the same project tag" — is called attribute-based access control (ABAC).

An exam favorite: "I granted an allow policy, but it's still denied" → there's an explicit deny somewhere. "No policy was attached" → implicit deny. When an allow and a deny both match, the deny always wins.

If a question says… → pick this

  • “An allow policy and a deny policy apply at the same time”The deny wins (explicit deny takes precedence)
  • “A newly created user can’t do anything”Implicit deny — you need to attach an allow
  • “Allow deletes only when signed in with MFA”A condition in the policy
  • “Give everyone with the same job the same permissions”Attach policies to groups or roles (RBAC)
  • “Allow access only to resources with matching tags”Attribute-based access control (ABAC)

Policies aren't just for people. So how do you give permissions to a program that runs all night with nobody around?

Pro only

That’s the free part of this guide

The other 5 chapters are open to Pro subscribers. Each one continues with 3D visuals and “if a question says…” tips, and the last chapter lets you check yourself with a short quiz.

  1. 04Roles and temporary credentials
  2. 05Resource policies and sharing
  3. 06Hierarchies and guardrails
  4. 07Running with least privilege
  5. 08When access is denied