title |
---|
About the aws_nat_gateway Resource |
Use the aws_nat_gateway
InSpec audit resource to test the properties of a single AWS NAT gateway.
An aws_nat_gateway
resource block declares the tests for a single AWS NAT gateway by id, name, vpc_id or subnet_id.
describe aws_nat_gateway(id: 'nat-abc0123456789deff') do
it { should exist }
end
describe aws_nat_gateway(name: 'my-nat-gateway') do
it { should exist }
end
Multiple parameters can be provided for better granularity.
describe aws_nat_gateway(vpc_id: 'vpc-abc01234', subnet_id: 'subnet-6789deff') do
it { should exist }
end
At least one of the following parameters must be provided.
- id
- name
- subnet_id
- vpc_id
The value of the nat_gateway_id
assigned by the AWS after the resource has been created.
This should be in the format of nat-
followed by 8 or 17 hexadecimal characters and passed as an id: 'value'
key-value entry in a hash.
If a Name
tag is applied to the NAT gateway, this can be used to lookup the resource.
This must be passed as a name: 'value'
key-value entry in a hash.
If there are multiple NAT gateways with the same name, this resource will raise an error.
The ID of the subnet in which the NAT gateway is placed.
This should be in the format of subnet-
followed by 8 or 17 hexadecimal characters and passed as an subnet_id: 'value'
key-value entry in a hash.
The ID of the VPC in which the NAT gateway is located.
This should be in the format of vpc-
followed by 8 or 17 hexadecimal characters and passed as an vpc_id: 'value'
key-value entry in a hash.
Property | Description |
---|---|
id | The ID of the NAT gateway. |
name | The value of the Name tag. It is nil if not defined. |
vpc_id | The ID of the VPC in which the NAT gateway is located. |
subnet_id | The ID of the subnet in which the NAT gateway is placed. |
tags | A hash, with each key-value pair corresponding to a NAT gateway tag. |
nat_gateway_address_set | A hash of NatGatewayAddress object that gives information about the IP addresses and network interface associated with the NAT gateway. |
state | The sate of the NAT gateway. Valid values are: pending , failed , available , deleting and deleted . |
There are also additional properties available. For a comprehensive list, see the API reference documentation
describe aws_nat_gateway(name: 'my-nat-gateway') do
its('state') { should eq 'available' }
end
describe aws_nat_gateway(id: 'nat-abc0123456789deff') do
its('vpc_id') { should eq `vpc-1234567890abcdef1` }
end
describe aws_nat_gateway(name: 'my-nat-gateway') do
its('tags') { should include('environment' => 'dev') }
its('tags') { should include('delete-at-10-pm') } # Regardless of the value
end
describe aws_nat_gateway(vpc_id: 'vpc-abc01234', subnet_id: 'subnet-12345678') do
its('nat_gateway_address_set') { should include(:private_ip => '10.0.1.68') }
end
For more examples, please check the integration tests.
This InSpec audit resource has the following special matcher. For a full list of available matchers, please visit our matchers page.
describe aws_nat_gateway(name: 'my-nat-gateway') do
it { should exist }
end
Your Principal will need the ec2:DescribeNatGateways
action set to allow.
You can find detailed documentation at Actions, Resources, and Condition Keys for Amazon EC2, and Actions, Resources, and Condition Keys for Identity And Access Management.