azurerm_network_security_group ресурс
Используйте ресурс аудита InSpec для проверки свойств группы безопасности сети Azure.
Версия Azure REST API
Этот ресурс взаимодействует с версией 2018-02-01 API управления Azure. Для получения дополнительной информации см. официальную документацию Azure.
В настоящее время нет способа выбрать версию документации Azure API. Если вы заметите упоминание более новой версии в официальной документации, откройте вопрос или отправьте запрос на вытягивание с использованием обновленной версии.
Доступность
Установка
Этот ресурс доступен в inspec-azure наборе ресурсов. Для его использования добавьте следующее в свой inspec.yml в вашем профиле верхнего уровня:
depends:
- name: inspec-azure
git: https://github.com/inspec/inspec-azure.git
Вам также потребуется настроить свои учетные данные Azure; см. README набора ресурсов.
Синтаксис
Блок ресурса azurerm_network_security_group идентифицирует группу безопасности сети по имени и группе ресурсов.
describe azurerm_network_security_group(resource_group: 'example', name: 'GroupName') do
...
end
Примеры
Проверка, что у примера группы ресурсов есть указанная группа безопасности сети
describe azurerm_network_security_group(resource_group: 'example', name: 'GroupName') do
it { should exist }
end
Проверка, что у примера группы ресурсов есть группа безопасности сети, которая разрешает SSH из интернета
describe azurerm_network_security_group(resource_group: 'example', name: 'GroupName') do
it { should allow_ssh_from_internet }
end
Параметры
nameresource_group
Примеры параметров
Имя группы ресурсов и группы безопасности сети.
describe azurerm_network_security_group(resource_group: 'example', name: 'GroupName') do
it { should allow_rdp_from_internet }
end
Атрибуты
security_rulesdefault_security_rulesallow_ssh_from_internetallow_rdp_from_internetproperties
security_rules
Свойство security_rules содержит набор правил безопасности.
its('security_rules') { should_not be_empty }
default_security_rules
Свойство default_security_rules содержит набор правил безопасности по умолчанию.
its('default_security_rules') { should_not be_empty }
Разрешить SSH из интернета
Свойство allow_ssh_from_internet содержит булево значение, определяемое на основе анализа правил безопасности и правил безопасности по умолчанию для неограниченного доступа SSH.
it { should_not allow_ssh_from_internet }
Разрешить RDP из интернета
Свойство allow_rdp_from_internet содержит булево значение, определяемое на основе анализа правил безопасности и правил безопасности по умолчанию для неограниченного доступа RDP.
it { should_not allow_rdp_from_internet }
Разрешить порт из интернета
Свойство allow_port_from_internet содержит булево значение, определяемое на основе анализа правил безопасности и правил безопасности по умолчанию для неограниченного доступа к указанному порту.
it { should_not allow_port_from_internet('443') }
Другие атрибуты
Существуют дополнительные атрибуты, к которым можно получить доступ, которые мы не задокументировали. Пожалуйста, ознакомьтесь с документацией Azure. Любой атрибут в ответе можно получить, используя имена ключей, разделенные точками (.).
API не всегда возвращает ключи, у которых нет связанных данных. Возможно, в некоторых случаях у глубоко вложенного свойства отсутствует нужный атрибут в вашей цепочке вызовов. Если вы обнаруживаете, что пишете тесты против свойств, которые могут быть nil, разделите этот набор ресурсов и добавьте обработчик ресурса. В этом обработчике вы сможете защититься от nil-ключей. Запросы на вытягивание всегда приветствуются.
Матчеры
Этот ресурс аудита InSpec имеет следующие специальные матчеры. Полный список доступных матчеров вы найдете на странице Универсальные матчеры.
exists
Контроль будет пройден, если ресурс вернет результат. Используйте should_not если ожидается ноль совпадений.
# If we expect 'GroupName' to always exist
describe azurerm_network_security_group(resource_group: 'example', name: 'GroupName') do
it { should exist }
end
# If we expect 'EmptyGroupName' to never exist
describe azurerm_network_security_group(resource_group: 'example', name: 'EmptyGroupName') do
it { should_not exist }
end
Разрешения Azure
Ваш службы должен быть настроен с ролью contributor на подписке, которую вы хотите протестировать.
© 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/azurerm_network_security_group/