Поделиться через


Безопасный доступ к управляемым модулям аппаратной безопасности (HSM)

В этом руководстве представлен практический пример управления доступом для управляемой HSM в Azure Key Vault. Вы узнаете, как реализовать разделение обязанностей с помощью Azure RBAC и локального RBAC управляемого HSM в рамках реалистичного сценария.

Это важно

Прежде чем продолжить работу с этим руководством, убедитесь, что вы понимаете модель управления доступом HSM, включая различия между уровнем управления и доступом к плоскости данных. Для этой концептуальной основы см. контроль доступа управляемого HSM.

Предпосылки

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

Кроме того, вам понадобится следующее:

Azure Cloud Shell

Azure предоставляет Azure Cloud Shell, интерактивную среду оболочки, которую можно использовать через браузер. Вы можете использовать Bash или PowerShell с Cloud Shell для работы со службами Azure. Вы можете использовать предварительно установленные команды Cloud Shell для запуска кода в этой статье, не устанавливая ничего в локальной среде.

Чтобы начать Azure Cloud Shell, выполните приведенные действия.

Вариант Пример/ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. Выбор Try It не копирует код или команду в Cloud Shell. Screenshot, показывающий пример пробной версии для Azure Cloud Shell.
Перейдите к https://shell.azure.com или нажмите кнопку Launch Cloud Shell, чтобы открыть Cloud Shell в браузере. Кнопка для запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу на портале Azure. Скриншот, показывающий кнопку Cloud Shell на портале Azure

Чтобы использовать Azure Cloud Shell:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в сеанс Cloud Shell, выбрав Ctrl+Shift+V в Windows и Linux, или выбрав Cmd+Shift+V в macOS.

  4. Выберите , затем нажмите для выполнения кода или команды.

Вход в Azure

Чтобы войти в Azure с помощью интерфейса командной строки, введите следующее:

az login

Дополнительные сведения о параметрах проверки подлинности с помощью интерфейса командной строки см. в разделе Sign in with Azure CLI.

Общие сведения о примере сценария

В этом примере вы разрабатываете приложение, использующее 2048-разрядный ключ RSA для операций подписи. Приложение выполняется на виртуальной машине Azure с управляемым удостоверением. Ключ RSA, используемый для подписывания, хранится в управляемом HSM.

Определение ролей и обязанностей

Определите роли, которые управляют, развертывают и проверяют приложение:

  • Группа безопасности. Это ИТ-специалисты, работающие под управлением руководителя службы безопасности или в другой аналогичной структуре. Служба безопасности несет ответственность за надлежащее хранение ключей. К ним относятся ключи RSA или EC для подписывания, а также ключи RSA или oct для шифрования данных.
  • Разработчики и операторы: сотрудники, которые разрабатывают приложение и разворачивают его в Azure. Участники этой команды не являются сотрудниками службы безопасности. Они не должны иметь доступа к конфиденциальным данным, таким как ключи RSA. Только развертываемое ими приложение должно иметь доступ к этим конфиденциальным данным.
  • Аудиторы: участники, которые не являются членами ИТ-отдела или общего ИТ-персонала. Они проверяют надлежащее использование и обслуживание сертификатов, ключей и секретов, а также обеспечивают соответствие стандартам безопасности данных.

Существует другая роль, которая находится за пределами области вашего приложения: администратор подписки (или группы ресурсов). Администратор подписки устанавливает начальные права доступа для группы безопасности. Они предоставляют доступ команде безопасности, используя группу ресурсов, которая содержит ресурсы, необходимые для приложения.

Определение необходимых операций для каждой роли

Авторизуйте следующие операции для каждой роли:

Группа безопасности:

  • Создать управляемый модуль HSM
  • Скачайте управляемый домен безопасности HSM для аварийного восстановления
  • Включите ведение журнала
  • создание или импорт ключей;
  • Создание управляемых резервных копий HSM для аварийного восстановления
  • Установите локальный RBAC управляемого HSM для предоставления разрешений пользователям и приложениям для выполнения определенных операций
  • Периодически обновлять ключи

Разработчики и операторы:

  • Запросите ссылку (URI ключа) у команды безопасности для ключа RSA, используемого для подписи.
  • Разработка и развертывание приложения, которое обращается к ключу программным способом

