azurerm_role_definition ресурс
Используйте ресурс аудита 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
Атрибуты
idnamerole_nametyperole_typeassignable_scopespermissions_allowedpermissions_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/