Ограничение редактирования тегов, будучи владельцем группы ресурсов

Он каждый, у меня есть подписка, в которой я хочу создавать среду песочницы для людей. Моя цель - дать людям группу ресурсов и сделать их владельцами группы ресурсов. В этой небольшой группе ресурсов они могут делать все, что захотят, но не трогать ничего, кроме нее, в подписке. Конечно, есть некоторые ограничения на ресурсы, которые они могут развернуть, но для моей цели это приемлемое решение.

Мой автоматизированный процесс создавал RG, а затем добавлял к нему несколько тегов. Кому он принадлежит (электронная почта) и когда он был создан (дата создания). Через 30 дней я хочу пройтись по любой группе ресурсов, возраст которой 30 дней. Доступ к этой среде ограничен по времени. Я полагаю, что могу прочитать тег и удалить его в зависимости от даты тега.

Мне нужен способ запретить владельцу группы редактировать тег каким-либо образом.

Введите настраиваемую роль - владелец группы ресурсов

{
    "id": "/subscriptions/<sub-guid>/providers/Microsoft.Authorization/roleDefinitions/1cae04e5-3bd2-4d8d-9c3b-ef5bd8e58408",
    "properties": {
        "roleName": "Resource Group Owner",
        "description": "Assigned at the RG level owns everything within the RG, with the exception of editing tags.",
        "assignableScopes": [
            "/subscriptions/<sub-guid>"
        ],
        "permissions": [
            {
                "actions": [
                    "*"
                ],
                "notActions": [
                    "Microsoft.Resources/tags/write",
                    "Microsoft.Resources/tags/delete"
                ],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
}

Согласно документации, это правильно. Я указал разрешенные действия, а затем добавил исключенные действия, которые следует вычесть из разрешенных действий в назначенной области (в данном случае группа ресурсов). Меня не волнует, могут ли они добавлять или удалять теги на ресурсах внутри RG, я просто не хочу, чтобы они возились с тегами RG.

С этой ролью, назначенной пользователю, они могут видеть только группу RG в назначенной им подписке, но они все еще могут редактировать присвоенные ей теги.

Что я делаю неправильно?

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

Спасибо за помощь.


person Chief    schedule 07.05.2021    source источник


Ответы (1)


Хотя вы помещаете Microsoft.Resources/tags/write и Microsoft.Resources/tags/delete в notActions, есть еще одна операция поставщика ресурсов Microsoft.Resources/subscriptions/resourceGroups/write, которая позволяет пользователю редактировать тег.

Вам также нужно поместить его в notActions.

Хотя документ указывает: Microsoft.Resources/subscriptions/resourceGroups/write означает Создает или обновляет группу ресурсов, я могу создавать любые другие ресурсы Azure в этой группе ресурсов.

Судя по результатам моих тестов, я думаю, что ограниченная часть предназначена только для обновления самой группы ресурсов.

Вы можете попробовать проверить, соответствует ли он вашим требованиям.

person Allen Wu    schedule 11.05.2021
comment
Спасибо, я избегал этого правила именно потому, что хотел позволить пользователю писать и создавать ресурсы ВНУТРИ RG. Ощущение, что добавление этого действия предотвратит это. Я попробую здесь. Придется ли мне создавать новую роль для каждой группы, используя назначаемые области? Вот и был бы неудачный блокиратор. - person Chief; 11.05.2021
comment
@Chief Я думал так же, как и ты. Но после тестирования выяснилось, что пользователи могут создавать ресурсы в этой группе ресурсов. Пожалуйста, попробуйте со своей стороны. Для назначаемых областей нет необходимости устанавливать ее для определенной группы ресурсов (я ее тестировал). Поэтому я удаляю содержание своего ответа. - person Allen Wu; 12.05.2021
comment
@Chief Привет, есть обновления? - person Allen Wu; 18.05.2021
comment
ваше предложение сработало! Спасибо! - person Chief; 19.05.2021