В этой статье приведены практические инструкции по управлению ролями и назначениями ролей для управляемого устройства HSM. Она реализует модель управления доступом на основе ролей, описанную в разделе "Управление доступом для управляемого устройства HSM ", используя встроенные роли, описанные в встроенных ролях локального RBAC для управляемого устройства HSM.
Общие сведения об управляемом HSM см. в статье Что такое управляемое устройство HSM? Если у вас нет подписки Azure, создайте учетную запись бесплатную перед началом работы.
Чтобы разрешить субъекту безопасности (например, пользователю, субъекту-службе, группе или управляемому удостоверению) выполнять управляемые операции уровня данных HSM, назначьте им роль, которая разрешает эти операции. Например, если вы хотите разрешить приложению выполнять операцию подписи с помощью ключа, назначьте ей роль, содержащую Microsoft.KeyVault/managedHSM/keys/sign/action в качестве одного из действий с данными. Назначьте роль в определенной области. Локальная RBAC для управляемых HSM поддерживает два уровня: для всего HSM (/ или /keys) и для каждого ключа (/keys/<key-name>).
Список всех встроенных ролей управляемого устройства HSM и разрешенных операций см. в разделе "Встроенные роли управляемого устройства HSM".
Предпосылки
Требуется Azure подписка. Если у вас еще нет аккаунта, создайте бесплатную учетную запись, прежде чем начать.
Кроме того, вам понадобится следующее:
Создание нового назначения роли
В портале Azure перейдите к ресурсу управляемого HSM.
В меню слева в разделе Настройкивыберите Локальный RBAC.
Выберите "Добавить назначение ролей", выберите роль, область и субъект, а затем сохраните ее.
Назначьте роли для всех ключей
Используйте az keyvault role assignment create команду, чтобы назначить роль управляемого пользователя шифрования HSM пользователю, определяемую именем <user-principal-name> субъекта-пользователя для всех ключей (области /keys) в разделе <hsm-name>.
az keyvault role assignment create --hsm-name <hsm-name> --role "Managed HSM Crypto User" --assignee <user-principal-name> --scope /keys
Назначение роли для конкретного ключа
Используйте команду az keyvault role assignment create, чтобы назначить пользователю, определяемому основным именем пользователя , роль <user-principal-name> для определенного ключа <key-name>.
az keyvault role assignment create --hsm-name <hsm-name> --role "Managed HSM Crypto User" --assignee <user-principal-name> --scope /keys/<key-name>
Назначьте роли для всех ключей
Используйте командлет New-AzKeyVaultRoleAssignment, чтобы назначить пользователю роль Managed HSM Crypto User для всех ключей (во всех областях /keys).
New-AzKeyVaultRoleAssignment -HsmName <hsm-name> -RoleDefinitionName "Managed HSM Crypto User" -SignInName <user-principal-name> -Scope /keys
Назначение роли для конкретного ключа
New-AzKeyVaultRoleAssignment -HsmName <hsm-name> -RoleDefinitionName "Managed HSM Crypto User" -SignInName <user-principal-name> -Scope /keys/<key-name>
Перечисление существующих назначений ролей
На портале Azure откройте управляемый модуль безопасности (HSM).
В меню слева в разделе Настройкивыберите Локальный RBAC.
На портале отображаются все назначения ролей для Managed HSM. Вы можете фильтровать по субъекту или области.
Все назначения ролей в области (это вариант по умолчанию, если не указан аргумент --scope) для всех пользователей (вариант по умолчанию, если не указан аргумент --assignee)
az keyvault role assignment list --hsm-name <hsm-name>
Все назначения ролей на уровне HSM для конкретного пользователя <user-principal-name>.
az keyvault role assignment list --hsm-name <hsm-name> --assignee <user-principal-name>
Примечание.
Если для области указан символ / (или /keys), команда list перечисляет все назначения ролей на верхнем уровне и не выводит назначения ролей на уровне отдельных ключей.
Все назначения ролей для конкретного пользователя <user-principal-name> для определенного ключа <key-name>.
az keyvault role assignment list --hsm-name <hsm-name> --assignee <user-principal-name> --scope /keys/<key-name>
Назначение определенной роли для сотрудника по шифрованию управляемого устройства HSM для конкретного пользователя <user-principal-name> для определенного ключа <key-name>
az keyvault role assignment list --hsm-name <hsm-name> --assignee <user-principal-name> --scope /keys/<key-name> --role "Managed HSM Crypto Officer"
Перечислите все назначения ролей для Managed HSM.
Get-AzKeyVaultRoleAssignment -HsmName <hsm-name>
Список всех назначений ролей для конкретного пользователя:
Get-AzKeyVaultRoleAssignment -HsmName <hsm-name> -SignInName <user-principal-name>
Вывод списка назначений ролей для конкретного пользователя в конкретной ключевой области.
Get-AzKeyVaultRoleAssignment -HsmName <hsm-name> -SignInName <user-principal-name> -Scope /keys/<key-name>
Удалить назначение роли
На портале Azure перейдите к ресурсу управляемой службы HSM.
В меню слева в разделе Настройкивыберите Локальный RBAC.
Найдите назначение роли, которое нужно удалить.
Щелкните значок удаления (корзина) рядом с заданием.
Подтвердите удаление при появлении запроса.
Используйте az keyvault role assignment delete команду, чтобы удалить роль директора по шифрованию управляемого устройства HSM , назначенную пользователю <user-principal-name> для ключа <key-name>.
az keyvault role assignment delete --hsm-name <hsm-name> --role "Managed HSM Crypto Officer" --assignee <user-principal-name> --scope /keys/<key-name>
Remove-AzKeyVaultRoleAssignment Используйте командлет для удаления назначения роли:
Remove-AzKeyVaultRoleAssignment -HsmName <hsm-name> -RoleDefinitionName "Managed HSM Crypto Officer" -SignInName <user-principal-name> -Scope /keys/<key-name>
Список всех доступных определений ролей
На портале Azure перейдите к ресурсу управляемого HSM.
В меню слева в разделе Настройкивыберите Локальный RBAC.
Перейдите на вкладку "Роли ", чтобы просмотреть все доступные встроенные и настраиваемые определения ролей.
Команда az keyvault role definition list возвращает список всех определений ролей.
az keyvault role definition list --hsm-name <hsm-name>
Чтобы перечислить все определения ролей, используйте командлет Get-AzKeyVaultRoleDefinition.
Get-AzKeyVaultRoleDefinition -HsmName <hsm-name>
Создание новой роли
Примечание.
Пользовательские определения ролей можно управлять только с помощью Azure CLI или Azure PowerShell.
Управляемый модуль HSM имеет несколько встроенных (заранее определенных) ролей, которые могут быть полезны в наиболее распространенных сценариях использования. Вы можете определить собственную роль с помощью списка конкретных действий, которые может выполнять роль. Затем эту роль можно назначить основным пользователям, чтобы предоставить им разрешение на назначенные действия.
Создание пользовательской роли в настоящее время недоступно на портале Azure. Используйте Azure CLI или Azure PowerShell.
Используйте az keyvault role definition create команду для роли с именем "Моя настраиваемая роль " с помощью строки JSON.
az keyvault role definition create --hsm-name <hsm-name> --role-definition '{
"roleName": "My Custom Role",
"description": "The description of the custom rule.",
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.KeyVault/managedHsm/keys/read/action"
],
"notDataActions": []
}'
Используйте az keyvault role definition create команду для роли из файла с именем my-custom-role-definition.json , содержащей строку JSON для определения роли. пример выше.
az keyvault role definition create --hsm-name <hsm-name> --role-definition @my-custom-role-definition.json
Используйте командлет New-AzKeyVaultRoleDefinition для создания настраиваемой роли из файла JSON.
New-AzKeyVaultRoleDefinition -HsmName <hsm-name> -InputFile ./my-custom-role-definition.json
Отображение сведений об определении роли
Просмотр сведений о определении настраиваемых ролей в настоящее время недоступен на портале Azure. Используйте Azure CLI или Azure PowerShell.
Используйте команду az keyvault role definition show для просмотра сведений об определении конкретной роли с помощью имени (GUID).
az keyvault role definition show --hsm-name <hsm-name> --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Используйте командлет Get-AzKeyVaultRoleDefinition для просмотра определений ролей. Чтобы просмотреть определенную пользовательскую роль по имени:
Get-AzKeyVaultRoleDefinition -HsmName <hsm-name> -RoleDefinitionName "My Custom Role"
Обновление определения пользовательской роли
Обновление определений пользовательских ролей в настоящее время недоступно на портале Azure. Используйте Azure CLI или Azure PowerShell.
Используйте az keyvault role definition update команду для обновления роли с именем "Моя настраиваемая роль " с помощью строки JSON.
az keyvault role definition create --hsm-name <hsm-name> --role-definition '{
"roleName": "My Custom Role",
"name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-
xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "The description of the custom rule.",
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.KeyVault/managedHsm/keys/read/action",
"Microsoft.KeyVault/managedHsm/keys/write/action",
"Microsoft.KeyVault/managedHsm/keys/backup/action",
"Microsoft.KeyVault/managedHsm/keys/create"
],
"notDataActions": []
}'
Чтобы обновить пользовательскую роль, измените объект роли и повторно создайте его:
$role = Get-AzKeyVaultRoleDefinition -HsmName <hsm-name> -RoleDefinitionName "My Custom Role"
$role.Permissions[0].DataActions = @("Microsoft.KeyVault/managedHsm/keys/read/action", "Microsoft.KeyVault/managedHsm/keys/write/action", "Microsoft.KeyVault/managedHsm/keys/backup/action", "Microsoft.KeyVault/managedHsm/keys/create")
New-AzKeyVaultRoleDefinition -HsmName <hsm-name> -Role $role
Удалить определение пользовательской роли
Удаление определений пользовательских ролей в настоящее время недоступно на портале Azure. Используйте Azure CLI или Azure PowerShell.
Используйте команду Azure CLI az keyvault role definition delete, чтобы удалить определение пользовательской роли с помощью имени (GUID).
az keyvault role definition delete --hsm-name <hsm-name> --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Используйте командлет Remove-AzKeyVaultRoleDefinition для удаления определения пользовательской роли.
Remove-AzKeyVaultRoleDefinition -HsmName <hsm-name> -RoleName "My Custom Role"
Примечание.
Встроенные роли невозможно удалить. Если удалить пользовательские роли, все назначения ролей, использующие эту пользовательскую роль, станут недействительными.
Дальнейшие действия