Spec-Zone.ru › Chef 18

azurerm_management_group ресурс

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

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

Версия Azure REST API

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

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

Доступность

Установка

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

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

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

Синтаксис

group_id должен быть указан в качестве параметра.

describe azurerm_management_group(group_id: 'MyGroupId') do
  ...
end

По желанию, вы можете использовать параметры expand, recurse и/или filter.

describe azurerm_management_group(group_id: 'MyGroupId', expand: 'children', recurse: true) do
  ...
end

describe azurerm_management_group(group_id: 'MyGroupId', expand: 'children', recurse: true, filter: 'children.childType ne Subscription') do
  ...
end

Примеры

describe azurerm_management_group(group_id: ‘20000000-0000-0000-0000-000000000000’, expand: ‘children’, recurse: true) do it { should exist } its(‘id’) { should eq ‘/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000’ } its(‘type’) { should eq ‘/providers/Microsoft.Management/managementGroups’ } its(‘name’) { should eq ‘20000000-0000-0000-0000-000000000000’ } its(‘display_name’) { should eq ‘Имя отображения группы управления Один’ } its(‘tenant_id’) { should eq ‘56700000-0000-0000-0000-000000000000’ } its(‘parent_name’) { should eq ‘10000000-0000-0000-0000-000000000000’ } its(‘parent_id’) { should eq ‘/providers/Microsoft.Management/managementGroups/10000000-0000-0000-0000-000000000000’ } its(‘parent_display_name’) { should eq ‘Корневая группа арендатора’ } its(‘children_display_names’) { should include(‘Имя отображения дочерней группы управления’) } its(‘children_ids’) { should include('/providers/Microsoft.Management/managementGroups/40000000-0000-0000-0000-000000000000') } its(‘children_names’) { should include(‘40000000-0000-0000-0000-000000000000’) } its(‘children_types’) { should include('/providers/Microsoft.Management/managementGroups') } end

describe azurerm_management_group(group_id: ‘40000000-0000-0000-0000-000000000000’, expand: ‘children’, recurse: true) do it { should exist } its(‘id’) { should eq ‘/providers/Microsoft.Management/managementGroups/40000000-0000-0000-0000-000000000000’ } its(‘type’) { should eq ‘/providers/Microsoft.Management/managementGroups’ } its(‘name’) { should eq ‘40000000-0000-0000-0000-000000000000’ } its(‘display_name’) { should eq ‘Имя отображения дочерней группы управления’ } its(‘tenant_id’) { should eq ‘56700000-0000-0000-0000-000000000000’ } its(‘parent_name’) { should eq ‘20000000-0000-0000-0000-000000000000’ } its(‘parent_id’) { should eq ‘/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000’ } its(‘parent_display_name’) { should eq ‘Имя отображения группы управления Один’ } its(‘children_display_names’) { should eq [] } its(‘children_ids’) { should eq [] } its(‘children_names’) { should eq [] } its(‘children_types’) { should eq [] } end

Параметры

  • group_id
  • expand
  • recurse
  • filter

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

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

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

describe azurerm_management_group(group_id: 'MyGroupId') do
  ...
end

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

Параметр запроса позволяет клиентам запрашивать включение дочерних элементов, чтобы вы могли их проверить.

describe azurerm_management_group(group_id: 'MyGroupId', expand: 'children') do
  ...
end

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

Установка в значение true позволяет клиентам запросить включение всей иерархии в полезной нагрузке ответа. Обратите внимание, что expand: 'children' должен быть передан, если recurse установлен в значение true.

describe azurerm_management_group(group_id: 'MyGroupId', expand: 'children', recurse: true) do
  ...
end

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

Фильтр, позволяющий исключить подписки из результатов (например, filter: 'children.childType ne Subscription')

describe azurerm_management_group(group_id: 'MyGroupId', expand: 'children', recurse: true, filter: 'children.childType ne Subscription') do
  ...
end

Атрибуты

  • id
  • type
  • name
  • tenant_id
  • parent_name
  • parent_id
  • parent_display_name
  • children_display_names
  • children_ids
  • children_names
  • children_roles
  • children_types

id

Идентификатор группы управления.

its('id') { should eq('/providers/Microsoft.Management/managementGroups/MyGroupId') }

id будет в формате:

'/providers/Microsoft.Management/managementGroups/<GROUP_ID>'

type

Тип группы управления.

its('type') { should eq('/providers/Microsoft.Management/managementGroups') }

name

Имя группы управления.

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

tenant_id

Идентификатор арендатора группы управления.

its('tenant_id') { should eq('00000000-0000-0000-0000-000000000000') }

parent_name

Имя родительской группы управления.

its('parent_name') { should eq('MyGroupsParentName') }

parent_id

Идентификатор родительской группы управления

its('parent_id') { should eq('/providers/Microsoft.Management/managementGroups/MyGroupsParentId') }

parent_id будет в формате:

'/providers/Microsoft.Management/managementGroups/<GROUP_ID>'

parent_display_name

Имя отображения родительской группы управления

its('parent_display_name') { should eq('My Groups Parent Display Name!') }

children_display_names

Имена отображения дочерних групп управления.

its('children_display_names') { should include('I am a child of the group!') }

children_ids

Идентификаторы дочерних групп управления.

its('children_ids') { should include('/providers/Microsoft.Management/managementGroups/a-child-name') }

children_names

Названия дочерних групп управления.

its('children_names') { should include('a-child-name') }

children_roles

Роли дочерних групп управления.

its('children_roles') { should include('/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635') }

children_types

Тип группы управления

its('children_types') { should include('') }

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

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

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

Обработчики

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

exists

# If a management group is found it will exist
describe azurerm_management_group(groupd_id: 'MyGroupId') do
  it { should exist }
end

# management groups that aren't found will not exist
describe azurerm_management_group(groupd_id: '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_management_group/

Spec-Zone.ru

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