Spec-Zone.ru › Chef 16

azurerm_management_group ресурс

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

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

Версия Azure REST API

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

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

Доступность

Установка

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

Матчи

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