Ресурс aws_nat_gateway
Используйте ресурс аудита InSpec aws_nat_gateway, чтобы проверить свойства отдельного шлюза NAT AWS.
Синтаксис
Блок ресурса aws_nat_gateway описывает тесты для отдельного шлюза NAT AWS по id, имени, vpc_id или 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
Можно указать несколько параметров для большей детализации.
describe aws_nat_gateway(vpc_id: 'vpc-abc01234', subnet_id: 'subnet-6789deff') do
it { should exist }
end
Параметры
Необходимо указать хотя бы один из следующих параметров.
- id
- name
- subnet_id
- vpc_id
id
Значение nat_gateway_id присвоенное AWS после создания ресурса. Оно должно быть в формате nat-, за которым следуют 8 или 17 шестнадцатеричных символов, и передаваться как id: 'value' пара ключ-значение в хеше.
name
Если шлюзу NAT применен тег Name, это можно использовать для поиска ресурса. Оно должно быть передано как name: 'value' пара ключ-значение в хеше. Если существует несколько шлюзов NAT с одинаковым именем, этот ресурс выведет ошибку.
subnet_id
ID подсети, в которой размещен шлюз NAT. Он должен быть в формате subnet- , за которым следуют 8 или 17 шестнадцатеричных символов, и передаваться как subnet_id: 'value' пара ключ-значение в хеше.
vpc_id
ID VPC, в котором расположен шлюз NAT. Он должен быть в формате vpc- , за которым следуют 8 или 17 шестнадцатеричных символов, и передаваться как vpc_id: 'value' пара ключ-значение в хеше.
Свойства
| Свойство | Описание |
|---|---|
| id | ID шлюза NAT. |
| name | Значение тега Name. Оно nil если не определено. |
| vpc_id | ID VPC, в котором расположен шлюз NAT. |
| subnet_id | ID подсети, в которой размещен шлюз NAT. |
| tags | Хеш, где каждая пара ключ-значение соответствует тегу шлюза NAT. |
| nat_gateway_address_set | Хеш объекта NatGatewayAddress, который содержит информацию об IP-адресах и сетевом интерфейсе, связанных со шлюзом NAT. |
| state | Состояние шлюза NAT. Допустимые значения: pending, failed, available, deleting и deleted. |
Доступны и другие свойства. Полный список см. в документации API.
Примеры
Проверка, что шлюз NAT находится в состоянии available
describe aws_nat_gateway(name: 'my-nat-gateway') do
its('state') { should eq 'available' }
end
Проверка, что ID VPC равен vpc-1234567890abcdef1
describe aws_nat_gateway(id: 'nat-abc0123456789deff') do
its('vpc_id') { should eq `vpc-1234567890abcdef1` }
end
Проверка, что у шлюза NAT есть определенный тег
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
Проверка, что частный IP-адрес равен 10.0.1.68
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
Дополнительные примеры см. в интеграционных тестах.
Матчеры
Этот ресурс аудита InSpec имеет следующие специальные матчеры. Полный список доступных матчеров см. на нашей странице матчеров.
exist
describe aws_nat_gateway(name: 'my-nat-gateway') do
it { should exist }
end
Разрешения AWS
Для вашего принципала должно быть разрешено действие ec2:DescribeNatGateways.
Подробную документацию можно найти по адресам Действия, ресурсы и ключи условия для Amazon EC2 и Действия, ресурсы и ключи условия для Identity And Access Management.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/aws_nat_gateway/