Назад | Перейти на главную страницу

как предоставить субъекту службы Azure те же права, что и моему собственному пользователю?

Я изучаю Azure и хотел использовать субъект-службу при входе в систему через интерфейс командной строки Azure вместо аутентификации через метод веб-входа. Я создал субъекта-службы с az ad sp create-for-rbac с областью действия в корне моей подписки и ролью «Владелец». Я могу успешно войти в систему с помощью субъекта-службы, но когда я пытаюсь сделать az ad sp list, Я получаю сообщение об ошибке, что у меня недостаточно прав: azure.graphrbac.models.graph_error.GraphErrorException: Insufficient privileges to complete the operation.

Когда я смотрю на вкладку Контроль доступа (IAM) в колонке подписки на портале, я вижу, что субъект-служба является владельцем, а моя собственная учетная запись является одновременно владельцем и администратором службы.

Есть ли способ предоставить Принципалу службы точно такие же права, как и у моей учетной записи?

Очевидно, что наделения ИП роли «владельца» недостаточно. Вы можете назначить ему роль «Читатели каталога». Однако это невозможно с помощью Azure CLI или портала. Вы должны использовать API-интерфейс Azure AD Graph, самый простой способ сделать это - использовать https://graphexplorer.azurewebsites.net/.

Второе предостережение: вы не можете использовать сайт graphexplorer, используя свою собственную учетную запись Azure (в моем случае у меня была простая личная настройка Azure, и только я был администратором), но вам необходимо создать пользователя в своем Azure AD. Я дал ему роль глобального администратора, чтобы быть уверенным, я не уверен, какая минимальная роль будет иметь возможность использовать Graph API.

Теперь, шаги по добавлению для SP роли читателей каталогов немного длинны, чтобы объяснять здесь, я нашел их здесь: https://lnx.azurewebsites.net/directory-roles-for-azure-ad-service-principal/

Не уверен, почему это должно быть так запутано и почему этого нет в документации.

Если у вашего СП есть Owner роль, команда az ad sp list может перечислить ваши sps.

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

az login --service-principal -u <client id> -p <client secret> --tenant <tenant id>