# VPC Reachability Analyzer Automated Assessment
This SAM template provides a CloudFormation stack which deploys the infrastructure necessary for automated reachability assessment and notification using VPC Reachability Analyzer. Additionally, a sample Lambda function which detects security group changes, launches VPC Reachability Analyzer analyses, and notifies AWS administrators of any failed analyses is included.
### Services Used
- AWS Identity and Access Management
- Amazon EventBridge
- Amazon Simple Notification Service
- Amazon Virtual Private Cloud
- VPC Reachability Analyzer
- AWS CloudTrail
- AWS Lambda
### Requirements for deployment
- AWS CLI
- AWS Serverless Application Model CLI v1.15.0+
### Deploying
1. Clone this project to a local folder.
2. Change directory to inside the project folder.
3. Build the project using the SAM CLI in a terminal
```bash
sam build
```
4. Deploy the project using the SAM CLI in a terminal
```bash
sam deploy -g --capablities CAPABILITY_NAMED_IAM
```
#### Choose options
Options will be presented after executing the `sam deploy` command. Options are summarized below.
```bash
## The name of the CloudFormation stack
Stack Name [sam-app]:
## The region you want to deploy in
AWS Region [us-east-1]:
## The name of the SNS topic from which to send automated reachability assessment notifications
Parameter SnsTopicName []:
## The network block for the VPC which will be created by the template (i.e. 172.16.0.0/24)
Parameter VPCCidrBlock []:
## A subnet block residing within the VPCCidrBlock. (i.e. 172.16.0.0/26)
Confirm changes before deploy [y/N]:
## SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]:
## Save your choice for later deployments
Save arguments to samconfig.toml [Y/n]:
```
SAM will then deploy the AWS CloudFormation stack to your AWS account. The ouputs provided by the CloudFormation template will be helpful while working through the blog post.
## Cleanup
1. Open the CloudFormation console
1. Locate a stack named _reachability-analyzer_
1. Select the radio option next to it
1. Select **Delete**
1. Select **Delete stack** to confirm
## License
This library is licensed under the MIT-0 License. See the LICENSE file.