Аудиторы:

  • проверка дат окончания срока действия ключей, позволяющая поддерживать их актуальность;
  • Мониторинг назначений ролей для обеспечения доступа только авторизованных пользователей и приложений к ключам
  • Просмотрите журналы управляемого модуля HSM, чтобы подтвердить правильное использование ключей в соответствии со стандартами безопасности данных

Назначение соответствующих ролей

В следующей таблице обобщены назначения ролей, предназначенных командам и ресурсам для доступа к управляемому HSM.

Должность Роль плоскости управления Роль плоскости данных
Отдел безопасности Участник управляемого модуля HSM Администратор управляемого модуля аппаратной безопасности (HSM)
Разработчики и операторы Отсутствует Отсутствует
Аудиторы Отсутствует Аудитор системы шифрования управляемого устройства HSM
Управляемое удостоверение виртуальной машины, используемой приложением Отсутствует Пользователь шифрования управляемого устройства HSM
Управляемое удостоверение учетной записи хранения, используемой приложением Отсутствует Шифрование с помощью управляемого криптографического сервиса HSM

Этим трем ролям группы, помимо разрешений в управляемом устройстве HSM, требуется доступ к другим ресурсам. Для развертывания виртуальных машин Azure (или функции веб-приложения Служба приложений Azure) разработчики и операторы должны иметь Contributor доступ к этим типам ресурсов. Аудиторам требуется доступ на чтение к учетной записи хранения, где хранятся журналы управляемого устройства HSM.

Реализация с помощью Azure CLI

Чтобы назначить роли уровня управления (Azure RBAC), используйте портал Azure или любой другой интерфейс управления, например Azure CLI или Azure PowerShell. Чтобы назначить управляемые роли уровня данных HSM, используйте Azure CLI или Azure REST API.

Дополнительные сведения о ролях плоскости управления см. в разделе встроенные роли Azure. Дополнительные сведения о ролях плоскости данных для Управляемой HSM см. в статье Локальные встроенные роли RBAC для Управляемой HSM.

В следующих Azure CLI фрагментах кода показано, как реализовать назначения ролей, описанные ранее:

Предположения

  • Администратор Microsoft Entra создал группы безопасности для представления трех ролей: Команда по безопасности, DevOps приложений и аудиторы приложений. Администратор добавил пользователей в соответствующие группы.
  • Все ресурсы находятся в <resource-group> группе ресурсов.
  • Управляемые журналы HSM хранятся в учетной <storage-account-name> записи хранения.
  • Управляемый HSM <hsm-name> и учетная запись хранения <storage-account-name> находятся в одном Azure регионе.

Назначьте роли плоскости управления

Администратор подписки назначает Managed HSM Contributor роль команде безопасности. Эта роль предоставляет группе безопасности разрешение на управление существующими управляемыми виртуальными машинами HSM и создание новых.

# This role assignment allows Security Team to create new Managed HSMs
az role assignment create --assignee-object-id $(az ad group show -g '<security-team-group>' --query 'id' -o tsv) --assignee-principal-type Group --role "Managed HSM Contributor"

Назначение ролей плоскости данных

Для существующих управляемых виртуальных машин HSM назначьте Managed HSM Administrator роль группе безопасности, чтобы они могли управлять виртуальными машинами HSM:

# This role assignment allows Security Team to become administrator of existing managed HSM
az keyvault role assignment create --hsm-name <hsm-name> --assignee $(az ad group show -g '<security-team-group>' --query 'id' -o tsv) --scope / --role "Managed HSM Administrator"

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

Группа безопасности настраивает ведение журнала и назначает роли аудиторам и приложению виртуальной машины:

# Enable logging
hsmresource=$(az keyvault show --hsm-name <hsm-name> --query id -o tsv)
storageresource=$(az storage account show --name <storage-account-name> --query id -o tsv)
az monitor diagnostic-settings create --name MHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource

# Assign the "Crypto Auditor" role to App Auditors group. It only allows them to read.
az keyvault role assignment create --hsm-name <hsm-name> --assignee $(az ad group show -g '<auditor-group>' --query 'id' -o tsv) --scope / --role "Managed HSM Crypto Auditor"

# Grant the "Crypto User" role to the VM's managed identity. It allows to use keys.
az keyvault role assignment create --hsm-name <hsm-name> --assignee $(az vm identity show --name "<vm-name>" --resource-group "<resource-group>" --query principalId -o tsv) --scope / --role "Managed HSM Crypto User"

