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


Управление ролями в системе "Управляемое устройство HSM"

Примечание.

Key Vault поддерживает два типа ресурсов: хранилища и управляемые устройства HSM. Эта статья посвящена управляемому HSM. Если вы хотите узнать, как управлять хранилищем, см. статью "Управление Key Vault" с помощью Azure CLI.

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

Общие сведения об управляемом HSM см. в разделе "Что такое управляемый HSM?". Если у вас нет подписки Azure, создайте бесплатную учетную запись перед началом работы.

Чтобы субъект безопасности (будь то пользователь, субъект-служба, группа или управляемое удостоверение) мог выполнять операции в плоскости данных управляемого HSM, ему должна быть назначена роль с разрешениями на выполнение этих операций. Например, если вы хотите позволить приложению выполнять операцию подписывания с использованием ключа, ему должна быть назначена роль, которая содержит "Microsoft.KeyVault/managedHSM/keys/sign/action" в качестве одного из действий с данными. Роль назначается в определенной области действия. Локальная RBAC для управляемых HSM поддерживает два уровня: для всего HSM (/ или /keys) и для каждого ключа (/keys/<keyname>).

Список всех встроенных ролей управляемого устройства HSM и разрешенных операций см. в разделе "Встроенные роли управляемого устройства HSM".

Предпосылки

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

Azure Cloud Shell

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

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

Вариант Пример/ссылка
Выберите "Попробовать" в правом верхнем углу кода или блока команд. При нажатии кнопки "Попробовать" код или команда не копируются в Cloud Shell. Снимок экрана, показывающий пример функции «Попробуйте сами» для Azure Cloud Shell.
https://shell.azure.comПерейдите к разделу или нажмите кнопку "Запустить Cloud Shell", чтобы открыть Cloud Shell в браузере. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу на портале Azure. Снимок экрана: кнопка Cloud Shell на портале Azure

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

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

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

  3. Вставьте код или команду в сеанс Cloud Shell, нажав клавиши CTRL+SHIFTV в Windows и Linux или выбрав CMD+SHIFT++V в macOS.

  4. Нажмите клавишу ввода, чтобы запустить код или команду.

Вход в Azure

Чтобы войти в Azure с помощью CLI, введите следующее:

az login

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

Создание нового назначения роли

Назначьте роли для всех ключей

Используйте az keyvault role assignment create команду, чтобы назначить роль управляемого пользователя шифрования HSM пользователю, определяемую именем [email protected] участника-пользователя для всех ключей (области /keys) в ContosoHSM.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee [email protected]  --scope /keys

Назначение роли для конкретного ключа

Используйте az keyvault role assignment create команду, чтобы назначить пользователю роль Managed HSM Crypto User, определенную именем субъекта-пользователя [email protected], для конкретного ключа с именем myrsakey.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee [email protected]  --scope /keys/myrsakey

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

Используйте az keyvault role assignment list, чтобы перечислить назначения ролей.

Все назначения ролей в области (это вариант по умолчанию, если не указан аргумент --scope) для всех пользователей (вариант по умолчанию, если не указан аргумент --assignee)

az keyvault role assignment list --hsm-name ContosoMHSM

Все назначения ролей на уровне HSM для конкретного пользователя [email protected].

az keyvault role assignment list --hsm-name ContosoMHSM --assignee [email protected]

Примечание.

Если для области указан символ / (или /keys), команда list перечисляет все назначения ролей на верхнем уровне и не выводит назначения ролей на уровне отдельных ключей.

Все назначения ролей для конкретного пользователя [email protected] для определенного ключа myrsakey.

az keyvault role assignment list --hsm-name ContosoMHSM --assignee [email protected] --scope /keys/myrsakey

Назначение определенной роли Крипто-офицера управляемого HSM для конкретного пользователя [email protected] для определенного ключа myrsakey

az keyvault role assignment list --hsm-name ContosoMHSM --assignee [email protected] --scope /keys/myrsakey --role "Managed HSM Crypto Officer"

Удалить назначение роли

Используйте az keyvault role assignment delete команду, чтобы удалить роль Крипто-офицера управляемого HSM, назначенную пользователю [email protected] для ключа myrsakey2.

az keyvault role assignment delete --hsm-name ContosoMHSM --role "Managed HSM Crypto Officer" --assignee [email protected]  --scope /keys/myrsakey2

Список всех доступных определений ролей

Команда az keyvault role definition list возвращает список всех определений ролей.

az keyvault role definition list --hsm-name ContosoMHSM

Создание новой роли

Управляемый модуль HSM имеет несколько встроенных (заранее определенных) ролей, которые могут быть полезны в наиболее распространенных сценариях использования. Вы можете определить собственную роль с помощью списка конкретных действий, которые может выполнять роль. Затем эту роль можно назначить основным пользователям, чтобы предоставить им разрешение на назначенные действия.

Используйте az keyvault role definition create команду для роли с именем "Моя настраиваемая роль " с помощью строки JSON.

az keyvault role definition create --hsm-name ContosoMHSM --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 ContosoMHSM --role-definition @my-custom-role-definition.json

Отображение сведений об определении роли

Используйте команду az keyvault role definition show для просмотра сведений об определении конкретной роли с помощью имени (GUID).

az keyvault role definition show --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

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

Используйте az keyvault role definition update команду для обновления роли с именем "Моя настраиваемая роль " с помощью строки JSON.

az keyvault role definition create --hsm-name ContosoMHSM --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": []
        }'

Удалить определение пользовательской роли

Используйте команду Azure CLI az keyvault role definition delete, чтобы удалить пользовательское определение роли по имени (GUID).

az keyvault role definition delete --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Примечание.

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

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