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
- 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).
| Authentication | Authorization | |
|---|---|---|
| Asks | Is this request really from that principal? | Is that principal allowed to do this? |
| Uses | Passwords, MFA, keys, tokens | Policies, roles, permissions |
| If it fails | We don’t know who you are → sign in again, get a new key | We 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.
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
- 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).
| Term | What it does |
|---|---|
| IdP (identity provider) | Stores people’s identities and handles sign-in |
| SSO | Sign in once to get into many apps |
| Federation (SAML, OIDC) | Trusts identity checks from another organization (a corporate directory) |
| MFA | A second check besides the password — security keys and passkeys resist phishing |
| Conditional access | Allows, 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 MFAWhen 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.
| Order | Rule |
|---|---|
| 1 | If no policy allows it, it’s denied (implicit deny) |
| 2 | If a policy allows it, it’s allowed |
| 3 | But 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).
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.
- 04Roles and temporary credentials
- 05Resource policies and sharing
- 06Hierarchies and guardrails
- 07Running with least privilege
- 08When access is denied
PasslyExam
You have read the concept. Now test it on exam questions
PasslyExam offers original practice questions, explanations and full mock exams built around each certification’s exam guide. The explanations cover why the right option is right and why the look-alike options are wrong. Sign up to practice for free every day.
Exams that cover this concept
- AIF-C01AWS Certified AI Practitioner
- SAA-C03AWS Certified Solutions Architect - Associate
- CLF-C02AWS Certified Cloud Practitioner
- DVA-C02AWS Certified Developer - Associate
- SOA-C03AWS Certified CloudOps Engineer - Associate
- SAP-C02AWS Certified Solutions Architect - Professional
- SY0-701CompTIA Security+
- AZ-900Microsoft Azure Fundamentals
- AZ-104Microsoft Azure Administrator
- ACEGoogle Cloud Associate Cloud Engineer
- CDLGoogle Cloud Digital Leader
- NCA-100NAVER Cloud Platform Certified Associate
- NCP-202NAVER Cloud Platform Certified Professional (Network/Media, Database/Management/Analytics)
- NCP-207NAVER Cloud Platform Certified Professional (Troubleshooting)