Spec-Zone.ru › Chef 16

azurerm_role_definition ресурс

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

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

Версия Azure REST API

Этот ресурс взаимодействует с версией 2015-07-01 API управления. Дополнительная информация в официальной документации Azure.

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

Доступность

Установка

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

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

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

Версия

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

Синтаксис

Имя роли name должно быть указано в качестве параметра. Для встроенных ролей, таких как Owner или Contributor, это имя роли имеет вид UUID. Для ролей CustomRole, которые вы добавили в свой подписку, в поле Name будет использоваться имя, выбранное вами при создании роли.

describe azurerm_role_definition(name: 'some-custom-role-name') do
  ...
end

Примеры

Проверьте, что заданная роль имеет определенные разрешения

describe azurerm_role_definition(name: 'policy-reader-only')
  it { should exist }
    its('permissions_allowed') { should include 'Microsoft.Authorization/policyassignments/read'}
    its('permissions_allowed') { should_not include 'Microsoft.Authorization/policyassignments/write'}
    its('permissions_allowed') { should_not include '*'}
end

Атрибуты

  • id
  • name
  • role_name
  • type
  • role_type
  • assignable_scopes
  • permissions_allowed
  • permissions_not_allowed

id

Идентификатор объекта роли

name

Имя роли. Для встроенной роли это будет сгенерированный Azure UUID. Для пользовательской роли это будет имя, указанное при создании.

role_name

Человекочитаемое имя роли.

type

Тип объекта, например, Microsoft.Authorization/roleDefinitions

role_type

BuiltInRole или CustomRole

assignable_scopes

Области назначение роли.

permissions_allowed

Предоставленные разрешения поставщика с этой ролью.

permissions_not_allowed

Разрешения поставщика, заблокированные этой ролью.

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

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

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

Матчеры

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

exists

describe azurerm_role_definition(name: 'some-role') 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_role_definition/

Spec-Zone.ru

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