Вопрос или проблема
Я создаю runbook Azure Automation, который отправляет приглашения гостям через Graph API, используя управляемую системой идентичность для аутентификации. Я настроил корпоративное приложение MI со следующими правами Graph: User.Invite.All (для отправки приглашений), User.ReadWrite.All (по-видимому, необходимое для подтверждения).
Моя MI имеет следующие роли Azure: Automation Job Operator, Automation Runbook Operator. В этой конфигурации мой runbook успешно отправляет приглашения, но ни один гость не создается, когда ссылка на приглашение активируется.
Если я добавляю роль User Access Administrator к своей MI, все работает безукоризненно. Однако мне это кажется избыточным, так как эта роль может делать гораздо больше, чем необходимо для выполнения задачи (создание гостевого пользователя). Есть ли способ выполнить это с более ограничительным подходом?
Ответ или решение
Ограничение прав для управляемого идентификатора Azure Automation
Ваша задача заключается в создании автоматизированной системы для отправки приглашений гостям через API Microsoft Graph с использованием управляемого идентификатора (MI). Вы уже настроили необходимые разрешения и роли, но столкнулись с проблемой избыточных прав, требуемых для создания учетных записей гостей. Давайте разберем, как можно минимизировать права управляемого идентификатора, сохраняя при этом функциональность вашего решения.
1. Понимание текущих настроек
Вы правильно настроили разрешения Graph API с использованием:
- User.Invite.All – для отправки приглашений;
- User.ReadWrite.All – для завершения процесса создания учетной записи при редемпции приглашения.
Однако, в текущих настройках вам необходимо присвоить роли, которые позволяют управлять доступом, включая роль User Access Administrator. Эта роль предоставляет слишком много прав, что вызывает опасения по поводу безопасности и управления доступом.
2. Необходимые минимальные разрешения
Чтобы достичь вашей цели с минимально необходимыми разрешениями, вам стоит рассмотреть следующие аспекты:
-
Создание специализированной роли: Вместо использования роли User Access Administrator, вы можете создать специализированную роль с ограниченными правами. В Azure можно создать пользовательскую роль, которая будет включать только необходимые действия, такие как:
microsoft.directory/users/signup
– создание учетных записей пользователей;microsoft.directory/invitations/send
– отправка приглашений.
-
Регистрация роли: Для этого вам нужно будет зарегистрировать новую роль через Azure Active Directory:
- Перейдите в Azure Active Directory.
- Выберите "Roles and administrators".
- Создайте новую роль, определив необходимые разрешения.
3. Настройка управляемого идентификатора
После создания пользовательской роли вам потребуется:
- Назначить новую пользовательскую роль вашему управляемому идентификатору Azure Automation. Убедитесь, что у вашего MI есть все необходимые права, сохраняя тем не менее их ограниченность.
4. Порядок действий
Следуйте этому плану действий:
- Создайте пользовательскую роль с минимальными необходимыми правами.
- Назначьте эту роль вашему управляемому идентификатору в рамках Azure AD.
- Проверьте работу вашей автоматизации: протестируйте отправку приглашений и редемпцию, убедившись, что пользователи создаются успешно.
5. Итоговые мысли
Создание более специализированной роли для управляемого идентификатора в Azure Automation позволит вам значительно улучшить безопасность вашей системы, минимизируя предоставляемые права. Это позволит избежать рисков, связанных с избыточными правами, и гарантирует, что ваш автоматизированный процесс будет работать так, как предполагалось.
Таким образом, осуществляя такие изменения, вы не только улучшаете безопасность своей системы, но и внедряете лучшие практики управления доступом в Azure.