Spec-Zone.ru › Chef 17

azurerm_network_security_group ресурс

[править на GitHub]

Используйте ресурс аудита 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

Параметры

  • name
  • resource_group

Примеры параметров

Группа ресурсов и имя группы безопасности сети.

describe azurerm_network_security_group(resource_group: 'example', name: 'GroupName') do
  it { should allow_rdp_from_internet }
end

Атрибуты

  • security_rules
  • default_security_rules
  • allow_ssh_from_internet
  • allow_rdp_from_internet
  • properties

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 может не всегда возвращать ключи, не имеющие связанных данных. В некоторых случаях глубоко вложенное свойство может не иметь нужного атрибута по всей цепочке вызова. Если вы обнаруживаете, что пишете тесты для свойств, которые могут быть null, видоизмените этот набор ресурсов и добавьте аксессор к ресурсу. В этом аксессоре вы сможете защититься от ключей null. Запросы на добавление всегда приветствуются.

Сопоставители

Этот ресурс аудита 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API