Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве представлен практический пример управления доступом для управляемого HSM в Azure Key Vault. Вы узнаете, как реализовать разделение обязанностей с помощью Azure RBAC и управляемого HSM локального RBAC с помощью реалистичного сценария.
Это важно
Прежде чем продолжить работу с этим руководством, убедитесь, что вы понимаете модель управления доступом управляемого модуля HSM, включая различия между плоскостью управления и плоскостью данных. Для этой концептуальной основы см. контроль доступа управляемого HSM.
Предпосылки
- Подписка на Microsoft Azure. Если у вас ее нет, зарегистрируйтесь, чтобы воспользоваться бесплатной пробной версией.
- Azure CLI 2.25.0 или более поздней версии. Чтобы узнать версию, выполните команду
az --version
. Если вам необходимо выполнить установку или обновление, обратитесь к статье Установка Azure CLI. - Управляемый модуль безопасности (HSM) в вашей подписке. См. Краткое начало: Подготовка и активация управляемого HSM с помощью Azure CLI для подготовки и активации управляемого HSM.
Azure Cloud Shell
Azure размещает Azure Cloud Shell, интерактивную среду оболочки, которую можно использовать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для выполнения кода в этой статье можно использовать предустановленные команды Cloud Shell, не устанавливая ничего в локальной среде.
Чтобы запустить Azure Cloud Shell, выполните приведенные действия.
Вариант | Пример/ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. |
![]() |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. |
![]() |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
![]() |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в сеанс Cloud Shell, выбрав CTRL+SHIFT+V в Windows и Linux или выбрав Cmd+Shift+V в macOS.
Выберите , затем нажмите для выполнения кода или команды.
Вход в Azure
Чтобы войти в Azure с помощью CLI, введите следующее:
az login
Дополнительные сведения о вариантах входа с помощью Azure CLI см. в этой статье.
Общие сведения о примере сценария
В этом примере мы создадим приложение, которое использует 2048-битный ключ RSA для операций подписывания. Наше приложение работает на виртуальной машине Azure с управляемым удостоверением. Ключ RSA, используемый для подписывания, хранится в управляемом HSM.
Определение ролей и обязанностей
Мы определили следующие роли для развертывания, аудита приложения и управления им:
- Группа безопасности. Это ИТ-специалисты, работающие под управлением руководителя службы безопасности или в другой аналогичной структуре. Служба безопасности несет ответственность за надлежащее хранение ключей. К ним относятся ключи RSA или EC для подписывания, а ключи RSA или AES для шифрования данных.
- Разработчики и операторы. Сотрудники, которые разрабатывают приложение и развертывают его в Azure. Участники этой команды не являются сотрудниками службы безопасности. Они не должны иметь доступа к конфиденциальным данным, таким как ключи RSA. Только развертываемое ими приложение должно иметь доступ к этим конфиденциальным данным.
- Аудиторы. Эта роль предназначена для участников, не являющихся сотрудниками отдела разработки и представителями ИТ-персонала в целом. Они проверяют надлежащее использование и обслуживание сертификатов, ключей и секретов, а также обеспечивают соответствие стандартам безопасности данных.
Существует другая роль, которая выходит за рамки нашего приложения. Это администратор подписки (или группы ресурсов). Администратор подписки устанавливает начальные права доступа для группы безопасности. Они предоставляют доступ команде безопасности, используя группу ресурсов, которая содержит ресурсы, необходимые для приложения.
Определение необходимых операций для каждой роли
Нам необходимо авторизовать для наших ролей следующие операции.
Группа безопасности:
- Создать управляемый модуль HSM
- скачивание домена безопасности управляемого устройства HSM (для аварийного восстановления);
- Включите ведение журнала
- создание или импорт ключей;
- Создание управляемых резервных копий HSM для аварийного восстановления
- Установите локальный RBAC управляемого HSM для предоставления разрешений пользователям и приложениям для выполнения определенных операций
- Периодически обновлять ключи
Разработчики и операторы:
- Запросите ссылку (URI ключа) у команды безопасности для ключа RSA, используемого для подписи.
- Разработка и развертывание приложения, которое обращается к ключу программным способом
Аудиторы:
- проверка дат окончания срока действия ключей, позволяющая поддерживать их актуальность;
- отслеживание назначений ролей, чтобы доступ к ключам имели только полномочные пользователи и (или) приложения;
- Просмотрите журналы управляемого модуля HSM, чтобы подтвердить правильное использование ключей в соответствии со стандартами безопасности данных
Назначение соответствующих ролей
В следующей таблице обобщены назначения ролей, предназначенных командам и ресурсам для доступа к управляемому HSM.
Должность | Роль управляющего уровня | Роль плоскости данных |
---|---|---|
Отдел безопасности | Участник управляемого модуля HSM | Администратор управляемого модуля аппаратной безопасности (HSM) |
Разработчики и операторы | Отсутствует | Отсутствует |
Аудиторы | Отсутствует | Аудитор системы шифрования управляемого устройства HSM |
Управляемое удостоверение виртуальной машины, используемой приложением | Отсутствует | Пользователь шифрования управляемого устройства HSM |
Управляемое удостоверение учетной записи хранения, используемой приложением | Отсутствует | Шифрование с помощью управляемого криптографического сервиса HSM |
Этим трем ролям группы, помимо разрешений в управляемом устройстве HSM, требуется доступ к другим ресурсам. Чтобы иметь возможность развернуть виртуальные машины (или компонент "Веб-приложения" Службы приложений 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 создал группы безопасности для представления трех ролей: группы безопасности Contoso, Contoso App DevOps и аудиторов приложений Contoso. Администратор также добавил пользователей в группы, к которым они относятся.
- Все ресурсы находятся в группе ресурсов ContosoAppRG.
- Журналы управляемого устройства HSM хранятся в учетной записи хранения contosologstorage.
- Управляемый HSM ContosoMHSM и учетная запись хранения contosologstorage находятся в одном расположении Azure.
Назначение ролей уровня управления
Администратор подписки назначает Managed HSM Contributor
роль команде безопасности. Эта роль позволяет группе безопасности управлять существующими управляемыми устройствами HSM и создавать новые.
# This role assignment allows Contoso Security Team to create new Managed HSMs
az role assignment create --assignee-object-id $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --assignee-principal-type Group --role "Managed HSM Contributor"
Назначение ролей плоскости данных
Для управления существующими управляемыми HSM необходимо назначить роль "Администратор управляемого HSM" для команды безопасности.
# This role assignment allows Contoso Security Team to become administrator of existing managed HSM
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --scope / --role "Managed HSM Administrator"
Настройка ведения журнала и назначение дополнительных ролей
Группа безопасности настраивает ведение журнала и назначает роли аудиторам и приложению виртуальной машины:
# Enable logging
hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name contosologstorage --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 Contoso App Auditors group. It only allows them to read.
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso App Auditors' --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 ContosoMHSM --assignee $(az vm identity show --name "vmname" --resource-group "ContosoAppRG" --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 ContosoMHSM --role "Managed HSM Crypto Service Encryption User" --assignee $storage_account_principal
Рекомендации по рабочим средам
В этом руководстве демонстрируется упрощенный сценарий для иллюстрации реализации управления доступом.
Настройте разрешения на управляемый модуль HSM на основе конкретных требований. В этом примере предполагается, что команда безопасности предоставляет ссылки на ключи и секреты (URI и отпечатки) сотрудникам DevOps для использования в своих приложениях. Разработчикам и операторам не требуется прямой доступ к плоскости данных. Хотя в этом руководстве основное внимание уделяется защите управляемого устройства HSM, применяют аналогичные меры безопасности к другим ресурсам Azure, таким как виртуальные машины, учетные записи хранения и другие.
Дальнейшие действия
- Общие сведения о модели управления доступом управляемого устройства HSM см. в разделе "Управление доступом управляемого устройства HSM"
- Руководство по началу работы с администратором см. в разделе "Что такое управляемый HSM"?
- Дополнительные сведения об ведении журнала использования для ведения журнала управляемого HSM см. в разделе "Ведение журнала управляемого устройства HSM"
- Дополнительные сведения об управлении ролями в управляемом HSM см. в статье Об управляемом локальном RBAC управляемого устройства HSM
- Документация по Azure RBAC
- Azure RBAC: встроенные роли
- Управление контролем доступа на основе ролей Azure (Azure RBAC) с помощью Azure CLI