azurerm_role_definitions ресурс
Используйте ресурс аудита InSpec azurerm_role_definitions для проверки свойств некоторых или всех определений ролей Azure.
Версия Azure REST API
Этот ресурс взаимодействует с версией 2015-07-01 API Azure Graph. Дополнительную информацию см. в официальной документации Azure.
В настоящее время, похоже, нет способа выбрать версию документации Azure API. Если вы заметите, что в официальной документации упоминается более новая версия, пожалуйста, откройте вопрос или отправьте запрос на вытягивание с обновленной версией.
Доступность
Установка
Этот ресурс доступен в inspec-azure пакете ресурсов. Для его использования добавьте следующее в свой inspec.yml в вашем профиле верхнего уровня:
depends:
- name: inspec-azure
git: https://github.com/inspec/inspec-azure.git
Вам также потребуется настроить свои учетные данные Azure; см. README пакета ресурсов.
Версия
Этот ресурс стал доступен в версии 1.3.7 пакета ресурсов inspec-azure.
Синтаксис
Блок ресурса azurerm_role_definitions возвращает все определения ролей в рамках подписки и позволяет их проверку.
describe azurerm_role_definitions do
...
end
Примеры
В следующих примерах показано, как использовать этот ресурс аудита InSpec.
Проверка наличия правильных разрешений у роли
describe azurerm_role_definitions.where{name.eql?('Custom-Admin')} do
its ('properties.first.permissions.first') { should have_attributes(actions: ['*']) }
end
Проверка отсутствия определенных разрешений у роли
describe azurerm_role_definitions do
its ('properties.first.permissions.first') { should have_attributes(notActions: [
'Microsoft.Authorization/*/Delete',
'Microsoft.Authorization/*/Write',
'Microsoft.Authorization/elevateAccess/Action',
'Microsoft.Blueprint/blueprintAssignments/write',
'Microsoft.Blueprint/blueprintAssignments/delete'
]) }
end
Критерии фильтрации
names
Фильтрует результаты, включая только те группы ресурсов, которые соответствуют заданному имени. Это строковое значение.
describe azurerm_role_definitions.where{name.eql?('Custom-Admin') } do
it { should exist }
end
Свойства
idsnamesproperties
ids
Идентификаторы объектов ролей.
names
Имена ролей. Для встроенной роли это будет сгенерированный Azure UUID. Для пользовательской роли это будет имя, указанное вами при создании.
properties
Дополнительные свойства, доступные для ролей. Могут быть доступны с использованием точечной нотации в контролях.
Сопоставители
Этот ресурс аудита InSpec имеет следующие специальные сопоставители. Полный список доступных сопоставителей можно найти на нашей странице Универсальные сопоставители.
exists
Контроль будет пройден, если фильтр возвращает как минимум один результат. Используйте should_not если ожидается ноль совпадений.
describe azurerm_role_definitions 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_definitions/