Introduction to AWS Security
-
Introduction
About the course and authors -
AWS cloud architecture
-
Security concerns with our architecture
-
Regions and Availability Zones (AZs)
-
Shared responsibility in the cloud
-
[Cheat Sheet] AWS Security Services
-
Create a billing alert to avoid surprise bills
-
Infrastructure SecurityVPC networks
-
Default VPCs
-
[DEMO] Creating VPCs and Subnets
-
How many VPCs should you use?
-
[DEMO] Subnet, Route Table, and Gateway Configurations
-
[LAB] [Challenge] Create a VPC with public and private subnets
-
[LAB] Launching an EC2 instance
-
[DEMO] Security Groups (SGs)
-
Security Groups Best Practices
-
[DEMO] Network Access Control Lists (NACLs)
-
[Cheat Sheet] SGs vs. NACLs
-
[LAB] [Challenge] Configure security groups and NACLs to specific requirements
-
Elastic Load Balancers
-
[DEMO] AWS WAF
-
[LAB] [Challenge] Deploy AWS WAF ACL for Application Load Balancer
-
[DEMO] AWS Network Firewall - Part 1
-
[DEMO] AWS Network Firewall - Part 2
-
AWS Shield for DDoS Protection
-
[LAB] Reduce AWS attack surface with port scanning and Security Groups
-
AWS Firewall Manager
-
Identity and Access Management (IAM)Key Concepts of IAM in AWS
-
[DEMO] Getting started with IAM in AWS
-
[DEMO] Creating our first admin user
-
Assigning permissions with policies
-
[Cheat Sheet] Anatomy of an AWS IAM Policy
-
[DEMO] Using Identity Center AWS SSO
-
IAM Roles
-
[DEMO] Creating a role for EC2 instances to access S3 buckets
-
End-User Management with Amazon Cognito
-
IAM Access Analyzer
-
[DEMO] IAM Access Analyzer Unused Access
-
[LAB] Check policies for new access before deployment with IAM Access Analyzer
-
[LAB] Check IAM policies against a deny list with IAM Access Analyzer
-
[LAB] IAM Credentials Report
-
Data ProtectionData protection in the cloud
-
EBS Data Protection and Encryption
-
[LAB] Encrypt Existing Unencrypted EBS Volumes and Snapshots
-
Amazon RDS Data Protection and Encryption
-
Key Management with AWS KMS
-
[Cheat Sheet] Getting Started with AWS KMS
-
[DEMO] Creating a Symmetric Encryption KMS Key
-
[Cheat Sheet] Encrypt and Decrypt Data with KMS and Data Keys
-
[LAB] Encrypt and Decrypt Data with KMS and Data Keys
-
Amazon S3 Bucket ProtectionUnderstanding Bucket Ownership
-
[LAB] Creating Buckets and Uploading Objects in S3
-
Managing Access to Buckets
-
[Cheat Sheet] S3 Bucket Policies vs. ACLs vs. IAM Policies
-
[LAB] [Challenge] Create an IAM role for secure access to S3 based on a scenario
-
Using Signed URLs
-
[LAB] S3 Presigned URLs
-
Encrypting S3 Data
-
[DEMO] Enable S3 Object Versioning
-
[Cheat Sheet] Amazon S3 Protection Summary
-
[Cheat Sheet] Create a least privilege S3 bucket policy
-
AWS Log Types and Auditing Options
-
Logging, Monitoring, and Incident Response[DEMO] Enable S3 Server Access Logs
-
AWS CloudTrail
-
Amazon CloudWatch
-
[DEMO] CloudTrail Security Automation with CloudWatch Logs and SNS
-
[LAB] Amazon VPC Flow Logs
-
Proper Logging and Monitoring
-
Amazon GuardDuty
-
[LAB] [DEMO] Enable Threat Detection with GuardDuty
-
[DEMO] Amazon EventBridge
-
AWS Config
-
AWS Systems Manager
-
[LAB] Secure EC2 Access with SSM Session Manager and KMS
-
[DEMO] AWS Config Automated Remediation with SSM
-
[LAB] Automated S3 Remediation to Enforce Block Public Access
-
[LAB] Remediate Open SSH Security Groups with AWS Config and SSM
-
Amazon Detective
-
[DEMO] Amazon Inspector
-
[LAB] Find vulnerable Lambda Functions with Amazon Inspector
-
About Amazon Macie
-
[DEMO] Deploying Amazon Macie
-
[DEMO] AWS Security Hub CSPM
-
[DEMO] Must-have AWS monitoring and alerting with SSK
-
[DEMO] AWS Organizations
-
Multi-Account Security[DEMO] Centrally managing root access
-
[DEMO] AWS SCPs and Management Policies
-
[DEMO] Resource Control Policies (RCPs)
-
AWS Control Tower
-
[DEMO] Using RAM to share resources across accounts
-
About IaC
-
Infrastructure as Code (IaC)[DEMO] Deploying resources with CloudFormation
-
[DEMO] Deploying a Lambda function with CloudFormation
-
[DEMO] Multi-account and multi-region deployments
-
[DEMO] Detecting drift
-
[LAB] CloudFormation Guard
-
[DEMO] Using AWS Service Catalog - Part 1
-
[DEMO] Using AWS Service Catalog - Part 2
-
[DEMO] Getting started with the Cloud Development Kit (CDK)
-
[DEMO] Deploying a project with the CDK
-
Wrap-up and Key TakeawaysWhat next?
Access the interactive diagram for this lesson here. (It may ask you to create a free account in order to view. You do not need paid features to view this course’s content so you can ignore that!)
When it comes to infrastructure security in the AWS cloud, one of the core components to understand is the Amazon VPC, or Virtual Private Cloud.

