Amazon SOA-C02 Practice Exams
Last updated on Oct 22,2026- Exam Code: SOA-C02
- Exam Name: AWS Certified SysOps Administrator - Associate
- Certification Provider: Amazon
- Latest update: Oct 22,2026
A company runs its applications on a large number of Amazon EC2 instances. A SysOps administrator must implement a solution to notify the operations team whenever an EC2 instance slate changes.
What is the MOST operationally efficient solution that meets these requirements?
- A . Create a script that captures instance state changes and publishes a notification to an Amazon Simple Notification Service (Amazon SNS) topic. Use AWS Systems Manager Run Command to run the script on all EC2 instances.
- B . Create an Amazon EventBridge event rule that captures EC2 instance state changes. Set an Amazon Simple Notification Service (Amazon SNS) topic as the target.
- C . Create an Amazon EventBridge event rule that captures EC2 instance state changes. Set as the target an AWS Lambda function that publishes a notification to an Amazon Simple Notification Service (Amazon SNS) topic.
- D . Create an AWS Config custom rule that evaluates instance state changes with automatic remediation. Use the rule to invoke an AWS Lambda function that publishes a notification to an Amazon Simple Notification Service (Amazon SNS) topic.
B
Explanation:
The most operationally efficient way to monitor state changes in EC2 instances and notify the operations team is by using Amazon EventBridge. EventBridge can be configured with a rule that listens for state change events from EC2 instances. These events can then be directed to an Amazon Simple Notification Service (Amazon SNS) topic, which will distribute the notification to the relevant parties. This solution does not require deploying additional scripts or functions, thereby enhancing operational efficiency. Option B is correct. For more details, see the Amazon EventBridge documentation Amazon EventBridge.
A company requires that all IAM user accounts that have not been used for 90 days or more must have their access keys and passwords immediately disabled A SysOps administrator must automate the process of disabling unused keys using the MOST operationally efficient method.
How should the SysOps administrator implement this solution?
- A . Create an AWS Step Functions workflow to identify IAM users that have not been active for 90 days Run an AWS Lambda function when a scheduled Amazon EventBridge (Amazon CloudWatch Events) rule is invoked to automatically remove the AWS access keys and passwords for these IAM users
- B . Configure an AWS Config rule to identify IAM users that have not been active for 90 days Set up an automatic weekly batch process on an Amazon EC2 instance to disable the AWS access keys and passwords for these IAM users
- C . Develop and run a Python script on an Amazon EC2 instance to programmatically identify IAM users that have not been active for 90 days Automatically delete these 1AM users
- D . Set up an AWS Config managed rule to identify IAM users that have not been active for 90 days Set up an AWS Systems Manager automation runbook to disable the AWS access keys for these IAM users
D
Explanation:
To automate the process of disabling unused IAM user accounts that have not been active for 90 days, using an AWS Config managed rule with an AWS Systems Manager automation runbook is the most operationally efficient method.
Set Up AWS Config Managed Rule:
Open the AWS Config console.
Create a rule using the managed rule iam-user-no-policies-check.
Configure the rule to trigger when IAM users have not been active for 90 days.
AWS Systems Manager Automation Runbook:
Create a Systems Manager automation document (runbook) to disable the access keys for inactive IAM users.
Use the aws:executeAutomation action to disable access keys and passwords.
Schedule the Automation:
Use Amazon EventBridge (formerly CloudWatch Events) to schedule the automation to run
periodically.
Reference: AWS Config Managed Rules
AWS Systems Manager Automation
Scheduling AWS Systems Manager Automation
A SysOps administrator manages the caching of an Amazon CloudFront distribution that serves pages of a website. The SysOps administrator needs to configure the distribution so that the TTL of individual pages can vary. The TTL of the individual pages must remain within the maximum TTL and the minimum TTL that are set for the distribution.
Which solution will meet these requirements?
- A . Create an AWS Lambda function that calls the Create Invalid at ion API operation when a change in cache time is necessary.
- B . Add a Cache-Control: max-age directive to the object at the origin when content is being returned to CloudFront.
- C . Add a no-cache header through a Lambda@Edge function in response to the Viewer response.
- D . Add an Expires header through a CloudFront function in response to the Viewer response.
B
Explanation:
To allow the TTL (Time to Live) of individual pages to vary while adhering to the maximum and minimum TTL settings configured for the Amazon CloudFront distribution, setting cache behaviors directly at the origin is most effective:
Use Cache-Control Headers: By configuring the Cache-Control: max-age directive in the HTTP headers of the objects served from the origin, you can specify how long an object should be cached by CloudFront before it is considered stale.
Integration with CloudFront: When CloudFront receives a request for an object, it checks the cache-control header to determine the TTL for that specific object. This allows individual objects to have their own TTL settings, as long as they are within the globally set minimum and maximum TTL values
for the distribution.
Operational Efficiency: This method does not require any additional AWS services or modifications to the distribution settings. It leverages HTTP standard practices, ensuring compatibility and ease of management.
Implementing the TTL management through cache-control headers at the origin provides precise control over caching behavior, aligning with varying content freshness requirements without complex configurations.
The SysOps administrator needs to configure a website for CloudFront when the DNS CNAME record points to an S3 URL instead of CloudFront.
- A . Disable S3 Block Public Access on the S3 bucket.
- B . Create an S3 access point in the same AWS Region where the S3 bucket is located. Configure the access point policy to allow CloudFront to read from the S3 bucket. Point the CNAME record to the S3 access point name.
- C . Modify the value of the DNS CNAME record to be arn:aws:s3:::example-com-website-files instead of the S3 URI.
- D . Modify the value of the DNS CNAME record to be dllllllabcdef8.cloudfront.net instead of the S3 URI.
D
Explanation:
To correctly route traffic through CloudFront, the CNAME record should point to the CloudFront distribution’s domain (dllllllabcdef8.cloudfront.net). This ensures that requests reach CloudFront first, which then forwards them to the S3 bucket as configured.
Correcting the DNS Record: Changing the DNS CNAME record to point to the CloudFront distribution ensures that all requests go through CloudFront, leveraging its caching and content delivery capabilities.
No Need to Modify S3 Bucket: Since CloudFront accesses the S3 origin through its identity, there’s no need to disable S3 Block Public Access.
A company uses AWS CloudFormation to deploy its application infrastructure Recently, a user accidentally changed a property of a database in a CloudFormation template and performed a stack update that caused an interruption to the application A SysOps administrator must determine how to modify the deployment process to allow the DevOps team to continue to deploy the infrastructure, but prevent against accidental modifications to specific resources.
Which solution will meet these requirements?
- A . Set up an AWS Config rule to alert based on changes to any CloudFormation stack An AWS Lambda function can then describe the stack to determine if any protected resources were modified and cancel the operation
- B . Set up an Amazon CloudWatch Events event with a rule to trigger based on any CloudFormation API call An AWS Lambda function can then describe the stack to determine if any protected resources were modified and cancel the operation
- C . Launch the CloudFormation templates using a stack policy with an explicit allow for all resources and an explicit deny of the protected resources with an action of Update
- D . Attach an IAM policy to the DevOps team role that prevents a CloudFormation stack from updating, with a condition based on the specific Amazon Resource Names (ARNs) of the protected resources
C
Explanation:
A stack policy is used to protect specific resources within a CloudFormation stack from being unintentionally updated or deleted. By using a stack policy, you can explicitly deny updates to critical resources while allowing updates to other parts of the stack.
Create a Stack Policy:
Define a JSON stack policy that includes an explicit allow for all resources and an explicit deny for the protected resources. For example:
json
Copy code
{
"Statement": [
{
"Effect": "Allow",
"Action": "Update:*",
"Principal": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "Update:*",
"Principal": "*",
"Resource": "arn:aws:cloudformation:region:account-id:stack/stack-name/protected-resource"
}
]
}
Replace region, account-id, stack-name, and protected-resource with the appropriate values.
Apply the Stack Policy:
Navigate to the CloudFormation console.
Select the stack you want to protect.
Choose "Stack actions" and then "Edit stack policy".
Paste the stack policy JSON and save the policy.
Perform Stack Updates:
When performing stack updates, the stack policy will enforce the rules specified, preventing accidental updates to the protected resources.
Review and Adjust:
Periodically review the stack policy to ensure it still meets the needs of the organization and update it as necessary.
Reference: AWS CloudFormation Stack Policies
Creating and Applying a Stack Policy
A company currently runs its infrastructure within a VPC in a single Availability Zone The VPC is connected to the company’s on-premises data center through an AWS Site-to-SIte VPN connection attached to a virtual pnvate gateway. The on-premises route tables route all VPC networks to the VPN connection Communication between the two environments is working correctly. A SysOps administrator created new VPC subnets within a new Availability Zone, and deployed new resources within the subnets. However, communication cannot be established between the new resources and the on-premises environment.
Which steps should the SysOps administrator take to resolve the issue?
- A . Add a route to the route tables of the new subnets that send on-premises traffic to the virtual private gateway.
- B . Create a ticket with AWS Support to request adding Availability Zones to the Site-to-Site VPN route configuration.
- C . Establish a new Site-to-Site VPN connection between a virtual private gateway attached to the new Availability Zone and the on-premises data center
- D . Replace the Site-to-Site VPN connection with an AWS Direct Connect connection.
A
Explanation:
Adding a Route to the Route Tables:
When new subnets are created, they need appropriate routing to ensure communication with on-premises networks.
Steps:
Go to the AWS Management Console.
Navigate to VPC.
Select the route table associated with the new subnets.
Choose "Edit routes."
Add a new route with the destination CIDR block of the on-premises network.
For the target, select the virtual private gateway (VGW).
This ensures that traffic destined for the on-premises network is routed correctly through the VPN connection.
Reference: AWS VPC Route Tables
A large company is using AWS Organizations to manage its multi-account AWS environment. According to company policy, all users should have read-level access to a particular Amazon S3 bucket in a central account. The S3 bucket data should not be available outside the organization. A SysOps administrator must set up the permissions and add a bucket policy to the S3 bucket.
Which parameters should be specified to accomplish this in the MOST efficient manner?
- A . Specify "’ as the principal and PrincipalOrgld as a condition.
- B . Specify all account numbers as the principal.
- C . Specify PrincipalOrgld as the principal.
- D . Specify the organization’s management account as the principal.
A
Explanation:
Step-by-Step
Understand the Problem:
Ensure all users in the organization have read-level access to a specific S3 bucket. The data should not be accessible outside the organization. Analyze the Requirements:
Grant read access to users within the organization.
Prevent access from outside the organization.
Evaluate the Options:
Option A: Specify "*" as the principal and PrincipalOrgId as a condition.
This grants access to all AWS principals but restricts it to those within the specified organization using the PrincipalOrgId condition.
Option B: Specify all account numbers as the principal.
This is impractical for a large organization and requires constant updates if accounts are added or removed.
Option C: Specify PrincipalOrgId as the principal.
The PrincipalOrgId condition must be used within a policy, not as a principal.
Option D: Specify the organization’s management account as the principal.
This grants access only to the management account, not to all users within the organization.
Select the Best Solution:
Option A: Using "*" as the principal with the PrincipalOrgId condition ensures all users within the organization have the required access while preventing external access.
Reference: Amazon S3 Bucket Policies
AWS Organizations Policy Examples
Using "*" as the principal with the PrincipalOrgId condition efficiently grants read access to the S3 bucket for all users within the organization.
A company has a policy that requires all Amazon EC2 instances to have a specific set of tags. If an EC2 instance does not have the required tags, the noncompliant instance should be terminated.
What is the MOST operationally efficient solution that meets these requirements?
- A . Create an Amazon EventBridge (Amazon CloudWatch Events) rule to send all EC2 instance state changes to an AWS Lambda function to determine if each instance is compliant. Terminate any noncompliant instances.
- B . Create an IAM policy that enforces all EC2 instance tag requirements. If the required tags are not in place for an instance, the policy will terminate noncompliant instance.
- C . Create an AWS Lambda function to determine if each EC2 instance is compliant and terminate an instance if it is noncompliant. Schedule the Lambda function to invoke every 5 minutes.
- D . Create an AWS Config rule to check if the required tags are present. If an EC2 instance is noncompliant, invoke an AWS Systems Manager Automation document to terminate the instance.
D
Explanation:
https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html
To ensure all EC2 instances have the required tags and terminate any noncompliant instances, AWS Config can be used to check the compliance, and AWS Systems Manager Automation can be invoked to take action on noncompliant instances.
Create AWS Config Rule:
Open the AWS Config console at AWS Config Console.
Create a new rule to check for the required tags on EC2 instances. Use the managed rule required-
tags.
Create AWS Systems Manager Automation Document:
Open the AWS Systems Manager console at AWS Systems Manager Console. Create an Automation document to terminate noncompliant instances. Link AWS Config Rule to Automation:
In the AWS Config console, configure the rule to invoke the Systems Manager Automation document if an instance is found to be noncompliant.
Reference: AWS Config Rules
AWS Systems Manager Automation
AWS Config Managed Rules
A company has scientists who upload large data objects to an Amazon S3 bucket The scientists upload the objects as multipart uploads. The multipart uploads often fail because of poor end-client connectivity.
The company wants to optimize storage costs that are associated with the data. A SysOps administrator must implement a solution that presents metrics for incomplete uploads.
The solution also must automatically delete any incomplete uploads after 7 days.
Which solution will meet these requirements?
- A . Review the Incomplete Multipart Upload Bytes metre in the S3 Storage Lens dashboard Create an S3 Lifecycle policy to automatically delete any incomplete multipart uploads after 7 days.
- B . Implement S3 Intelligent-Tiering to move data into tower-cost storage classes after 7 days. Create an S3 Storage Lens policy to automatically delete any incomplete multipart uploads after 7 days.
- C . Access the S3 console Review the Metrics tab to check the storage that incomplete multipart uploads are consuming. Create an AWS Lambda function to delete any incomplete multipart uploads after 7 days.
- D . Use the S3 analytics storage class analysis tool to identify and measure incomplete multipart uploads. Configure an S3 bucket policy to enforce restrictions on multipart uploads to delete incomplete multipart uploads after 7 days.
A
Explanation:
S3 Storage Lens and Lifecycle Policies:
Incomplete Multipart Upload Bytes Metric: This metric in S3 Storage Lens helps you identify the storage consumed by incomplete multipart uploads.
S3 Lifecycle Policies: Lifecycle policies allow you to automatically manage the lifecycle of objects, including deleting incomplete multipart uploads after a specified number of days.
Steps:
Go to the AWS Management Console.
Navigate to S3 and select the bucket.
Go to the "Metrics" tab and view the "Incomplete Multipart Upload Bytes" metric in the S3 Storage Lens dashboard.
To create a lifecycle policy:
Select the bucket.
Go to the "Management" tab.
Under "Lifecycle rules," click "Create lifecycle rule."
Define a rule name.
Choose "Multipart upload" and specify "Delete incomplete multipart uploads" after 7 days.
Save the rule.
Reference: AWS S3 Storage Lens
AWS S3 Lifecycle Policies
A company hosts an internet web application on Amazon EC2 instances. The company is replacing the application with a new AWS Lambda function. During a transition period, the company must route some traffic to the legacy application and some traffic to the new Lambda function. The company needs to use the URL path of request to determine the routing.
Which solution will meet these requirements?
- A . Configure a Gateway Load Balancer to use the URL path to direct traffic to the legacy application and the new Lambda function.
- B . Configure a Network Load Balancer to use the URL path to direct traffic to the legacy application and the new Lambda function.
- C . Configure a Network Load Balancer to use a regular expression to match the URL path to direct traffic to the new Lambda function.
- D . Configure an Application Load Balancer to use the URL path to direct traffic to the legacy application and the new Lambda function.
D
Explanation:
To route traffic based on the URL path during a transition period where both an EC2-based legacy application and a new AWS Lambda function are in use:
Use of Application Load Balancer (ALB): ALBs support advanced request routing based on the URL path, among other criteria. This capability allows the ALB to evaluate the URL path of incoming requests and route them appropriately to either the legacy EC2 instances or the Lambda function.
Path-Based Routing Rules: Configure the ALB with rules that specify which URL paths should be directed to the EC2 instances and which should be routed to the Lambda function. For example, requests to /legacy/* might go to the EC2 instances, while /new/* could be directed to the Lambda function.
Integration with Lambda: ALBs can directly invoke Lambda functions in response to HTTP requests, making them ideal for scenarios where both server-based and serverless components are used in tandem.
This setup not only facilitates a smooth transition by enabling simultaneous operation of both components but also leverages the native capabilities of ALBs to manage traffic based on application requirements effectively.