Я создаю политику Azure, с большой помощью я смог добраться до приведенной ниже политики json, но она ведет себя не так, как я ожидаю.
Согласно моему пониманию (поправьте меня, если я ошибаюсь): политика Azure - это в основном утверждение [if] и [then]. После [if] на картинке появляются все теги, в которых говорится, что. Если условие [Тип: Группа ресурсов] соответствует и [Имя тега Env! = Prod] и [Имя тега OS! = Windows] [затем] отклоняется.
Но результатом вышеупомянутой политики является то, что: если я указываю [Env = prod и указываю OS = Linux] в одной ResourceGroup, то политика позволяет пользователю создавать группу ресурсов.
это не должно быть результатом политики.
ожидаемый результат должен быть:
сценарий 1 (политика ведет себя правильно ): если я укажу только [Env = prod], то это позволит мне создать ResourceGroup или заблокировать меня, если я укажу что-нибудь еще
Сценарий 2 (Политика ведет себя правильно ): [OS = Windows] тогда это должно позволить мне создать RG или заблокировать меня, если я укажу что-нибудь еще.
Сценарий 3 (политика ведет себя неправильно ): [env = prod и OS = linux], тогда он должен заблокировать меня, так как второй TAG неверен.
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"field": "tags.Env",
"notEquals": "Prod"
},
{
"field": "tags.OS",
"notEquals": "windows"
}
]
},
"then": { "effect": "deny" }
}