# Assign "Managed HSM Crypto Service Encryption User" role to the Storage account identity
storage_account_principal=$(az storage account show --id $storageresource --query identity.principalId -o tsv)
# (if no identity exists), then assign a new one
[ "$storage_account_principal" ] || storage_account_principal=$(az storage account update --assign-identity --id $storageresource --query identity.principalId -o tsv)

az keyvault role assignment create --hsm-name <hsm-name> --role "Managed HSM Crypto Service Encryption User" --assignee $storage_account_principal

Настройка управления привилегированными идентификационными данными (управление привилегированными пользователями) для доступа "по требованию" (JIT)

Для высокочувствительных сред используйте Microsoft Entra управление привилегированными пользователями (PIM) для обеспечения доступа по принципу "just-in-time" к роли администратора управляемого HSM. PIM уменьшает область атаки, устраняя постоянные административные привилегии.

Предварительные требования для интеграции PIM

  • лицензия Microsoft Entra ID P2 или Управление Microsoft Entra ID
  • Роль администратора привилегированных ролей или глобального администратора в Microsoft Entra ID

Включение PIM для роли администратора управляемого устройства HSM

  1. Войдите в Центр администрирования Microsoft Entra.

  2. Перейдите к Identity governance>управление привилегированными пользователями>роли Microsoft Entra.

  3. Выберите роли и выполните поиск ролей, включающих управляемый модуль HSM. Хотя роли плоскости данных (администратор Managed HSM, пользователь криптографии и т. д.) управляются с помощью локального RBAC управляемого HSM, для роли участника Managed HSM уровня управления вы можете использовать PIM.

  4. Выберите роль и настройте:

    • Максимальная длительность активации: установите ограниченное время (например, 4–8 часов)
    • Требовать обоснование: включить, чтобы пользователи могли предоставить причину активации
    • Требовать утверждение: включите и укажите утверждающих из команды безопасности
    • Требовать многофакторную проверку подлинности: включить для дополнительного уровня безопасности.

Использование групп безопасности Microsoft Entra с PIM

Для ролей плоскости данных, управляемых с помощью управляемого HSM local RBAC, объедините PIM с группами безопасности Microsoft Entra:

  1. Создайте группу безопасности Microsoft Entra для администраторов HSM (например, "Администраторы HSM").

  2. Назначьте этой группе безопасности роль администратора Managed HSM.

    az keyvault role assignment create --hsm-name <hsm-name> \
      --assignee $(az ad group show -g '<hsm-admins-group>' --query 'id' -o tsv) \
      --scope / --role "Managed HSM Administrator"
    
  3. Настройте группу безопасности как имеющую право на PIM в Центре администрирования Microsoft Entra.

    • Перейдите к Identity governance>управление привилегированными пользователями>Groups
    • Выберите Обнаружение групп и добавьте "Администраторов HSM"
    • Настройка параметров активации (длительность, утверждение, MFA)
  4. Когда администраторам нужен доступ, они активируют членство в группе через PIM, который временно предоставляет им роль администратора управляемого контроллера HSM.

Мониторинг активаций PIM

Настройте оповещения для активации ролей PIM, чтобы обеспечить видимость:

  1. В центре администрирования Microsoft Entra перейдите к управление привилегированными пользователями>роли Microsoft Entra>Оповещения.

  2. Настройка оповещений для:

    • Роли активируются слишком часто
    • Роли, назначенные за пределами PIM
    • Создаваемые подходящие задания

Для комплексного мониторинга безопасности интегрируйте эти оповещения с Microsoft Sentinel вместе с журналами аудита управляемого модуля HSM.

Рекомендации по рабочим средам

В этом руководстве демонстрируется упрощенный сценарий для иллюстрации реализации управления доступом.

Настройте разрешения для управляемого HSM на основе конкретных требований. В этом примере команда безопасности предоставляет ссылки на ключи и секреты (URI и отпечатки) сотрудникам DevOps для использования в своих приложениях. Разработчикам и операторам не требуется прямой доступ к плоскости данных. Хотя в этом руководстве основное внимание уделяется защите управляемого устройства HSM, применяют аналогичные меры безопасности к другим ресурсам Azure, таким как виртуальные компьютеры, управляемые учетные записи и другие.

Дальнейшие действия