ресурс 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
Если тегу Name присвоено значение тега шлюза NAT, это можно использовать для поиска ресурса. Оно должно передаваться как запись 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/