Spec-Zone.ru › Chef 16

Ресурс azurerm_virtual_network

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

Используйте ресурс аудита InSpec azurerm_virtual_network для проверки свойств, связанных с виртуальной сетью.

Версия Azure REST API

Этот ресурс взаимодействует с версией 2018-02-01 API Azure Management. Более подробную информацию можно найти в официальной документации Azure.

В настоящий момент не представляется возможным выбрать версию документации Azure API. Если вы обнаружите ссылку на более новую версию в официальной документации, откройте вопрос или отправьте запрос на добавление с обновленной версией.

Доступность

Установка

Этот ресурс доступен в inspec-azure пакете ресурсов. Чтобы использовать его, добавьте следующее в свой inspec.yml в вашем профиле верхнего уровня:

depends:
  - name: inspec-azure
    git: https://github.com/inspec/inspec-azure.git

Вам также необходимо настроить свои учетные данные Azure; см. README пакета ресурсов.

Версия

Этот ресурс стал доступен в версии 1.1.0 пакета ресурсов inspec-azure.

Синтаксис

Параметры resource_group и виртуальной сети name должны быть заданы в качестве параметров.

describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'MyVnetName') do
  ...
end

Примеры

Убедитесь, что виртуальная сеть существует в регионе Восточная часть США

describe azurerm_virtual_network(resource_group: resource_group, name: 'MyVnetName') do
  it               { should exist }
  its('location')  { should eq 'East US' }
end

Убедитесь, что серверы DNS виртуальной сети настроены как ожидается

describe azurerm_virtual_network(resource_group: resource_group, name: 'MyVnetName') do
    its('dns_servers') { should eq ["192.168.0.6"] }
end

Убедитесь, что адресное пространство виртуальной сети настроено как ожидается

describe azurerm_virtual_network(resource_group: resource_group, name: 'MyVnetName') do
    its('address_space') { should eq ["192.168.0.0/24"] }
end

Параметры

  • resource_group
  • name

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

resource_group (обязательно)

Определяет группу ресурсов, в которой находится виртуальная сеть, которую вы хотите проверить.

describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'MyVnetName') do
  ...
end

name (обязательно)

Определяет имя виртуальной сети, которую вы хотите проверить.

describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'MyVnetName') do
  ...
end

Атрибуты

  • id
  • name
  • location
  • tags
  • type
  • subnets
  • address_space
  • dns_servers
  • vnet_peerings
  • enable_ddos_protection
  • enable_vm_protection

id

Идентификатор виртуальной сети.

its('id') { should eq(id) }

Идентификатор будет иметь формат:

'/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/Inspec-Azure-mmclane/providers/Microsoft.Network/virtualNetworks/MyVnetName'

name

Имя виртуальной сети.

its('name') { should eq('MyVnetName') }

location

Расположение виртуальной сети.

its('location') { should eq('East US') }

type

Тип ресурса виртуальной сети.

its('type') { should eq 'Microsoft.Network/virtualNetworks' }

метки

Метки виртуальной сети.

its('tags') { should eq({ 'key' => 'value' }) }

подсети

Список имён подсетей, подключенных к этой виртуальной сети.

its('subnets') { should eq ["MySubnetName"] }

address_space

Список адресных пространств, используемых виртуальной сетью.

its('address_space') { should eq ["x.x.x.x/x"] }

dns_servers

Список серверов DNS, настроенных для виртуальной сети. Виртуальная сеть возвращает эти IP-адреса, когда виртуальные машины делают запрос DHCP.

its('dns_servers') { should eq ["x.x.x.x", "x.x.x.x"] }

vnet_peerings

Сопоставление имён и идентификаторов виртуальных сетей для виртуальных сетевых сопоставлений.

its('vnet_peerings') { should eq "MyVnetPeeringConnection"=>"PeeringConnectionID"}

enable_ddos_protection

Булево значение, показывающее, включена ли стандартная защита Azure DDoS для виртуальной сети.

its('enable_ddos_protection') { should eq true }

enable_vm_protection

Булево значение, показывающее, включена ли защита виртуальных машин для виртуальной сети.

its('enable_vm_protection') { should eq false }

Другие атрибуты

Доступны дополнительные атрибуты, которые мы не задокументировали. Пожалуйста, обратитесь к документации Azure. К любому атрибуту в ответе можно обратиться по именам ключей, разделенных точками (.).

API не всегда возвращает ключи, не имеющие связанных данных. Может возникнуть ситуация, когда у глубоко вложенного свойства отсутствует нужное свойство в вашем цепочке вызовов. Если вы столкнулись с необходимостью тестирования свойств, которые могут быть null, создайте форк этого пакета ресурсов и добавьте к нему метод доступа. В этом методе доступа вы сможете защититься от null-ключей. Запросы на добавление всегда приветствуются.

Обработчики соответствия

Этот ресурс аудита InSpec имеет следующие специальные обработчики соответствия. Полный список доступных обработчиков см. на нашей странице Универсальные обработчики.

exists

# If a virtual network is found it will exist
describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'MyVnetName') do
  it { should exist }
end

# virtual networks that aren't found will not exist
describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'DoesNotExist') 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_virtual_network/

Spec-Zone.ru

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