Spec-Zone.ru › Chef 18

azurerm_virtual_network ресурс

[редактировать на GitHub]

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

Версия Azure REST API

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

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

Доступность

Установка

Этот ресурс доступен в 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

Примеры

Убедиться, что виртуальная сеть существует в регионе East US

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_серверы

Список 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"}

включить_защиту_от_ddos

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

its('enable_ddos_protection') { should eq true }

включить_защиту_вм

Булево значение, показывающее, включена ли защита ВМ в виртуальной сети.

its('enable_vm_protection') { should eq false }

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

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

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

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

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