AWS SAA Study Guide

One-page cheat sheets for the AWS Certified Solutions Architect โ€“ Associate (SAA-C03) exam. Pick a topic on the left.

๐Ÿ”‘ IAM โ€” One-Page Cheat Sheet
Identity (Who) + Policy (What's allowed) โ†’ access to a Resource IAM is global (not region-specific) and free.
๐Ÿ‘ค Identities
TypeWhat it isCredentials
User A person or app โ€” long-term identity Password (console) and/or Access Keys (CLI/API)
Group A bucket of Users, for bulk permission assignment None โ€” can't log in as a Group, can't nest groups
Role A temporary identity "assumed" by a User, AWS service, or federated identity None stored โ€” temporary credentials issued via STS, auto-expire
Rule of thumb: Users/apps needing standing access โ†’ User. Anything temporary or service-to-service (e.g. EC2 โ†’ S3) โ†’ Role. Role is always the more secure/best-practice choice when it fits.
๐Ÿ“œ Policies
JSON documents with statements: Allow or Deny on specific Actions + Resources.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}
Version โ€” the policy language version, always 2012-10-17 (the current/only version โ€” don't overthink it). Statement โ€” an array of one or more permission blocks, each with an Effect (Allow/Deny), one or more Action(s) (the API action(s) being granted, e.g. s3:PutObject), and one or more Resource(s) (the ARN(s) it applies to, wildcards allowed).
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "s3:DeleteObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}
Same shape, just Effect: Deny โ€” this blocks s3:DeleteObject on the bucket no matter what any other Allow statement says, on this policy or any other attached to the identity. This is the "Explicit Deny always wins" rule below in practice.
Identity-based Attached to a User/Group/Role
Resource-based Attached to the resource itself (e.g. S3 bucket policy)
AWS Managed Created/maintained by AWS, can't edit
Customer Managed You create it, reusable across users/groups/roles in your account
Inline Embedded 1:1 in a single User/Group/Role; deleted when that entity is deleted
AWS recommends Customer Managed over Inline in most cases.
IAM Policy Simulator tests what a policy actually allows/denies before you attach it; IAM Access Analyzer continuously scans your account and flags unintended external/public access.
โš–๏ธ Evaluation Logic โ€” frequently tested!
1 Default = implicit deny (nothing is allowed unless stated)
2 Explicit Allow overrides the implicit deny
3 Explicit Deny always wins โ€” overrides any Allow, no matter where it comes from
Advanced: A Permissions Boundary sets the maximum permissions an entity (User/Role) can have, no matter what its identity policies allow โ€” Org SCPs work the same way but at the account/OU level. More relevant at Pro level, but good to recognize.
๐Ÿ–ฅ๏ธ Roles + EC2 โ€” classic exam scenario
EC2 instance needs an Instance Profile containing exactly one Role.
App on the instance retrieves temporary credentials automatically from instance metadata โ€” no keys to manage.
This is always preferred over storing a User's Access Keys on the instance.
๐Ÿ” Authentication Methods
Access viaCredential
Console Username + Password (+ MFA recommended)
CLI / API (User) Access Key ID + Secret Access Key (long-term โ€” avoid where possible)
CLI / API (Role) Temporary credentials via STS (Security Token Service) โ€” short-lived, auto-expire
Every action you take โ€” console click, CLI command, SDK call โ€” is an API call. The Console is just a UI wrapper around the same AWS APIs the CLI/SDK use directly. This is why IAM policies grant/deny specific Actions (e.g. s3:PutObject) rather than "console access" vs "CLI access" โ€” the permission is on the underlying API action, not the interface used to trigger it. It's also why CloudTrail can log every single one, regardless of which interface made the call.
โœ… Best Practices โ€” the ones that actually get tested
Lock away the root account โ€” don't use it day-to-day; create an admin IAM User instead.
Enable MFA, especially for privileged/root accounts.
Least privilege โ€” grant only what's needed.
Prefer Roles over long-term Access Keys wherever possible.
Use Groups to manage User permissions at scale, not per-user policies.
Rotate credentials regularly; remove unused ones.
Full official list: AWS's Security best practices in IAM guide โ€” 14 topics, summarized below.
๐Ÿ“˜ AWS's Official 14 IAM Best Practice Topics
1Require human users to use federation with an identity provider for temporary credentials
2Require workloads to use temporary credentials with IAM Roles
3Require multi-factor authentication (MFA)
4Update access keys when needed, for use cases that genuinely require long-term credentials
5Follow best practices to protect your root user credentials
6Apply least-privilege permissions
7Get started with AWS managed policies, then move toward least privilege
8Use IAM Access Analyzer to generate least-privilege policies based on access activity
9Regularly review and remove unused users, roles, permissions, policies, and credentials
10Use conditions in IAM policies to further restrict access
11Verify public and cross-account access to resources with IAM Access Analyzer
12Use IAM Access Analyzer to validate your IAM policies for secure and functional permissions
13Establish permissions guardrails across multiple accounts (Org SCPs/RCPs)
14Use permissions boundaries to delegate permissions management within an account
๐Ÿง  Quick Memory Hooks
User = person  ยท  Group = filing cabinet for people  ยท  Role = borrowed hat  ยท  Policy = rulebook
Deny always beats Allow.
No standing credentials = Role = best practice.
VPC & Networking โ€” coming soonSubnets, route tables, IGW/NAT, security groups vs. NACLs, VPC peering.
EC2 & Compute โ€” coming soonInstance types, purchasing options, EBS vs. instance store, placement groups.
S3 & Storage โ€” coming soonStorage classes, lifecycle rules, versioning, encryption, EFS vs. EBS vs. S3.
Databases โ€” coming soonRDS Multi-AZ vs. Read Replicas, Aurora, DynamoDB, ElastiCache.
ELB & Auto Scaling โ€” coming soonALB vs. NLB vs. GWLB, target groups, scaling policies, health checks.
Route 53 & DNS โ€” coming soonRouting policies, health checks, hosted zones, domain registration.
CloudFront & Edge โ€” coming soonOrigins, OAC, caching behavior, edge locations vs. regional caches.
Lambda & Serverless โ€” coming soonTriggers, concurrency, cold starts, Step Functions, API Gateway.
Messaging โ€” coming soonSQS standard vs. FIFO, SNS fan-out, EventBridge, decoupling patterns.
Monitoring & Management โ€” coming soonCloudWatch metrics/alarms/logs, CloudTrail, Config, Trusted Advisor.
Well-Architected โ€” coming soonThe six pillars, shared responsibility model, cost optimization levers.
๐Ÿท๏ธ AWS Service Names โ€” Exam Reference
AWS Certification exams reduce reading load by using official short names for certain well-known services. Know both the short name and the full name โ€” a question may use either.
๐Ÿท๏ธ Official Short Names โ€” frequently tested!
Short NameFull NameExample use case
AWS CDKAWS Cloud Development KitDefine your infrastructure in Python/TypeScript instead of hand-writing raw CloudFormation YAML
AWS CLIAWS Command Line InterfaceScript aws s3 cp in a deploy pipeline instead of clicking through the console
AWS DMSAWS Database Migration ServiceMigrate an on-prem Oracle database into RDS with minimal downtime
Amazon DocumentDBAmazon DocumentDB (with MongoDB compatibility)Run a MongoDB-style workload without managing MongoDB servers yourself
Amazon EBSAmazon Elastic Block StoreAttach a persistent virtual hard drive to an EC2 instance
Amazon EC2Amazon Elastic Compute CloudLaunch a virtual server to host an application
Amazon ECRAmazon Elastic Container RegistryStore and version your Docker container images before deploying them
Amazon ECSAmazon Elastic Container ServiceRun and orchestrate Docker containers without managing Kubernetes yourself
Amazon EFSAmazon Elastic File SystemShare one common file system across many EC2 instances at once
Amazon EKSAmazon Elastic Kubernetes ServiceRun a managed Kubernetes cluster when you specifically need Kubernetes
IAMAWS Identity and Access ManagementAdd a new user, create a Role, or attach a permissions policy
Amazon KeyspacesAmazon Keyspaces (for Apache Cassandra)Run a Cassandra-compatible workload without managing Cassandra nodes
AWS KMSAWS Key Management ServiceCreate and manage the encryption key used to encrypt an S3 bucket or EBS volume
AWS Managed Microsoft ADAWS Directory Service for Microsoft Active DirectoryStand up a real Active Directory domain for Windows workloads, without running your own domain controllers
AWS Private CAAWS Private Certificate AuthorityIssue private TLS certificates for internal services that don't need a public CA
Amazon RDSAmazon Relational Database ServiceLaunch a managed MySQL/PostgreSQL database without patching or backing it up yourself
Amazon S3Amazon Simple Storage ServiceStore and serve static files, backups, or website assets
AWS SAMAWS Serverless Application ModelDefine and deploy a serverless Lambda application from a simplified template
AWS SCTAWS Schema Conversion ToolConvert a database schema from one engine (e.g. Oracle) to another (e.g. PostgreSQL) before migrating with DMS
Amazon SESAmazon Simple Email ServiceSend transactional or marketing emails from an application
Amazon SNSAmazon Simple Notification ServiceFan out one notification to many subscribers (email, SMS, Lambda, SQS) at once
Amazon SQSAmazon Simple Queue ServiceDecouple two application components with a durable message queue
AWS STSAWS Security Token ServiceIssue the temporary credentials handed out when a Role is assumed
Amazon VPCAmazon Virtual Private CloudCreate an isolated private network to launch your resources into
Source: AWS Certification General Information policy page โ€” the authoritative, exam-official list. Check back there periodically since AWS can add to it.
Exam tip: if a question describes a scenario rather than naming a service, match the verb โ€” "issue temporary credentials" โ†’ STS, "decouple" โ†’ SQS, "fan out" โ†’ SNS, "add a user" โ†’ IAM.
๐Ÿง  Memory hook: pair the ones that get confused. SCT before DMS โ€” convert the Schema, then migrate the Data. SNS pushes out, SQS holds until pulled. EBS = one disk for one instance, EFS = one shared filesystem for many instances, S3 = a bucket, not a drive at all.
๐Ÿง  Quick Memory Hooks
This isn't a technical domain โ€” it's exam vocabulary. A question naming "AWS STS" or "Amazon Keyspaces" cold is testing whether you recognize the service, not a new concept.
Acronyms you'll see spelled out constantly elsewhere in this guide (IAM, KMS, RDS, VPC, SNS, SQS) are exactly the ones on this list โ€” that's not a coincidence.