Learn the subnet, endpoint, security-group, WAF, Shield, and secure-application-access patterns that show up in SAA-C03 workload-security scenarios.
This objective is where AWS combines networking and security into one design problem. SAA-C03 wants to know whether you can place resources in the right subnets, control traffic with the right layers, and expose only the parts of the application that actually need to be reachable.
VPC: Virtual Private Cloud, the AWS network boundary for subnets, routes, and attached security controls.
NACL: Network access control list, a stateless subnet-level packet filter.
DDoS: Distributed denial of service, where attackers overwhelm a service with traffic to exhaust capacity.
WAF: Web Application Firewall for Layer 7 request inspection and filtering.
The current exam guide points to application configuration and credentials security, AWS service endpoints, ports and protocols, VPC security components, segmentation strategies, secure application access, threat vectors such as DDoS and SQL injection, and security services such as Cognito, GuardDuty, Macie, Shield, WAF, and Secrets Manager. In practice, that means you need to reason about public versus private placement, security groups versus NACLs, private service access versus internet egress, and which security service actually fits the threat.
Start with exposure:
That sequence usually gets you to the right subnet, endpoint, and filtering choices faster than memorizing service names.
| Requirement | Strongest first fit | Why |
|---|---|---|
| Internet-facing HTTP application | ALB in public subnets, app tier in private subnets | Exposes the frontend without exposing the whole stack |
| Private subnet access to S3 or DynamoDB | Gateway endpoint | Avoids unnecessary NAT egress |
| Private access to most other AWS services | Interface endpoint | Keeps traffic private without public internet routing |
| Web-layer filtering | AWS WAF | Handles Layer 7 filtering and common web threats |
| DDoS baseline protection | AWS Shield Standard | Included by default for common AWS edge services |
| Layer | Best use | Common mistake |
|---|---|---|
| Security group | Instance, ENI, or workload-level stateful filtering | Reaching for NACLs first when the requirement is workload-specific |
| Network ACL | Coarse subnet-level stateless filtering | Treating it like a workload-aware firewall |
| WAF | HTTP and HTTPS request inspection | Using it as if it replaces subnet design or security groups |
| Shield | DDoS protection for supported edge-facing services | Expecting it to solve SQL injection or app-layer authorization |
Security groups are usually the primary answer because they are stateful, easier to reason about, and attach closer to the workload. NACLs are subnet-level and stateless. They matter, but SAA-C03 often uses them as distractors when a security-group-first design is cleaner.
This is the shape AWS wants you to recognize quickly:
flowchart LR
U["Users"] --> A["ALB in public subnets"]
A --> W["Web or app tier in private subnets"]
W --> D["Database tier in private subnets"]
W --> S["S3 or DynamoDB through VPC endpoint"]
What matters here is not the art. It is the exposure model:
If the application needs private access to AWS services, decide whether a gateway or interface endpoint matches the dependency. If it needs secrets, the exam usually wants you to remove hardcoded credentials rather than rotate bad patterns forever.
| Requirement | Strongest first fit | Why |
|---|---|---|
| S3 or DynamoDB access from private subnets | Gateway endpoint | Low-cost private access without NAT |
| Private access to services such as Secrets Manager or API endpoints | Interface endpoint | Private connectivity for most other AWS services |
| Application secret rotation and retrieval | Secrets Manager | Strong fit when rotation and managed secret handling matter |
SAA-C03 often places several identity-flavored services in the same answer set. Do not collapse them into one bucket.
| Requirement | Strongest first fit | Why |
|---|---|---|
| Workforce SSO into AWS accounts and AWS-managed business applications | IAM Identity Center | Central workforce identity and account access pattern |
| End-user sign-in for a web or mobile application | Cognito | Application user pools, federation, and token-based app access |
| Application secret storage and managed rotation | Secrets Manager | Credential lifecycle and retrieval, not end-user identity |
If the users are employees accessing AWS accounts, think workforce identity. If the users are customers signing in to the application itself, think application identity.
The task statement is not limited to in-VPC design. AWS also tests whether you can pick the right secure connection model at the network boundary.
| Requirement | Strongest first fit | Why |
|---|---|---|
| Fastest way to create encrypted hybrid connectivity | Site-to-Site VPN | Quick to establish and secure over the internet |
| More predictable bandwidth and latency for steady hybrid traffic | Direct Connect, often with VPN backup | Better fit for stable private connectivity and larger data movement |
| Private access to a service across VPC or account boundaries without broad routing exposure | PrivateLink | Exposes the service privately without full mesh connectivity |
Do not confuse secure connectivity into AWS with secure identity inside the application. VPN and Direct Connect solve transport questions. Cognito, IAM Identity Center, and Secrets Manager solve different identity or secret-management questions.
This is the kind of secure-workload pattern SAA-C03 expects you to read quickly.
1Parameters:
2 VpcId:
3 Type: AWS::EC2::VPC::Id
4 PrivateSubnetA:
5 Type: AWS::EC2::Subnet::Id
6 PrivateSubnetB:
7 Type: AWS::EC2::Subnet::Id
8
9Resources:
10 AlbSecurityGroup:
11 Type: AWS::EC2::SecurityGroup
12 Properties:
13 GroupDescription: Allow HTTPS from the internet to the ALB
14 VpcId: !Ref VpcId
15 SecurityGroupIngress:
16 - IpProtocol: tcp
17 FromPort: 443
18 ToPort: 443
19 CidrIp: 0.0.0.0/0
20
21 AppSecurityGroup:
22 Type: AWS::EC2::SecurityGroup
23 Properties:
24 GroupDescription: Allow HTTPS only from the ALB
25 VpcId: !Ref VpcId
26 SecurityGroupIngress:
27 - IpProtocol: tcp
28 FromPort: 443
29 ToPort: 443
30 SourceSecurityGroupId: !Ref AlbSecurityGroup
31
32 SecretsManagerEndpoint:
33 Type: AWS::EC2::VPCEndpoint
34 Properties:
35 VpcId: !Ref VpcId
36 ServiceName: !Sub "com.amazonaws.${AWS::Region}.secretsmanager"
37 VpcEndpointType: Interface
38 PrivateDnsEnabled: true
39 SubnetIds:
40 - !Ref PrivateSubnetA
41 - !Ref PrivateSubnetB
42 SecurityGroupIds:
43 - !Ref AppSecurityGroup
What to notice:
If the scenario is about customer-facing sign-in, user identities, or mobile and web app authentication, Amazon Cognito often fits. If the scenario is about infrastructure threat detection or data-classification findings, GuardDuty or Macie fit different jobs. Do not collapse all “security services” into one bucket.
| Threat or requirement | Strongest first fit | Why |
|---|---|---|
| SQL injection or HTTP request filtering | AWS WAF | App-layer filtering for web traffic |
| DDoS baseline protection on supported AWS edge services | AWS Shield Standard | Default protection for common edge-facing resources |
| Threat detection from logs and telemetry | GuardDuty | Detects suspicious behavior and potential compromise |
| Sensitive-data discovery or classification findings in S3 | Macie | Data-discovery answer, not network filtering |
| End-user sign-in for web or mobile application | Cognito | Application identity and token management |
SAA-C03 often gives two security services that both sound credible. The better answer is the one that matches the exact layer of the problem.
| Symptom | Strongest first check | Why |
|---|---|---|
| Private workloads reach AWS services only through a costly NAT path | VPC endpoint fit | The workload may not need internet egress at all |
| The app tier is private, but secrets are still stored in user data or config files | Secret-management design | Network placement does not fix credential sprawl |
| The architecture uses WAF, but backend tiers are still publicly reachable | Subnet and security-group design | App-layer filtering does not replace exposure control |
| A security service is selected because it sounds “protective” | Service-to-threat fit | GuardDuty, Macie, WAF, Shield, and Cognito solve different problems |
Continue with 1.3 Data Security Controls to move from workload placement into encryption, access policy, lifecycle, backup, and replication choices.