Ресурс aws_subnets
Используйте ресурс проверки InSpec для аудита свойств некоторых или всех подсетей.
Подсети — это сети внутри VPC, которые могут иметь свой собственный блок IP-адресов и ACL. VPC охватывают все доступные зоны в AWS, в то время как подсеть в VPC может охватывать только одну доступную зону. Разделение IP-адресов позволяет обеспечить защиту в случае сбоя в одной доступной зоне.
Синтаксис
Блок ресурса использует необязательный фильтр для выбора группы подсетей и затем тестирует эту группу.
# Test all subnets within a single vpc
describe aws_subnets.where(vpc_id: 'vpc-12345678') do
its('subnet_ids') { should include 'subnet-12345678' }
its('subnet_ids') { should include 'subnet-98765432' }
end
Параметры
Этот ресурс не ожидает никаких параметров.
См. также документацию AWS по подсетям.
Свойства
| Свойство | Описание |
|---|---|
| subnet_ids | Имя автомасштабируемой конфигурации запуска, связанной с группой автомасштабирования |
| vpc_ids | Целое число, указывающее максимальное количество экземпляров в группе автомасштабирования |
| cidr_blocks | Целое число, указывающее минимальное количество экземпляров в группе автомасштабирования |
| availability_zone | Доступная зона, к которой относится эта подсеть. |
| map_public_ip_on_launch | Булево значение, указывающее, будет ли общедоступный IP-адрес автоматически назначен экземплярам, запущенным в этой подсети. |
| states | Массив строк, соответствующих идентификаторам подсетей, связанных с группой автомасштабирования |
| entries | Предоставляет доступ к исходным результатам запроса, которые можно рассматривать как массив хешей. |
Примеры
Поиск всех подсетей в VPC
describe aws_subnets.where( vpc_id: 'vpc-12345678') do
its('subnet_ids') { should include 'subnet-12345678' }
its('subnet_ids') { should include 'subnet-98765432' }
end
Проверка конкретной подсети
describe aws_subnets.where(subnet_id: 'subnet-12345678') do
its('cidr_blocks') { should eq ['10.0.1.0/24'] }
end
Проверка идентификаторов подсетей конкретной VPC
describe aws_subnets.where( vpc_id: 'vpc-12345678') do
its('states') { should_not include 'pending' }
end
Проверка идентификаторов VPC конкретной подсети
describe aws_subnets.where( subnet_id: 'subnet-12345678') do
its('vpc_ids') { should include 'vpc-12345678' }
end
Сопоставители
Полный список доступных сопоставителей см. на странице сопоставителей.
exist
Контроль будет пройден, если describe вернёт как минимум один результат.
Используйте should_not для проверки, что сущность не должна существовать.
describe aws_subnets.where( <property>: <value>) do
it { should exist }
end
describe aws_subnets.where( <property>: <value>) do
it { should_not exist }
end
Разрешения AWS
У вашего принципала должны быть разрешения на ec2:DescribeSubnets действие с эффектом «Разрешено».
Подробную документацию см. на странице Действия, ресурсы и ключи условий для Amazon EC2.
© 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_subnets/