← Home 🗺️ Mind Map ☕ Ko-fi 💳 Razorpay
// AWS Guide · DevOps & Cloud

AWS DevOps Roadmap: EKS, IAM, VPC, IRSA & Real Interview Questions

📅 Updated April 2026 · 📅 April 2026 ⏱ 12 min read 🏷 AWS · EKS · IAM · Cloud · DevOps
👨‍💻
master.devops
Practising DevOps Engineer with deep hands-on experience in Kubernetes, AWS, CI/CD, and SRE. Every guide is written from real production work.

AWS is the dominant cloud platform in DevOps, with the widest service catalogue and the largest ecosystem of tools and integrations. At a top enterprise, I work with AWS daily — provisioning EKS clusters with Terraform, configuring IRSA for pod-level IAM authentication, designing multi-AZ VPC architectures, and debugging IAM permission issues. This guide covers the AWS services and concepts that appear most in DevOps interviews.

Core AWS Services Every DevOps Engineer Must Know

VPC Architecture — Production Design

Every production AWS workload should live in a properly designed VPC. The standard multi-AZ architecture:

Security Group vs NACL: Security Groups are stateful — return traffic is automatically allowed. NACLs are stateless — you must explicitly allow both inbound and outbound. Security Groups operate at the ENI (instance) level; NACLs operate at the subnet level. Use Security Groups for application-level rules (port 8080 from ALB). Use NACLs as a blunt subnet-level defence (block entire IP ranges).

IAM — Identity and Access Management

IAM is the most complex AWS service and the most common source of security vulnerabilities. The principle of least privilege must be applied everywhere: users, roles, and services should only have exactly the permissions they need and nothing more.

Key IAM Concepts

# Minimal IAM policy example — least privilege for S3 access { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::company-artifacts/*", # specific bucket only "Condition": { "StringEquals": { "s3:prefix": ["api/releases/"] # specific prefix only } } } ] }

IRSA — IAM Roles for Service Accounts

IRSA (IAM Roles for Service Accounts) is one of the most important EKS security features. Without IRSA, the only way to give a Kubernetes pod AWS API access is to attach an IAM role to the EC2 node — giving every pod on that node the same permissions. This violates least privilege.

IRSA solves this by federating Kubernetes Service Accounts with IAM Roles using OIDC. Each pod gets its own IAM role with precisely the permissions it needs. The mechanism:

  1. EKS cluster has an OIDC provider endpoint (configured when creating the cluster).
  2. An IAM Role is created with a trust policy that allows the Kubernetes Service Account to assume it.
  3. The Service Account is annotated with the IAM Role ARN.
  4. When the Pod starts, the EKS Pod Identity Webhook injects AWS credentials via environment variables — no access keys stored anywhere.
# Annotate the Kubernetes Service Account kubectl annotate serviceaccount api-sa eks.amazonaws.com/role-arn=arn:aws:iam::123456789:role/api-s3-role -n production # Verify the pod gets credentials kubectl exec -it api-pod -n production -- aws sts get-caller-identity # Should show the IAM role ARN, not the node role

S3 vs EBS vs EFS — When to Use Each

RDS — Multi-AZ vs Read Replicas

This is a very common AWS interview question, and the answer requires understanding the purpose of each:

In production: Use both. Multi-AZ for HA. Read Replicas for read-heavy applications. Aurora PostgreSQL gives you both with up to 15 replicas and sub-second failover — the best option when you can afford it.

Interview Q&A

Q1: How does IRSA work under the hood?
EKS has an OIDC provider. When a Pod with an annotated ServiceAccount starts, the EKS Pod Identity Webhook intercepts the pod creation and injects three things: an AWS_ROLE_ARN environment variable, an AWS_WEB_IDENTITY_TOKEN_FILE path, and a projected volume containing a short-lived Kubernetes ServiceAccount token. The AWS SDK in the pod reads the token file and calls AWS STS AssumeRoleWithWebIdentity, exchanging the Kubernetes token for temporary IAM credentials. The IAM role's trust policy must include the OIDC provider and the specific ServiceAccount as a principal.
Q2: What is the difference between a Security Group and a NACL?
Security Groups are stateful — if you allow inbound traffic on port 8080, the return traffic is automatically allowed without an explicit outbound rule. They operate at the instance/ENI level and can only allow (not deny) traffic. NACLs are stateless — you must explicitly allow both inbound and outbound traffic. They operate at the subnet level and support both allow and deny rules, evaluated in order by rule number. Use Security Groups for application-level access control. Use NACLs for subnet-level broad controls like blocking known malicious IP ranges.
Q3: How do you design a multi-AZ high-availability architecture on AWS?
Deploy application tier across at least 2 AZs (3 recommended) using an Auto Scaling Group or EKS Multi-AZ node groups. Use an Application Load Balancer spanning all AZs — it automatically routes away from unhealthy instances. Database layer: RDS Multi-AZ for automatic failover, or Aurora with Multi-AZ replicas. Cache: ElastiCache in cluster mode with shards across AZs. Use Route53 health checks for DNS-level failover. Set PodDisruptionBudgets in EKS to prevent all pods being drained from one AZ simultaneously. Use topologySpreadConstraints to ensure pods spread across AZs.
// More Guides
📖 DevOps ☸️ Kubernetes 🐳 Docker ⚙️ CI/CD 🗂️ Terraform 🐧 Linux 🌿 Git ☁️ AWS 📊 Prometheus

☁️ Explore AWS on the Interactive Mind Map

See how AWS connects to Kubernetes, Terraform, Prometheus, and more — with real commands and interview Q&A.

Open Interactive Mind Map ← Terraform Guide
🚀 Want the complete DevOps interview kit?
Full notes, Q&A cheat sheets, real commands — all tools covered.
💳 Get Complete DevOps Kit →

AWS infrastructure is best managed as code. See how Terraform → provisions your VPCs, EKS clusters, and IAM roles automatically.

📩 Get Free DevOps Interview Notes

Cheat sheets, real commands, interview Q&As — free.

No spam · Follow @master.devops for daily tips

// Continue Learning
🗂️Terraform — Automate all AWS infrastructure as code ☸️Kubernetes — Run workloads on AWS EKS ⚙️CI/CD — Deploy to AWS using GitHub Actions OIDC

🔗 Related DevOps Topics

🐳 Docker ☸️ Kubernetes 🗂️ Terraform 🐧 Linux ☁️ AWS ⚙️ CI/CD 📊 Prometheus 🌿 Git 📖 DevOps 🗺️ Mind Map

☕ Support Master DevOps

All content is 100% free. If this guide helped you crack an interview or learn something new, your support keeps the project going.

☕ Ko-fi — International 💳 Razorpay — UPI / India

No subscription · One-time equally loved 🙏

☸️
Written by Master DevOps
DevOps & SRE Engineer · Updated April 2026

Master DevOps is a community of practising DevOps and SRE engineers sharing real production knowledge — from Kubernetes internals to CI/CD pipeline design. All content is written from hands-on experience, not copied from documentation. Our mission: make senior-level DevOps knowledge free for everyone.

📸 Instagram ▶️ YouTube 💼 LinkedIn About Us →
🎯

Ready to Crack Your DevOps Interview?

Access 90+ interview Q&As, real commands, SRE frameworks, and 18-tool reference cards — all free, no login required. Used by 1,300+ DevOps engineers.

🎯 Open Interview Kit → 🗺️ Explore Mind Map

No account needed · Works on mobile · Updated weekly

Advertisement
🌙