Политика Azure не запрещает создание пользовательских ролей
В настоящее время я помогаю исследовать принятие Azure для публичного облака моей организации. Одна из назначенных мне задач - блокировка учетных записей, чтобы пользователи не могли повысить свои права в рамках подписки.
Одна из вещей, которые меня особенно интересуют, - это отрицание создания пользовательских ролей, поскольку мы не хотим, чтобы люди начинали создавать свои собственные роли до тех пор, пока безопасность роли не будет проверена.
Я пытался сделать это с помощью политики Azure со следующим определением
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/roleDefinitions"
},
{
"field": "Microsoft.Authorization/roleDefinitions/type",
"equals": "CustomRole"
}
]
},
"then": {
"effect": "Deny"
}
}
На самом деле это была просто скопированная встроенная политика "Audit Custom Roles", изменяющая эффект с "Audit" на "Deny".
Однако я применил эту политику к группе управления, которая содержит подписку, с которой я тестирую, и все же, когда я вхожу в CLI и пытаюсь создать новую настраиваемую роль, она запускается и создает роль.
Я гарантировал, что политика присутствует в подписке, и я подтвердил, что нахожусь в правильной подписке в CLI (используя az account show
) все же мне разрешено создавать собственные роли.
Это просто не то, что поддерживает Azure, или мне чего-то не хватает? Любая помощь или руководство будут с благодарностью приняты как документы Microsoft, и многочисленные примеры, доступные в Интернете, по-видимому, не содержат никакой информации об управлении ролями с помощью политик.
PS Я знаю, что вы можете контролировать роли в некоторой степени с помощью политик, поскольку у нас есть другая политика, которая предотвращает назначение определенного набора ролей, и это работает.
1 ответ
Похоже, что Azure CLI создает определение роли без заполнения поля "тип". Следующая политика будет обрабатывать это:
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/roleDefinitions"
},
{
"anyOf": [
{
"field": "Microsoft.Authorization/roleDefinitions/type",
"equals": "CustomRole"
},
{
"field": "Microsoft.Authorization/roleDefinitions/type",
"exists": "false"
}
]
}
]
},
"then": {
"effect": "Deny"
}
}