Ресурс aws_vpcs
Используйте ресурс аудита InSpec aws_vpcs для проверки свойств некоторых или всех виртуальных частных облаков (VPC) AWS.
Каждое VPC уникально определяется своим ID VPC. Кроме того, каждое VPC имеет диапазон CIDR IP-адресов (например, 10.0.0.0/16), которым оно управляет.
В каждой AWS-учетной записи в каждом регионе существует хотя бы одно VPC, «по умолчанию».
Синтаксис
Блок ресурса aws_vpcs использует необязательный фильтр для выбора группы VPC и затем тестирует эту группу.
# Since you always have at least one VPC, this will always pass.
describe aws_vpcs do
it { should exist }
end
Параметры
Этот ресурс не ожидает параметров.
См. также документацию AWS по VPC.
Свойства
| Свойство | Описание |
|---|---|
| cidr_blocks | Свойство cidr_blocks предоставляет список CIDR-блоков, обслуживаемых соответствующими VPC, в виде строк. |
| dhcp_options_ids | Свойство dhcp_option_set_ids предоставляет список (без дублирования) идентификаторов наборов DHCP Options, используемых соответствующими VPC при назначении IP-адресов ресурсам. |
| vpc_ids | Свойство vpc_ids предоставляет список идентификаторов соответствующих VPC. |
| tags | Хэш пар ключ-значение, соответствующих тегам, связанным с сущностью. |
| entries | Обеспечивает доступ к исходным результатам запроса, которые могут быть интерпретированы как массив хэшей. |
Примеры
Убедиться, что все VPC используют один и тот же набор DHCP-параметров
describe aws_vpcs.where { dhcp_options_id != 'dopt-12345678' } do
it { should_not exist }
end
Проверка определенного ID VPC
describe aws_vpcs do
its('vpc_ids') { should include 'vpc-12345678' }
end
Использование ID VPC для получения списка групповых параметров безопасности по умолчанию
aws_vpcs.vpc_ids.each do |vpc_id|
describe aws_security_group(vpc_id: vpc_id, group_name: 'default') do
it { should_not allow_in(port: 22) }
end
end
Мы избегаем использования пространства 10.0.0.0/8
describe aws_vpcs.where { cidr_block.start_with?('10') } do
it { should_not exist }
end
Проверка тегов
describe aws_vpc do
its('tags') { should include(:Environment => 'env-name',
:Name => 'vpc-name')}
end
Сопоставители
Этот ресурс аудита InSpec имеет следующие специальные сопоставители. Полный список доступных сопоставителей можно найти на нашей странице Универсальные сопоставители.
exist
Контроль пройдет, если describe вернет по крайней мере один результат.
Используйте should_not для проверки, что сущность не должна существовать.
describe aws_vpcs do
it { should exist }
end
describe aws_vpcs.where( <property>: <value>) do
it { should_not exist }
end
Разрешения AWS
Вашему принципалу потребуется действие ec2:DescribeVpcs с эффектом, установленным на «Разрешить».
Подробную документацию можно найти по адресу Действия, ресурсы и ключи условий для 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_vpcs/