Идентификация и управление доступом
Безопасность в Azure начинается с управления идентификацией -- кто может получить доступ к ресурсам и что именно ему разрешено делать. Два фундаментальных процесса: аутентификация (кто вы?) и авторизация (что вам разрешено?).
Microsoft Entra ID (бывший Azure AD)
Microsoft Entra ID -- это облачная служба управления идентификацией и доступом. Это не просто каталог пользователей, а комплексная платформа для аутентификации и авторизации.
Основные объекты Entra ID:
- Пользователи (Users) -- учетные записи сотрудников и внешних пользователей
- Группы (Groups) -- объединения пользователей для упрощения управления доступом
- Сервисные принципалы (Service Principals) -- идентификация приложений и сервисов
- Управляемые идентификации (Managed Identities) -- автоматическое управление учетными данными для Azure-ресурсов
Ключевые возможности:
- Single Sign-On (SSO) -- одна учетная запись для доступа ко всем приложениям
- Многофакторная аутентификация (MFA) -- дополнительный уровень защиты
- Условный доступ (Conditional Access) -- политики доступа на основе условий
- B2B и B2C -- работа с внешними пользователями и клиентами
Entra ID vs Active Directory Domain Services
Entra ID -- это не облачная версия традиционного Active Directory. Это разные продукты:
| Характеристика | Entra ID | AD DS (on-premises) |
|---|---|---|
| Протоколы | OAuth 2.0, OpenID Connect, SAML | Kerberos, LDAP |
| Структура | Flat (нет OU и лесов) | Деревья, леса, OU |
| Управление устройствами | Intune (MDM) | Group Policy |
| Доступ | Интернет (REST API) | Локальная сеть |
Многофакторная аутентификация (MFA)
MFA требует от пользователя подтвердить личность несколькими способами:
- Что-то, что вы знаете -- пароль
- Что-то, что вы имеете -- телефон (SMS, push-уведомление) или аппаратный ключ
- Что-то, что вы есть -- биометрия (отпечаток пальца, распознавание лица)
MFA существенно снижает риск компрометации учетных записей -- даже если пароль украден, злоумышленник не сможет войти без второго фактора.
RBAC -- Role-Based Access Control
RBAC -- это система управления доступом на основе ролей. Вместо назначения прав каждому пользователю отдельно, вы назначаете роли, которые содержат набор разрешений.
Встроенные роли:
| Роль | Описание |
|---|---|
| Owner | Полный доступ ко всем ресурсам + управление доступом других пользователей |
| Contributor | Полный доступ ко всем ресурсам, но без управления доступом |
| Reader | Только просмотр ресурсов |
| User Access Administrator | Управление доступом пользователей (без управления ресурсами) |
Области применения (Scope):
Роли назначаются на определенном уровне иерархии, и наследуются вниз:
Management Group (наивысший уровень)
+-- Subscription
+-- Resource Group
+-- Resource (наименьший уровень)
Если пользователь получает роль Contributor на уровне Subscription, он автоматически получает ее для всех Resource Groups и ресурсов внутри этой подписки.
# Назначение роли Contributor для пользователя на уровне Resource Group
az role assignment create \
--assignee [email protected] \
--role "Contributor" \
--resource-group rg-orderapp-dev
Принцип наименьших привилегий (Least Privilege): всегда назначайте минимально необходимые права. Если пользователю нужно только просматривать ресурсы, назначьте Reader, а не Contributor.
Conditional Access
Условный доступ -- это расширенные политики, которые определяют условия для доступа к ресурсам. Политики работают по принципу: "если [условие], тогда [действие]".
Примеры сигналов (условий):
- Местоположение пользователя (IP-адрес, страна)
- Устройство (корпоративное или личное, управляемое или нет)
- Приложение (к какому ресурсу пытается получить доступ)
- Уровень риска (анализируется AI на основе поведения)
Примеры действий:
- Разрешить доступ
- Потребовать MFA
- Потребовать совместимое устройство
- Заблокировать доступ
Типичная политика: если пользователь подключается из-за пределов офисной сети, требовать MFA.
Managed Identities
Managed Identity -- это автоматически управляемая идентификация для Azure-ресурсов. Она позволяет ресурсам Azure (например, App Service) аутентифицироваться в других сервисах (например, SQL Database) без хранения паролей и ключей в коде.
System-Assigned Managed Identity:
- Создается автоматически с ресурсом
- Удаляется вместе с ресурсом
- Уникальна для каждого ресурса
User-Assigned Managed Identity:
- Создается как отдельный ресурс
- Может использоваться несколькими ресурсами
- Существует независимо от ресурсов
# Включение System-Assigned Managed Identity для App Service
az webapp identity assign \
--name my-web-app \
--resource-group rg-demo
Managed Identity -- это рекомендуемый способ аутентификации между Azure-сервисами. Никогда не храните пароли и ключи в коде, если можно использовать Managed Identity.