Невозможно создать назначение ролей в конвейере с принципом обслуживания владельца

У меня есть конвейер сборки, который развертывает некоторые шаблоны ARM. Некоторым из этих ресурсов обязательно должны быть назначены роли для RBAC.

Принцип службы, который конвейер использует для подключения к подписке, - это владелец, но если либо шаблоны попытаются создать ресурсы назначения ролей, либо я попытаюсь запустить z cli в конвейере для создания назначений, будет недостаточно разрешений.

Какие разрешения выше владельца необходимы для этого?


person Elomis    schedule 25.09.2019    source источник
comment
Принцип службы, согласно которому вы вошли в систему, может не иметь разрешения. Вы можете проверить здесь, Вы также можете попытаться войти в систему как пользователь, который является глобальным администратором, чтобы выполнить назначение   -  person Levi Lu-MSFT    schedule 26.09.2019
comment
Неа. Принципал службы является владельцем подписки - глобальным администратором.   -  person Elomis    schedule 03.10.2019
comment
Есть новости по этой проблеме?   -  person Joy Wang    schedule 17.10.2019


Ответы (1)


Я полагаю, вы неправильно поняли Global admin и Owner. Global admin - это Administrator role в Azure AD, а Owner - это _ 6_ в подписке. Это разные вещи.

Когда вы используете Azure cli, как показано ниже, для создания назначения ролей, он добавляет участника службы joytestsp как Owner в учетную запись хранения. Субъект службы, в который вы входите, должен сначала вызвать график AAD, чтобы получить объект, а затем вызвать api azure mangement rest, чтобы добавить его в учетную запись хранения.

az role assignment create --assignee 'joytestsp' --role 'Owner' --scope '/subscriptions/xxxxxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/joyfunction'

Чтобы решить эту проблему, вы можете перейти к Azure Active Directory на портале -> Roles and administrators -> щелкнуть Global administrator -> _13 _-> добавить своего субъекта-службы, который использовался для входа в систему как Global administrator. Тогда это должно сработать.


Кроме того, если вы не хотите давать Global administrator субъекту-службе, вы также можете указать object id субъекта-службы / пользователя в команде, тогда это тоже будет работать.

az role assignment create --assignee 'b4d3c922-xxxxxxx-3ab785333011' --role 'Owner' --scope '/subscriptions/xxxxxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/joyfunction'
person Joy Wang    schedule 07.10.2019