← 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
👨‍💻
Dhanush R
Senior DevOps Engineer · 4.5+ Years Experience · Bengaluru

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 🙏

About Author

Dhanush R is a practising DevOps Engineer with hands-on experience in Kubernetes, AWS, CI/CD pipelines, Terraform, Linux administration, and Site Reliability Engineering. Every guide on this platform comes from real production work — incident response, platform migrations, cloud architecture, and interview panels — not from copying documentation. This platform exists to make senior-level DevOps knowledge accessible to every engineer, regardless of budget or background. All content is free, updated regularly, and written from real experience. Last updated: April 2026.

☸️
Written by Dhanush R
Senior DevOps Engineer · 4.5+ Years Experience · Bengaluru

DevOps Engineer with 4.5+ years of hands-on experience, specialising in Kubernetes, AWS, CI/CD pipelines, Terraform, and Site Reliability Engineering. Every guide on this platform is written from real production work — not copied from documentation.

📸 Instagram ▶️ YouTube 💼 Dhanush R on 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
🌙
© 2026 Master DevOps  ·  Privacy Policy  ·  About  ·  Contact  ·  Interview Q&A