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


Управление ролями в системе "Управляемое устройство 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 и операций, которые они позволяют выполнять, см. здесь.

Предпосылки

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

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. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку 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 с помощью CLI, введите следующее:

az login

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

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

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

Используйте команду az keyvault role assignment create, чтобы назначить пользователю, идентифицированному по основному имени пользователя [email protected], роль Managed HSM Crypto User для всех ключей (область /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 пользователю, идентифицируемому по имени участника-пользователя [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

Конкретное назначение роли Managed HSM Crypto Officer (Специалист по криптографии для Управляемого устройства 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 позволяет удалить роль Managed HSM Crypto Officer (Специалист по криптографии для Управляемого устройства 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.js, содержащего строку 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": []
        }'

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

Для удаления пользовательского определения роли с помощью имени (GUID) используйте команду Azure CLI az keyvault role definition delete.

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

Примечание.

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

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