https://github.com/inspec/inspec-aws
InSpec AWS Resource Pack https://www.inspec.io/
https://github.com/inspec/inspec-aws
aws inspec
Last synced: 4 months ago
JSON representation
InSpec AWS Resource Pack https://www.inspec.io/
- Host: GitHub
- URL: https://github.com/inspec/inspec-aws
- Owner: inspec
- License: other
- Created: 2019-02-15T15:34:39.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-10-11T10:50:08.000Z (over 1 year ago)
- Last Synced: 2024-11-19T21:36:08.892Z (over 1 year ago)
- Topics: aws, inspec
- Language: Ruby
- Homepage:
- Size: 7.62 MB
- Stars: 136
- Watchers: 16
- Forks: 106
- Open Issues: 109
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.MD
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# InSpec for AWS
* **Project State: Maintained**
For more information on project states and SLAs, see [this documentation](https://github.com/chef/chef-oss-practices/blob/master/repo-management/repo-states.md).
This InSpec resource pack uses the AWS Ruby SDK v3 and provides the required resources to write tests for resources in AWS.
## Prerequisites
### AWS Credentials
Valid AWS credentials are required, see [AWS Documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal)
There are multiple ways to set the AWS credentials, as shown below:
#### 1) Environment Variables
Set your AWS credentials in a `.envrc` file or export them in your shell. (See example [.envrc file](.envrc_example))
```bash
# Example configuration
export AWS_ACCESS_KEY_ID="AKIAJUMP347SLS66IGCQ"
export AWS_SECRET_ACCESS_KEY="vD2lfoNvPdwsofqyuO9jRuWUkZIMqisdfeFmkHTy7ON+w"
export AWS_REGION="eu-west-3"
export AWS_AVAILABILITY_ZONE="eu-west-3a"
```
##### 2) Configuration File
Set your AWS credentials in `~/.aws/config` and `~/.aws/credentials` file. (See example [aws configure credentials](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html))
Example `~/.aws/credentials` :
```bash
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[engineering]
aws_access_key_id=AKIAIOSFODNN7EXAMPLF
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY1
```
Example `~/.aws/config` :
```bash
[default]
region=us-west-2
[engineering]
region=us-east-2
```
AWS SDK selects the default credentials unless `aws_profile` is set in an `.envrc`.
```bash
# Example configuration
export AWS_PROFILE="engineering"
```
##### The credentials precedence is
1. Credentials set in `.envrc` OR as an Environment variable.
2. Credentials set in `~/.aws/credentials` AND `~/.aws/config` AND `AWS_PROFILE` set as an Environment variable.
3. Credentials set in `~/.aws/credentials` AND `~/.aws/config` AND `AWS_PROFILE` is NOT set as an Environment variable. Default credentials are used.
### AWS Region
The `aws_region` parameter queries resources in a specific region. If not provided, the AWS region set in environment variables or configuration files are used.
Example:
```ruby
describe aws_ec2_instances(aws_region: 'us-west-2') do
its('count') { should eq 10 }
end
```
### Assuming an IAM role
Assuming an IAM role allows an IAM users gain additional (or different) permissions to perform actions in a different AWS account. (See example [aws configure IAM role](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html))
Example:
```bash
[profile example_profile]
role_arn = arn:aws:iam::123456789012:role/example_profile
source_profile = user1
```
### Permissions
Each resource requires specific permissions to perform the operations required for testing. For example, to test an AWS EC2 instance, your service principal requires the `ec2:DescribeInstances` and `iam:GetInstanceProfile` permissions. You can find a comprehensive list of each resource's permissions needed in the [documentation](docs/).
## Use the Resources
Since this is an InSpec resource pack, it defines the InSpec resources and includes example tests only. To use the AWS resources in your tests, do the following:
```bash
inspec init profile --platform aws my-profile
```
The above command generates a sample inspec.yml that depends on `master`. We recommend this is pinned to a release of the resource pack as follows:
```yaml
name: my-profile
title: My own AWS profile
version: 0.1.0
inspec_version: '>= 4.6.9'
depends:
- name: inspec-aws
url: https://github.com/inspec/inspec-aws/archive/x.tar.gz
supports:
- platform: aws
```
### Use the Resources
Since this is an InSpec resource pack, it only defines InSpec resources. To use these resources in your controls, create your profile:
#### Create a profile
```bash
inspec init profile --platform aws my-profile
```
The above command generates a sample inspec.yml that depends on `master`. We recommend this is pinned to a release of the resource pack as follows.
Example `inspec.yml`:
```yaml
name: my-profile
title: My own AWS profile
version: 0.1.0
inspec_version: '>= 4.6.9'
depends:
- name: inspec-aws
url: https://github.com/inspec/inspec-aws/archive/x.tar.gz
supports:
- platform: aws
```
(For available inspec-aws versions, see this list of [inspec-aws versions](https://github.com/inspec/inspec-aws/releases).)
If a resource is in local, change the `url` to `path`.
```yaml
name: my-profile
title: My own AWS profile
version: 0.1.0
inspec_version: '>= 4.6.9'
depends:
- name: inspec-aws
path: ../my-profile
supports:
- platform: aws
```
(For available inspec-aws versions, see this list of [inspec-aws versions](https://github.com/inspec/inspec-aws/releases).)
Add some tests and run the profile via:
```bash
inspec exec my-profile -t aws://
```
## Resource documentation
This resource pack allows the testing of the following AWS resources. If a resource you wish to test is not listed, please feel free to open an [Issue](https://github.com/inspec/inspec-aws/issues). As an open-source project, we also welcome public contributions via [Pull Request](https://github.com/inspec/inspec-aws/pulls).
InSpec AWS Supported Resources [https://docs.chef.io/inspec/resources/](https://docs.chef.io/inspec/resources/)
| Module Name | Services | Resource & Property Reference | Singular Resource | Plural Resource |
|--------------------------|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| AmazonMQ | Application Integration | [AWS::AmazonMQ::Broker](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html) | [aws_mq_broker](https://docs.chef.io/inspec/resources/aws_mq_broker/) | [aws_mq_brokers](https://docs.chef.io/inspec/resources/aws_mq_brokers/) |
| | | [AWS::AmazonMQ::Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html) | [aws_mq_configuration](https://docs.chef.io/inspec/resources/aws_mq_configuration/) | [aws_mq_configurations](https://docs.chef.io/inspec/resources/aws_mq_configurations/) |
| Amplify Console | Front-end Web & Mobile | [AWS::Amplify::App](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html) | [aws_amplify_app](https://docs.chef.io/inspec/resources/aws_amplify_app/) | [aws_amplify_apps](https://docs.chef.io/inspec/resources/aws_amplify_apps/) |
| | | [AWS::Amplify::Branch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html) | [aws_amplify_branch](https://docs.chef.io/inspec/resources/aws_amplify_branch/) | [aws_amplify_branches](https://docs.chef.io/inspec/resources/aws_amplify_branches/) |
| API Gateway | Networking & Content Delivery | [AWS::ApiGateway::Account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html) | [aws_apigateway_account](https://docs.chef.io/inspec/resources/aws_apigateway_account/) | No Plural Resource |
| | | [AWS::ApiGateway::ApiKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html) | [aws_apigateway_api_key](https://docs.chef.io/inspec/resources/aws_apigateway_api_key/) | [aws_apigateway_api_keys](https://docs.chef.io/inspec/resources/aws_apigateway_api_keys/) |
| | | [AWS::ApiGateway::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html) | [aws_apigateway_authorizer](https://docs.chef.io/inspec/resources/aws_apigateway_authorizer/) | [aws_apigateway_authorizers](https://docs.chef.io/inspec/resources/aws_apigateway_authorizers/) |
| | | [AWS::ApiGateway::BasePathMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html) | [aws_apigateway_base_path_mapping](https://docs.chef.io/inspec/resources/aws_apigateway_base_path_mapping/) | [aws_apigateway_base_path_mappings](https://docs.chef.io/inspec/resources/aws_apigateway_base_path_mappings/) |
| | | [AWS::ApiGateway::ClientCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html) | [aws_apigateway_client_certificate](https://docs.chef.io/inspec/resources/aws_apigateway_client_certificate/) | [aws_apigateway_client_certificates](https://docs.chef.io/inspec/resources/aws_apigateway_client_certificates/) |
| | | [AWS::ApiGateway::Deployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html) | [aws_api_gateway_deployment](https://docs.chef.io/inspec/resources/aws_api_gateway_deployment/) | [aws_api_gateway_deployments](https://docs.chef.io/inspec/resources/aws_api_gateway_deployments/) |
| | | [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) | [aws_api_gateway_documentation_part](https://docs.chef.io/inspec/resources/aws_api_gateway_documentation_part/) | [aws_api_gateway_documentation_parts](https://docs.chef.io/inspec/resources/aws_api_gateway_documentation_parts/) |
| | | [AWS::ApiGateway::DocumentationVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html) | [aws_api_gateway_documentation_version](https://docs.chef.io/inspec/resources/aws_api_gateway_documentation_version/) | [aws_api_gateway_documentation_versions](https://docs.chef.io/inspec/resources/aws_api_gateway_documentation_versions/) |
| | | [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) | [aws_api_gateway_domain_name](https://docs.chef.io/inspec/resources/aws_api_gateway_domain_name/) | [aws_api_gateway_domain_names](https://docs.chef.io/inspec/resources/aws_api_gateway_domain_names/) |
| | | [AWS::ApiGateway::GatewayResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html) | [aws_api_gateway_response](https://docs.chef.io/inspec/resources/aws_api_gateway_response/) | [aws_api_gateway_responses](https://docs.chef.io/inspec/resources/aws_api_gateway_responses/) |
| | | [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) | [aws_api_gateway_method](https://docs.chef.io/inspec/resources/aws_api_gateway_method/) | [aws_api_gateway_methods](https://docs.chef.io/inspec/resources/aws_api_gateway_methods/) |
| | | [AWS::ApiGateway::Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html) | [aws_api_gateway_model](https://docs.chef.io/inspec/resources/aws_api_gateway_model/) | [aws_api_gateway_models](https://docs.chef.io/inspec/resources/aws_api_gateway_models/) |
| | | [AWS::ApiGateway::RequestValidator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html) | [aws_api_gateway_request_validator](https://docs.chef.io/inspec/resources/aws_api_gateway_request_validator/) | [aws_api_gateway_request_validators](https://docs.chef.io/inspec/resources/aws_api_gateway_request_validators/) |
| | | [AWS::ApiGateway::Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html) | [aws_api_gateway_resource](https://docs.chef.io/inspec/resources/aws_api_gateway_resource/) | [aws_api_gateway_resources](https://docs.chef.io/inspec/resources/aws_api_gateway_resources/) |
| | | [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) | [aws_api_gateway_restapi](https://docs.chef.io/inspec/resources/aws_api_gateway_restapi/) | [aws_api_gateway_restapis](https://docs.chef.io/inspec/resources/aws_api_gateway_restapis/) |
| | | [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) | [aws_api_gateway_stage](https://docs.chef.io/inspec/resources/aws_api_gateway_stage/) | [aws_api_gateway_stages](https://docs.chef.io/inspec/resources/aws_api_gateway_stages/) |
| | | [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) | [aws_api_gateway_usage_plan](https://docs.chef.io/inspec/resources/aws_api_gateway_usage_plan/) | [aws_api_gateway_usage_plans](https://docs.chef.io/inspec/resources/aws_api_gateway_usage_plans/) |
| | | [AWS::ApiGateway::UsagePlanKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) | [aws_api_gateway_usage_plan_key](https://docs.chef.io/inspec/resources/aws_api_gateway_usage_plan_key/) | [aws_api_gateway_usage_plan_keys](https://docs.chef.io/inspec/resources/aws_api_gateway_usage_plan_keys/) |
| | | [AWS::ApiGateway::VpcLink](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html) | [aws_api_gateway_vpc_link](https://docs.chef.io/inspec/resources/aws_api_gateway_vpc_link/) | [aws_api_gateway_vpc_links](https://docs.chef.io/inspec/resources/aws_api_gateway_vpc_links/) |
| Application Auto Scaling | Compute | [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) | [aws_application_autoscaling_scalable_target](https://docs.chef.io/inspec/resources/aws_application_autoscaling_scalable_target/) | [aws_application_autoscaling_scalable_targets](https://docs.chef.io/inspec/resources/aws_application_autoscaling_scalable_targets/) |
| | | [AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html) | [aws_application_autoscaling_scaling_policy](https://docs.chef.io/inspec/resources/aws_application_autoscaling_scaling_policy/) | [aws_application_autoscaling_scaling_policies](https://docs.chef.io/inspec/resources/aws_application_autoscaling_scaling_policies/) |
| Athena | Analytics | [AWS::Athena::WorkGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html) | [aws_athena_work_group](https://docs.chef.io/inspec/resources/aws_athena_work_group/) | [aws_athena_work_groups](https://docs.chef.io/inspec/resources/aws_athena_work_groups/) |
| Amazon EC2 Auto Scaling | Compute | [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html) | [aws_auto_scaling_group](https://docs.chef.io/inspec/resources/aws_auto_scaling_group/) | [aws_auto_scaling_groups](https://docs.chef.io/inspec/resources/aws_auto_scaling_groups/) |
| | | [AWS::AutoScaling::LaunchConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html) | [aws_launch_configuration](https://docs.chef.io/inspec/resources/aws_launch_configuration/) | No Plural Resource |
| | | [AWS::AutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html) | [aws_autoscaling_scaling_policy](https://docs.chef.io/inspec/resources/aws_autoscaling_scaling_policy/) | [aws_autoscaling_scaling_policies](https://docs.chef.io/inspec/resources/aws_autoscaling_scaling_policies/) |
| AWS Batch | Compute | [AWS::Batch::ComputeEnvironment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html) | [aws_batch_compute_environment](https://docs.chef.io/inspec/resources/aws_batch_compute_environment/) | [aws_batch_compute_environments](https://docs.chef.io/inspec/resources/aws_batch_compute_environments/) |
| | | [AWS::Batch::JobDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html) | [aws_batch_job_definition](https://docs.chef.io/inspec/resources/aws_batch_job_definition/) | [aws_batch_job_definitions](https://docs.chef.io/inspec/resources/aws_batch_job_definitions/) |
| | | [AWS::Batch::JobQueue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html) | [aws_batch_job_queue](https://docs.chef.io/inspec/resources/aws_batch_job_queue/) | [aws_batch_job_queues](https://docs.chef.io/inspec/resources/aws_batch_job_queues/) |
| CloudFormation | Management & Governance | [AWS::CloudFormation::Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html) | [aws_cloudformation_stack](https://docs.chef.io/inspec/resources/aws_cloudformation_stack/) | [aws_cloudformation_stacks](https://docs.chef.io/inspec/resources/aws_cloudformation_stacks/) |
| | | [AWS::CloudFormation::StackSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html) | [aws_cloud_formation_stack_set](https://docs.chef.io/inspec/resources/aws_cloud_formation_stack_set/) | [aws_cloud_formation_stack_sets](https://docs.chef.io/inspec/resources/aws_cloud_formation_stack_sets/) |
| | | Others | [aws_cloudformation_template](https://docs.chef.io/inspec/resources/aws_cloudformation_template/) | No Plural Resource |
| CloudFront | Networking & Content Delivery | [AWS::CloudFront::CachePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cachepolicy.html) | [aws_cloudfront_cache_policy](https://docs.chef.io/inspec/resources/aws_cloudfront_cache_policy/) | [aws_cloudfront_cache_policies](https://docs.chef.io/inspec/resources/aws_cloudfront_cache_policies/) |
| | | [AWS::CloudFront::CloudFrontOriginAccessIdentity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html) | [aws_cloudfront_origin_access_identity](https://docs.chef.io/inspec/resources/aws_cloudfront_origin_access_identity/) | [aws_cloudfront_origin_access_identities](https://docs.chef.io/inspec/resources/aws_cloudfront_origin_access_identities/) |
| | | [AWS::CloudFront::Distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html) | [aws_cloudfront_distribution](https://docs.chef.io/inspec/resources/aws_cloudfront_distribution/) | [aws_cloudfront_distributions](https://docs.chef.io/inspec/resources/aws_cloudfront_distributions/) |
| | | [AWS::CloudFront::KeyGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html) | [aws_cloudfront_key_group](https://docs.chef.io/inspec/resources/aws_cloudfront_key_group/) | [aws_cloudfront_key_groups](https://docs.chef.io/inspec/resources/aws_cloudfront_key_groups/) |
| | | [AWS::CloudFront::OriginRequestPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originrequestpolicy.html) | [aws_cloud_front_origin_request_policy](https://docs.chef.io/inspec/resources/aws_cloud_front_origin_request_policy/) | No Plural Resource |
| | | [AWS::CloudFront::PublicKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html) | [aws_cloudfront_public_key](https://docs.chef.io/inspec/resources/aws_cloudfront_public_key/) | [aws_cloudfront_public_keys](https://docs.chef.io/inspec/resources/aws_cloudfront_public_keys/) |
| | | [AWS::CloudFront::RealtimeLogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html) | [aws_cloudfront_realtime_log_config](https://docs.chef.io/inspec/resources/aws_cloudfront_realtime_log_config/) | [aws_cloudfront_realtime_log_configs](https://docs.chef.io/inspec/resources/aws_cloudfront_realtime_log_configs/) |
| | | [AWS::CloudFront::StreamingDistribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html) | [aws_cloudfront_streaming_distribution](https://docs.chef.io/inspec/resources/aws_cloudfront_streaming_distribution/) | [aws_cloudfront_streaming_distributions](https://docs.chef.io/inspec/resources/aws_cloudfront_streaming_distributions/) |
| CloudTrail | Management & Governance | [AWS::CloudTrail::Trail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html) | [aws_cloudtrail_trail](https://docs.chef.io/inspec/resources/aws_cloudtrail_trail/) | [aws_cloudtrail_trails](https://docs.chef.io/inspec/resources/aws_cloudtrail_trails/) |
| CloudWatch | Management & Governance | [AWS::CloudWatch::Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html) | [aws_cloudwatch_alarm](https://docs.chef.io/inspec/resources/aws_cloudwatch_alarm/) | No Plural Resource |
| | | [AWS::CloudWatch::AnomalyDetector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html) | [aws_cloudwatch_anomaly_detector](https://docs.chef.io/inspec/resources/aws_cloudwatch_anomaly_detector/) | [aws_cloudwatch_anomaly_detectors](https://docs.chef.io/inspec/resources/aws_cloudwatch_anomaly_detectors/) |
| | | [AWS::CloudWatch::CompositeAlarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html) | [aws_cloudwatch_composite_alarm](https://docs.chef.io/inspec/resources/aws_cloudwatch_composite_alarm/) | [aws_cloudwatch_composite_alarms](https://docs.chef.io/inspec/resources/aws_cloudwatch_composite_alarms/) |
| | | [AWS::CloudWatch::Dashboard](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html) | [aws_cloudwatch_dashboard](https://docs.chef.io/inspec/resources/aws_cloudwatch_dashboard/) | [aws_cloudwatch_dashboards](https://docs.chef.io/inspec/resources/aws_cloudwatch_dashboards/) |
| | | [AWS::CloudWatch::InsightRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html) | No Singular Resource | [aws_cloudwatch_insight_rules](https://docs.chef.io/inspec/resources/aws_cloudwatch_insight_rules/) |
| | | [AWS::CloudWatch::MetricStream](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html) | [aws_cloudwatch_metric_stream](https://docs.chef.io/inspec/resources/aws_cloudwatch_metric_stream/) | [aws_cloudwatch_metric_streams](https://docs.chef.io/inspec/resources/aws_cloudwatch_metric_streams/) |
| CloudWatch Logs | Management & Governance | [AWS::Logs::Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html) | [aws_cloudwatchlogs_destination](https://docs.chef.io/inspec/resources/aws_cloudwatchlogs_destination/) | [aws_cloudwatchlogs_destinations](https://docs.chef.io/inspec/resources/aws_cloudwatchlogs_destinations/) |
| | | [AWS::Logs::LogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) | [aws_cloudwatch_log_group](https://docs.chef.io/inspec/resources/aws_cloudwatch_log_group/) | No Plural Resource |
| | | [AWS::Logs::LogStream](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html) | [aws_cloudwatchlogs_log_stream](https://docs.chef.io/inspec/resources/aws_cloudwatchlogs_log_stream/) | [aws_cloudwatchlogs_log_streams](https://docs.chef.io/inspec/resources/aws_cloudwatchlogs_log_streams/) |
| | | [AWS::Logs::MetricFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html) | [aws_cloudwatch_log_metric_filter](https://docs.chef.io/inspec/resources/aws_cloudwatch_log_metric_filter/) | No Plural Resource |
| | | | [aws_logs_metric_filter](https://docs.chef.io/inspec/resources/aws_logs_metric_filter/) | [aws_logs_metric_filters](https://docs.chef.io/inspec/resources/aws_logs_metric_filters/) |
| | | [AWS::Logs::SubscriptionFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html) | [aws_cloudwatchlogs_subscription_filter](https://docs.chef.io/inspec/resources/aws_cloudwatchlogs_subscription_filter/) | [aws_cloudwatchlogs_subscription_filters](https://docs.chef.io/inspec/resources/aws_cloudwatchlogs_subscription_filters/) |
| Amazon Cognito | Security, Identity, & Compliance | [AWS::Cognito::IdentityPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html) | [aws_cognito_identity_pool](https://docs.chef.io/inspec/resources/aws_cognito_identity_pool/) | [aws_cognito_identity_pools](https://docs.chef.io/inspec/resources/aws_cognito_identity_pools/) |
| | | [AWS::Cognito::UserPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html) | [aws_cognito_userpool](https://docs.chef.io/inspec/resources/aws_cognito_userpool/) | [aws_cognito_userpools](https://docs.chef.io/inspec/resources/aws_cognito_userpools/) |
| | | [AWS::Cognito::UserPoolClient](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html) | [aws_cognito_userpool_client](https://docs.chef.io/inspec/resources/aws_cognito_userpool_client/) | [aws_cognito_userpool_clients](https://docs.chef.io/inspec/resources/aws_cognito_userpool_clients/) |
| Config | Management & Governance | [AWS::Config::ConfigurationRecorder](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html) | [aws_config_recorder](https://docs.chef.io/inspec/resources/aws_config_recorder/) | No Plural Resource |
| | | [AWS::Config::DeliveryChannel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html) | [aws_config_delivery_channel](https://docs.chef.io/inspec/resources/aws_config_delivery_channel/) | No Plural Resource |
| DMS | Compute | [AWS::DMS::Endpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html) | [aws_dms_endpoint](https://docs.chef.io/inspec/resources/aws_dms_endpoint/) | [aws_dms_endpoints](https://docs.chef.io/inspec/resources/aws_dms_endpoints/) |
| | | [AWS::DMS::ReplicationInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html) | [aws_dms_replication_instance](https://docs.chef.io/inspec/resources/aws_dms_replication_instance/) | [aws_dms_replication_instances](https://docs.chef.io/inspec/resources/aws_dms_replication_instances/) |
| | | [AWS::DMS::ReplicationSubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html) | [aws_dms_replication_subnet_group](https://docs.chef.io/inspec/resources/aws_dms_replication_subnet_group/) | [aws_dms_replication_subnet_groups](https://docs.chef.io/inspec/resources/aws_dms_replication_subnet_groups/) |
| DynamoDB | Database | [AWS::DynamoDB::Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html) | [aws_dynamodb_table](https://docs.chef.io/inspec/resources/aws_dynamodb_table/) | [aws_dynamodb_tables](https://docs.chef.io/inspec/resources/aws_dynamodb_tables/) |
| EC2 | Compute | [AWS::EC2::CapacityReservation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html) | [aws_ec2_capacity_reservation](https://docs.chef.io/inspec/resources/aws_ec2_capacity_reservation/) | [aws_ec2_capacity_reservations](https://docs.chef.io/inspec/resources/aws_ec2_capacity_reservations/) |
| | | [AWS::EC2::CarrierGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html) | [aws_ec2_carrier_gateway](https://docs.chef.io/inspec/resources/aws_ec2_carrier_gateway/) | [aws_ec2_carrier_gateways](https://docs.chef.io/inspec/resources/aws_ec2_carrier_gateways/) |
| | | [AWS::EC2::CustomerGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html) | [aws_ec2_customer_gateway](https://docs.chef.io/inspec/resources/aws_ec2_customer_gateway/) | [aws_ec2_customer_gateways](https://docs.chef.io/inspec/resources/aws_ec2_customer_gateways/) |
| | | [AWS::EC2::DHCPOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html) | No Singular Resource | [aws_dhcp_options](https://docs.chef.io/inspec/resources/aws_dhcp_options/) |
| | | | [aws_ec2_dhcp_option](https://docs.chef.io/inspec/resources/aws_ec2_dhcp_option/) | [aws_ec2_dhcp_options](https://docs.chef.io/inspec/resources/aws_ec2_dhcp_options/) |
| | | [AWS::EC2::Fleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html) | [aws_ec2_fleet](https://docs.chef.io/inspec/resources/aws_ec2_fleet/) | [aws_ec2_fleets](https://docs.chef.io/inspec/resources/aws_ec2_fleets/) |
| | | [AWS::EC2::EgressOnlyInternetGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html) | [aws_ec2_egress_only_internet_gateway](https://docs.chef.io/inspec/resources/aws_ec2_egress_only_internet_gateway/) | [aws_ec2_egress_only_internet_gateways](https://docs.chef.io/inspec/resources/aws_ec2_egress_only_internet_gateways/) |
| | | [AWS::EC2::EIP](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html) | [aws_ec2_eip](https://docs.chef.io/inspec/resources/aws_ec2_eip/) | [aws_ec2_eips](https://docs.chef.io/inspec/resources/aws_ec2_eips/) |
| | | [AWS::EC2::EIPAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html) | [aws_ec2_eip_association](https://docs.chef.io/inspec/resources/aws_ec2_eip_association/) | [aws_ec2_eip_associations](https://docs.chef.io/inspec/resources/aws_ec2_eip_associations/) |
| | | [AWS::EC2::FlowLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html) | [aws_flow_log](https://docs.chef.io/inspec/resources/aws_flow_log/) | No Plural Resource |
| | | [AWS::EC2::Host](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html) | [aws_ec2_host](https://docs.chef.io/inspec/resources/aws_ec2_host/) | [aws_ec2_hosts](https://docs.chef.io/inspec/resources/aws_ec2_hosts/) |
| | | [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) | [aws_ec2_instance](https://docs.chef.io/inspec/resources/aws_ec2_instance/) | [aws_ec2_instances](https://docs.chef.io/inspec/resources/aws_ec2_instances/) |
| | | [AWS::EC2::InternetGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html) | [aws_ec2_internet_gateway](https://docs.chef.io/inspec/resources/aws_ec2_internet_gateway/) | [aws_ec2_internet_gateways](https://docs.chef.io/inspec/resources/aws_ec2_internet_gateways/) |
| | | | [aws_internet_gateway](https://docs.chef.io/inspec/resources/aws_internet_gateway/) | [aws_internet_gateways](https://docs.chef.io/inspec/resources/aws_internet_gateways/) |
| | | [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) | [aws_ec2_launch_template](https://docs.chef.io/inspec/resources/aws_ec2_launch_template/) | [aws_ec2_launch_templates](https://docs.chef.io/inspec/resources/aws_ec2_launch_templates/) |
| | | [AWS::EC2::NatGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html) | [aws_nat_gateway](https://docs.chef.io/inspec/resources/aws_nat_gateway/) | [aws_nat_gateways](https://docs.chef.io/inspec/resources/aws_nat_gateways/) |
| | | [AWS::EC2::NetworkAcl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html) | [aws_network_acl](https://docs.chef.io/inspec/resources/aws_network_acl/) | [aws_network_acls](https://docs.chef.io/inspec/resources/aws_network_acls/) |
| | | [AWS::EC2::NetworkAclEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html) | [aws_network_acl](https://docs.chef.io/inspec/resources/aws_network_acl/) | [aws_network_acls](https://docs.chef.io/inspec/resources/aws_network_acls/) |
| | | [AWS::EC2::NetworkInsightsAnalysis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html) | [aws_ec2_network_insights_analysis](https://docs.chef.io/inspec/resources/aws_ec2_network_insights_analysis/) | [aws_ec2_network_insights_analysis_plural](https://docs.chef.io/inspec/resources/aws_ec2_network_insights_analysis_plural/) |
| | | [AWS::EC2::NetworkInsightsPath](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html) | [aws_ec2_network_insights_path](https://docs.chef.io/inspec/resources/aws_ec2_network_insights_path/) | [aws_ec2_network_insights_paths](https://docs.chef.io/inspec/resources/aws_ec2_network_insights_paths/) |
| | | [AWS::EC2::NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html) | [aws_ec2_network_interface](https://docs.chef.io/inspec/resources/aws_ec2_network_interface/) | [aws_ec2_network_interfaces](https://docs.chef.io/inspec/resources/aws_ec2_network_interfaces/) |
| | | [AWS::EC2::NetworkInterfaceAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html) | [aws_ec2_network_interface_attachment](https://docs.chef.io/inspec/resources/aws_ec2_network_interface_attachment/) | [aws_ec2_network_interface_attachments](https://docs.chef.io/inspec/resources/aws_ec2_network_interface_attachments/) |
| | | [AWS::EC2::NetworkInterfacePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html) | [aws_ec2_network_interface_permission](https://docs.chef.io/inspec/resources/aws_ec2_network_interface_permission/) | [aws_ec2_network_interface_permission](https://docs.chef.io/inspec/resources/aws_ec2_network_interface_permissions/) |
| | | [AWS::EC2::PlacementGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html) | [aws_ec2_placement_group](https://docs.chef.io/inspec/resources/aws_ec2_placement_group/) | [aws_ec2_placement_groups](https://docs.chef.io/inspec/resources/aws_ec2_placement_groups/) |
| | | [AWS::EC2::PrefixList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html) | [aws_ec2_prefix_list](https://docs.chef.io/inspec/resources/aws_ec2_prefix_list/) | [aws_ec2_prefix_lists](https://docs.chef.io/inspec/resources/aws_ec2_prefix_lists/) |
| | | [AWS::EC2::Route](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html) | [aws_route_table](https://docs.chef.io/inspec/resources/aws_route_table/) | [aws_route_tables](https://docs.chef.io/inspec/resources/aws_route_tables/) |
| | | [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html) | [aws_route_table](https://docs.chef.io/inspec/resources/aws_route_table/) | [aws_route_tables](https://docs.chef.io/inspec/resources/aws_route_tables/) |
| | | [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) | [aws_security_group](https://docs.chef.io/inspec/resources/aws_security_group/) | [aws_security_groups](https://docs.chef.io/inspec/resources/aws_security_groups/) |
| | | [AWS::EC2::SecurityGroupEgress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html) | [aws_security_group](https://docs.chef.io/inspec/resources/aws_security_group/) | [aws_security_groups](https://docs.chef.io/inspec/resources/aws_security_groups/) |
| | | [AWS::EC2::SecurityGroupIngress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html) | [aws_security_group](https://docs.chef.io/inspec/resources/aws_security_group/) | [aws_security_groups](https://docs.chef.io/inspec/resources/aws_security_groups/) |
| | | [AWS::EC2::SpotFleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html) | [aws_ec2_spot_fleet](https://docs.chef.io/inspec/resources/aws_ec2_spot_fleet/) | [aws_ec2_spot_fleets](https://docs.chef.io/inspec/resources/aws_ec2_spot_fleets/) |
| | | [AWS::EC2::Subnet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html) | [aws_subnet](https://docs.chef.io/inspec/resources/aws_subnet/) | [aws_subnets](https://docs.chef.io/inspec/resources/aws_subnets/) |
| | | [AWS::EC2::TrafficMirrorFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html) | [aws_ec2_traffic_mirror_filter](https://docs.chef.io/inspec/resources/aws_ec2_traffic_mirror_filter/) | [aws_ec2_traffic_mirror_filters](https://docs.chef.io/inspec/resources/aws_ec2_traffic_mirror_filters/) |
| | | [AWS::EC2::TrafficMirrorSession](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html) | [aws_ec2_traffic_mirror_session](https://docs.chef.io/inspec/resources/aws_ec2_traffic_mirror_session/) | [aws_ec2_traffic_mirror_sessions](https://docs.chef.io/inspec/resources/aws_ec2_traffic_mirror_sessions/) |
| | | [AWS::EC2::TrafficMirrorTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html) | [aws_ec2_traffic_mirror_target](https://docs.chef.io/inspec/resources/aws_ec2_traffic_mirror_target/) | [aws_ec2_traffic_mirror_targets](https://docs.chef.io/inspec/resources/aws_ec2_traffic_mirror_targets/) |
| | | [AWS::EC2::TransitGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html) | [aws_transit_gateway](https://docs.chef.io/inspec/resources/aws_transit_gateway/) | No Plural Resource |
| | | [AWS::EC2::TransitGatewayAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html) | [aws_ec2_transit_gateway_attachment](https://docs.chef.io/inspec/resources/aws_ec2_transit_gateway_attachment/) | [aws_ec2_transit_gateway_attachments](https://docs.chef.io/inspec/resources/aws_ec2_transit_gateway_attachments/) |
| | | [AWS::EC2::TransitGatewayConnect](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html) | [aws_transit_gateway_connect](https://docs.chef.io/inspec/resources/aws_transit_gateway_connect/) | [aws_transit_gateway_connects](https://docs.chef.io/inspec/resources/aws_transit_gateway_connects/) |
| | | [AWS::EC2::TransitGatewayMulticastDomain](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html) | [aws_transit_gateway_multicast_domain](https://docs.chef.io/inspec/resources/aws_transit_gateway_multicast_domain/) | [aws_transit_gateway_multicast_domains](https://docs.chef.io/inspec/resources/aws_transit_gateway_multicast_domains/) |
| | | [AWS::EC2::TransitGatewayMulticastDomainAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html) | [aws_transit_gateway_multicast_domain_association](https://docs.chef.io/inspec/resources/aws_transit_gateway_multicast_domain_association/) | [aws_transit_gateway_multicast_domain_associations](https://docs.chef.io/inspec/resources/aws_transit_gateway_multicast_domain_associations/) |
| | | [AWS::EC2::TransitGatewayMulticastGroupMember](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html) | [aws_transit_gateway_multicast_group_member](https://docs.chef.io/inspec/resources/aws_transit_gateway_multicast_group_member/) | [aws_transit_gateway_multicast_group_members](https://docs.chef.io/inspec/resources/aws_transit_gateway_multicast_group_members/) |
| | | [AWS::EC2::TransitGatewayMulticastGroupSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html) | [aws_transit_gateway_multicast_group_source](https://docs.chef.io/inspec/resources/aws_transit_gateway_multicast_group_source/) | [aws_transit_gateway_multicast_group_sources](https://docs.chef.io/inspec/resources/aws_transit_gateway_multicast_group_sources/) |
| | | [AWS::EC2::TransitGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html) | [aws_transit_gateway_route](https://docs.chef.io/inspec/resources/aws_transit_gateway_route/) | [aws_transit_gateway_routes](https://docs.chef.io/inspec/resources/aws_transit_gateway_routes/) |
| | | [AWS::EC2::TransitGatewayRouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html) | [aws_ec2_transit_gateway_route_table](https://docs.chef.io/inspec/resources/aws_ec2_transit_gateway_route_table/) | [aws_ec2_transit_gateway_route_tables](https://docs.chef.io/inspec/resources/aws_ec2_transit_gateway_route_tables/) |
| | | [AWS::EC2::TransitGatewayRouteTableAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html) | [aws_ec2_transit_gateway_route_table_association](https://docs.chef.io/inspec/resources/aws_ec2_transit_gateway_route_table_association/) | [aws_ec2_transit_gateway_route_table_associations](https://docs.chef.io/inspec/resources/aws_ec2_transit_gateway_route_table_associations/) |
| | | [AWS::EC2::TransitGatewayRouteTablePropagation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html) | [aws_ec2_transit_gateway_route_table_propagation](https://docs.chef.io/inspec/resources/aws_ec2_transit_gateway_route_table_propagation/) | [aws_ec2_transit_gateway_route_table_propagations](https://docs.chef.io/inspec/resources/aws_ec2_transit_gateway_route_table_propagations/) |
| | | [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html) | [aws_ebs_volume](https://docs.chef.io/inspec/resources/aws_ebs_volume/) | [aws_ebs_volumes](https://docs.chef.io/inspec/resources/aws_ebs_volumes/) |
| | | [AWS::EC2::VolumeAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html) | No Singular Resource | [aws_ec2_volume_attachments](https://docs.chef.io/inspec/resources/aws_ec2_volume_attachments/) |
| | | [AWS::EC2::VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html) | [aws_vpc](https://docs.chef.io/inspec/resources/aws_vpc/) | [aws_vpcs](https://docs.chef.io/inspec/resources/aws_vpcs/) |
| | | [AWS::EC2::VPCEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) | [aws_vpc_endpoint](https://docs.chef.io/inspec/resources/aws_vpc_endpoint/) | [aws_vpc_endpoints](https://docs.chef.io/inspec/resources/aws_vpc_endpoints/) |
| | | [AWS::EC2::VPCEndpointConnectionNotification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html) | [aws_vpc_endpoint_connection_notification](https://docs.chef.io/inspec/resources/aws_vpc_endpoint_connection_notification/) | [aws_vpc_endpoint_connection_notifications](https://docs.chef.io/inspec/resources/aws_vpc_endpoint_connection_notifications/) |
| | | | [aws_vpc_endpoint_notification](https://docs.chef.io/inspec/resources/aws_vpc_endpoint_notification/) | [aws_vpc_endpoint_notifications](https://docs.chef.io/inspec/resources/aws_vpc_endpoint_notifications/) |
| | | [AWS::EC2::VPCEndpointService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html) | [aws_vpc_endpoint_service](https://docs.chef.io/inspec/resources/aws_vpc_endpoint_service/) | [aws_vpc_endpoint_services](https://docs.chef.io/inspec/resources/aws_vpc_endpoint_services/) |
| | | [AWS::EC2::VPCEndpointServicePermissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html) | [aws_vpc_endpoint_service_permission](https://docs.chef.io/inspec/resources/aws_vpc_endpoint_service_permission/) | [aws_vpc_endpoint_service_permissions](https://docs.chef.io/inspec/resources/aws_vpc_endpoint_service_permissions/) |
| | | [AWS::EC2::VPCPeeringConnection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html) | [aws_ec2_vpc_peering_connection](https://docs.chef.io/inspec/resources/aws_ec2_vpc_peering_connection/) | [aws_ec2_vpc_peering_connections](https://docs.chef.io/inspec/resources/aws_ec2_vpc_peering_connections/) |
| | | [AWS::EC2::VPNConnection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html) | No Singular Resource | [aws_vpn_connections](https://docs.chef.io/inspec/resources/aws_vpn_connections/) |
| | | [AWS::EC2::VPNConnectionRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html) | No Singular Resource | [aws_ec2_vpn_connection_routes](https://docs.chef.io/inspec/resources/aws_ec2_vpn_connection_routes/) |
| | | [AWS::EC2::VPNGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html) | [aws_vpn_gateway](https://docs.chef.io/inspec/resources/aws_vpn_gateway/) | [aws_vpn_gateways](https://docs.chef.io/inspec/resources/aws_vpn_gateways/) |
| | | [AWS::EC2::VPNGatewayRoutePropagation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html) | [aws_ec2_vpn_gateway_route_propagation](https://docs.chef.io/inspec/resources/aws_ec2_vpn_gateway_route_propagation/) | [aws_ec2_vpn_gateway_route_propagations](https://docs.chef.io/inspec/resources/aws_ec2_vpn_gateway_route_propagations/) |
| | | Others | [aws_region](https://docs.chef.io/inspec/resources/aws_region/) | [aws_regions](https://docs.chef.io/inspec/resources/aws_regions/) |
| | | | [aws_ebs_snapshot](https://docs.chef.io/inspec/resources/aws_ebs_snapshot/) | [aws_ebs_snapshots](https://docs.chef.io/inspec/resources/aws_ebs_snapshots/) |
| | | | [aws_ami](https://docs.chef.io/inspec/resources/aws_ami/) | [aws_amis](https://docs.chef.io/inspec/resources/aws_amis/) |
| Amazon ECR | Containers | [AWS::ECR::PublicRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html) | [aws_ecrpublic_repository](https://docs.chef.io/inspec/resources/aws_ecrpublic_repository/) | [aws_ecrpublic_repositories](https://docs.chef.io/inspec/resources/aws_ecrpublic_repositories/) | |
| | | [AWS::ECR::Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html) | [aws_ecr_repository](https://docs.chef.io/inspec/resources/aws_ecr_repository/) | [aws_ecr_repositories](https://docs.chef.io/inspec/resources/aws_ecr_repositories/) |
| Amazon ECS | Containers | [AWS::ECS::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html) | [aws_ecs_cluster](https://docs.chef.io/inspec/resources/aws_ecs_cluster/) | [aws_ecs_clusters](https://docs.chef.io/inspec/resources/aws_ecs_clusters/) |
| | | [AWS::ECS::Service](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html) | [aws_ecs_service](https://docs.chef.io/inspec/resources/aws_ecs_service/) | [aws_ecs_services](https://docs.chef.io/inspec/resources/aws_ecs_services/) |
| | | [AWS::ECS::TaskDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html) | [aws_ecs_task_definition](https://docs.chef.io/inspec/resources/aws_ecs_task_definition/) | [aws_ecs_task_definitions](https://docs.chef.io/inspec/resources/aws_ecs_task_definitions/) |
| | | Others | [aws_ecr_repository_policy](https://docs.chef.io/inspec/resources/aws_ecr_repository_policy/) | No Plural Resource |
| | | | [aws_ecr](https://docs.chef.io/inspec/resources/aws_ecr/) | No Plural Resource |
| | | | [aws_ecr_image](https://docs.chef.io/inspec/resources/aws_ecr_image/) | [aws_ecr_images](https://docs.chef.io/inspec/resources/aws_ecr_images/) |
| EFS | Storage | [AWS::EFS::FileSystem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html) | [aws_efs_file_system](https://docs.chef.io/inspec/resources/aws_efs_file_system/) | [aws_efs_file_systems](https://docs.chef.io/inspec/resources/aws_efs_file_systems/) |
| | | [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) | [aws_efs_mount_target](https://docs.chef.io/inspec/resources/aws_efs_mount_target/) | [aws_efs_mount_targets](https://docs.chef.io/inspec/resources/aws_efs_mount_targets/) |
| EKS | Containers | [AWS::EKS::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html) | [aws_eks_cluster](https://docs.chef.io/inspec/resources/aws_eks_cluster/) | [aws_eks_clusters](https://docs.chef.io/inspec/resources/aws_eks_clusters/) |
| ElasticCache | Database | [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html) | [aws_elasticache_cluster](https://docs.chef.io/inspec/resources/aws_elasticache_cluster/) | [aws_elasticache_clusters](https://docs.chef.io/inspec/resources/aws_elasticache_clusters/) |
| | | [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) | [aws_elasticache_replication_group](https://docs.chef.io/inspec/resources/aws_elasticache_replication_group/) | [aws_elasticache_replication_groups](https://docs.chef.io/inspec/resources/aws_elasticache_replication_groups/) |
| | | | [aws_elasticache_cluster_node](https://docs.chef.io/inspec/resources/aws_elasticache_cluster_node/) | No Plural Resource |
| Elasticsearch | Analytics | [AWS::Elasticsearch::Domain](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html) | [aws_elasticsearchservice_domain](https://docs.chef.io/inspec/resources/aws_elasticsearchservice_domain/) | [aws_elasticsearchservice_domains](https://docs.chef.io/inspec/resources/aws_elasticsearchservice_domains/) |
| ElasticLoadBalancingV2 | Networking & Content Delivery | [AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html) | [aws_elasticloadbalancingv2_listener](https://docs.chef.io/inspec/resources/aws_elasticloadbalancingv2_listener/) | [aws_elasticloadbalancingv2_listeners](https://docs.chef.io/inspec/resources/aws_elasticloadbalancingv2_listeners/) |
| | | [AWS::ElasticLoadBalancingV2::ListenerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html) | [aws_elasticloadbalancingv2_listener_certificate](https://docs.chef.io/inspec/resources/aws_elasticloadbalancingv2_listener_certificate/) | [aws_elasticloadbalancingv2_listener_certificates](https://docs.chef.io/inspec/resources/aws_elasticloadbalancingv2_listener_certificates/) |
| | | [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html) | [aws_elasticloadbalancingv2_listener_rule](https://docs.chef.io/inspec/resources/aws_elasticloadbalancingv2_listener_rule/) | [aws_elasticloadbalancingv2_listener_rules](https://docs.chef.io/inspec/resources/aws_elasticloadbalancingv2_listener_rules/) |
| | | [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html) | [aws_elb](https://docs.chef.io/inspec/resources/aws_elb/) | [aws_elbs](https://docs.chef.io/inspec/resources/aws_elbs/) |
| | | | [aws_alb](https://docs.chef.io/inspec/resources/aws_alb/) | [aws_albs](https://docs.chef.io/inspec/resources/aws_albs/) |
| | | [AWS::ElasticLoadBalancingV2::TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html) | [aws_elasticloadbalancingv2_target_group](https://docs.chef.io/inspec/resources/aws_elasticloadbalancingv2_target_group/) | [aws_elasticloadbalancingv2_target_groups](https://docs.chef.io/inspec/resources/aws_elasticloadbalancingv2_target_groups/) |
| Amazon EMR | Analytics | [AWS::EMR::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html) | [aws_emr_cluster](https://docs.chef.io/inspec/resources/aws_emr_cluster/) | [aws_emr_clusters](https://docs.chef.io/inspec/resources/aws_emr_clusters/) |
| | | [AWS::EMR::SecurityConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html) | [aws_emr_security_configuration](https://docs.chef.io/inspec/resources/aws_emr_security_configuration/) | [aws_emr_security_configurations](https://docs.chef.io/inspec/resources/aws_emr_security_configurations/) |
| Amazon EventBridge | Application Integration | [AWS::Events::Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html) | [aws_eventbridge_rule](https://docs.chef.io/inspec/resources/aws_eventbridge_rule/) | [aws_eventbridge_rules](https://docs.chef.io/inspec/resources/aws_eventbridge_rules/) |
| AWS Glue | Analytics | [AWS::Glue::Crawler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html) | [aws_glue_crawler](https://docs.chef.io/inspec/resources/aws_glue_crawler/) | [aws_glue_crawlers](https://docs.chef.io/inspec/resources/aws_glue_crawlers/) |
| | | [AWS::Glue::Database](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html) | [aws_glue_database](https://docs.chef.io/inspec/resources/aws_glue_database/) | [aws_glue_databases](https://docs.chef.io/inspec/resources/aws_glue_databases/) |
| GuardDuty | Security, Identity, & Compliance | [AWS::GuardDuty::Detector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html) | [aws_guardduty_detector](https://docs.chef.io/inspec/resources/aws_guardduty_detector/) | [aws_guardduty_detectors](https://docs.chef.io/inspec/resources/aws_guardduty_detectors/) |
| IAM | Security, Identity, & Compliance | [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) | [aws_iam_access_key](https://docs.chef.io/inspec/resources/aws_iam_access_key/) | [aws_iam_access_keys](https://docs.chef.io/inspec/resources/aws_iam_access_keys/) |
| | | | No Singular Resource | [aws_iam_account_alias](https://docs.chef.io/inspec/resources/aws_iam_account_alias/) |
| | | | [aws_iam_ssh_public_key](https://docs.chef.io/inspec/resources/aws_iam_ssh_public_key/) | [aws_iam_ssh_public_keys](https://docs.chef.io/inspec/resources/aws_iam_ssh_public_keys/) |
| | | [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html) | [aws_iam_group](https://docs.chef.io/inspec/resources/aws_iam_group/) | [aws_iam_groups](https://docs.chef.io/inspec/resources/aws_iam_groups/) |
| | | [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) | [aws_iam_instance_profile](https://docs.chef.io/inspec/resources/aws_iam_instance_profile/) | [aws_iam_instance_profiles](https://docs.chef.io/inspec/resources/aws_iam_instance_profiles/) |
| | | [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html) | [aws_iam_managed_policy](https://docs.chef.io/inspec/resources/aws_iam_managed_policy/) | [aws_iam_managed_policies](https://docs.chef.io/inspec/resources/aws_iam_managed_policies/) |
| | | [AWS::IAM::OIDCProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html) | [aws_iam_oidc_provider](https://docs.chef.io/inspec/resources/aws_iam_oidc_provider/) | [aws_iam_oidc_providers](https://docs.chef.io/inspec/resources/aws_iam_oidc_providers/) |
| | | [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html) | [aws_iam_policy](https://docs.chef.io/inspec/resources/aws_iam_policy/) | [aws_iam_policies](https://docs.chef.io/inspec/resources/aws_iam_policies/) |
| | | | [aws_iam_password_policy](https://docs.chef.io/inspec/resources/aws_iam_password_policy/) | No Plural Resource |
| | | | [aws_iam_inline_policy](https://docs.chef.io/inspec/resources/aws_iam_inline_policy/) | No Plural Resource |
| | | [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) | [aws_iam_role](https://docs.chef.io/inspec/resources/aws_iam_role/)