azurerm_virtual_machine_disk ресурс
Используйте ресурс проверки InSpec для аудита свойств диска виртуальной машины. Этот ресурс поддерживает только управляемые диски. Если ваш диск не является управляемым, он не exist к соответствию.
Версия Azure REST API
Этот ресурс взаимодействует с версией 2017-03-30 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.0.0 набора ресурсов inspec-azure.
Синтаксис
Параметры resource_group и name должны быть заданы.
describe azurerm_virtual_machine_disk(resource_group: 'MyResourceGroup', name: 'MyDiskName') do
...
end
Примеры
# If a disk is found it will exist
describe azurerm_virtual_machine_disk(resource_group: 'MyResourceGroup', name: 'MyDiskName') do
it { should exist }
end
# Check if encryption is enabled
describe azurerm_virtual_machine_disk(resource_group: 'MyResourceGroup', name: 'MyDiskName') do
its('encryption_enabled') { should be true }
end
Параметры
-
resource_group,name
Примеры параметров
# resource_group and name are required parameters
describe azurerm_virtual_machine_disk(resource_group: 'MyGroup', name: 'MyDiskName') do
...
end
Атрибуты
idnamemanagedByskupropertiestypelocationtagsencryption_enabled
id
Уникальный идентификатор диска.
its('id') { should eq(id) }
Идентификатор будет иметь формат:
/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk
name
Имя диска.
its('name') { should eq('MyDiskName') }
managedBy
Ресурс, управляющий диском, если он подключен к виртуальной машине.
its('managedBy') { should eq(ResourceId) }
ResourceId будет иметь формат:
/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk
sku
Имя sku диска (Standard_LRS|StandardSSD_LRS|Premium_LRS).
its('sku.name') { should eq('Standard_LRS') }
properties
Свойства диска. Это хеш пар ключ-значение.
type
Тип диска. Всегда будет Microsoft.Compute/disks.
its('type') { should eq('Microsoft.Compute/disks') }
location
Расположение диска. Будет регионом, где находится диск.
its('location') { should eq('West US') }
tags
Теги диска. Будут хешем пар ключ-значение.
its('tags') { should eq({ 'department' => 'IT' })
encryption_enabled
Если диск зашифрован или нет (true|false).
its('encryption_enabled') { should be true }
Другие атрибуты
Есть дополнительные атрибуты, к которым можно получить доступ, которые мы не задокументировали. Пожалуйста, обратитесь к документации Azure. Любой атрибут в ответе можно получить, используя имена ключей, разделенные точками (.).
API может не всегда возвращать ключи, для которых нет связанных данных. В некоторых случаях глубоко вложенный атрибут может отсутствовать в вашей цепочке вызова. Если вы пишете тесты для атрибутов, которые могут быть nil, создайте ветку этого набора ресурсов и добавьте accessor для ресурса. В этом accessor вы сможете предотвратить nil-ключевые значения. Pull request всегда приветствуются.
Сопоставители
Этот ресурс аудита InSpec имеет следующие специальные сопоставители. Полный список доступных сопоставителей см. на нашей странице универсальных сопоставителей.
exists
describe azurerm_virtual_machine_disk(resource_group: 'MyResourceGroup', name: 'MyDiskName') do
it { should 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_machine_disk/