aws_albs Resource
Use the aws_albs
InSpec audit resource to test the configuration of a collection of Application Load Balancers.
For additional information, including details on parameters and properties, see the AWS documentation on Elastic Load Balancing.
Install
This resource is available in the Chef InSpec AWS resource pack.
For information on configuring your AWS environment for Chef InSpec and creating an InSpec profile that uses the InSpec AWS resource pack, see the Chef InSpec documentation on the AWS cloud platform.
Syntax
Ensure that an aws_albs
exists
describe aws_albs do
its('load_balancer_arns') { should include 'arn:aws:elasticloadbalancing' }
end
Parameters
This resource does not require any parameters.
Properties
load_balancer_names
- The names of the load balancers.
load_balancer_addresses
- A collection of the load balancers addresses.
canonical_hosted_zone_ids
- The IDs of the Amazon Route 53 hosted zone for the load balancers.
dns_names
- The DNS names of the load balancers.
availability_zones
- The Availability Zones for the load balancers.
security_groups
- The security groups for the load balancers. Valid only for load balancers in a VPC.
schemes
- The types of load balancers. Valid only for load balancers in a VPC.
states
- The states of the load balancers.
subnets
- A collection of the subnet ids.
types
- The types of the load balancers.
vpc_ids
- The IDs of the VPCs for the load balancers.
zone_names
- A collection of the names of the availability zones.
Examples
Test that an ALB has its availability zones configured correctly.
describe aws_alb('arn::alb') do
its('zone_names.count') { should be > 1 }
its('zone_names') { should include 'us-east-2a' }
its('zone_names') { should include 'us-east-2b' }
end
Matchers
For a full list of available matchers, see our Universal Matchers page.This resource has the following special matchers.
exist
The control will pass if the describe returns at least one result.
Use should_not
to test the entity should not exist.
describe aws_albs do
it { should exist }
its('availability_zones') { should_not include 'us-east-1a'}
end
AWS Permissions
Your Principal will need the ElasticLoadBalancing:Client:DescribeLoadBalancers
action with Effect
set to Allow
.
You can find detailed documentation at Authentication and Access Control for Your Load Balancers