The Amazon VPC is the basic building block in AWS, and it’s represented by the green rectangle in our sample architecture. Just like we can create virtual networks on-premises, we can also create virtual networks in the cloud.
These VPCs let you carve out a section of the cloud where you can then launch your own resources. Once created, no one else can use that section apart from you, and you can launch all kinds of resources like: web servers, app servers, databases, and so on…
You can create multiple of these virtual networks, and you can either keep them in isolation, or you can connect them to other virtual networks, and even to on-premises resources.


We talked about Regions and Availability Zones in prior lessons. Virtual networks can be created across regions and you can then create subnetworks across zones in order to achieve high availability and data replication.
These subnetworks are more often called subnets, and they further subdivide your virtual network. You can have either public or private subnets, so let’s talk about what that means.
Public and private subnets
Whenever you first create a subnet in a virtual network, that subnet is private by default. Private means that whatever resources you launch within that subnet will only receive a private IP address, and that private IP address won’t resolve from the open Internet. You won’t be able to communicate with that service and that service won’t be able to connect to the Internet without additional configurations.

A public subnet, instead, would provide a public IP address to that resource in addition to a private IP address, which means that anyone could access that resource by default.
A subnet becomes public by giving it an Internet Gateway.

An Internet Gateway creates a door that connects to the Internet so that your virtual network and certain subnets can communicate back and forth with Internet resources. It provides an entry point into your virtual network.
You can think of it in terms of configuring a home network. Before you connect to an Internet Service Provider (ISP) via a modem, you only have a private network that allows you to communicate only with resources within that network, and not the open Internet. Except as soon as you add a modem and pay for your service, plus add a router (if it doesn’t come bundled that way already) those resources within your private network can now access Internet resources.
While it functions differently, the concepts are very similar and this can be a good way for you to remember the difference between public and private subnets.
VPC Security Features
This separation of networks by using public and private subnets is referred to as network segmentation or network isolation, which is an architecture design choice that helps provide a layer of security.
VPCs offer other security features in addition, including:
- Traffic filtering
- Access control
- Capabilities for external connectivity
These security features are going to be the primary focus of this section, but before we can talk about them in more depth, let’s jump into the AWS console to see what a VPC looks like and how we can create one from scratch to fit our needs.
Go ahead and complete this lesson, and we’ll do that in the next!
Great explanation, understood.