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

Примечание.

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

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

В этой статье описывается, как управлять ролями для плоскости данных Управляемого устройства HSM. Дополнительные сведения о модели контроля доступа к Управляемому устройству HSM см. здесь.

Чтобы субъект безопасности (будь то пользователь, субъект-служба, группа или управляемое удостоверение) мог выполнять операции плоскости данных на управляемом устройстве 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 автоматически. Screenshot that shows an example of Try It for Azure Cloud Shell.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Button to launch Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Чтобы использовать 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, чтобы назначить роль пользователя Managed HSM Crypto пользователю, идентифицируемому по имени участника-пользователя user2@contoso.com, для всех ключей (область /keys) в ContosoHSM.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com  --scope /keys

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

Используйте команду az keyvault role assignment create, чтобы назначить роль пользователя Managed HSM Crypto пользователю, идентифицируемому по имени участника-пользователя user2@contoso.com для определенного ключа с именем myrsakey.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com  --scope /keys/myrsakey

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

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

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

az keyvault role assignment list --hsm-name ContosoMHSM

Все назначения ролей на уровне HSM для конкретного пользователя user1@contoso.com.

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user@contoso.com

Примечание.

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

Все назначения ролей для конкретного пользователя user2@contoso.com для конкретного ключа myrsakey.

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey

Конкретное назначение роли Managed HSM Crypto Officer (Специалист по криптографии для Управляемого устройства HSM) для конкретного пользователя user2@contoso.com для конкретного ключа myrsakey.

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey --role "Managed HSM Crypto Officer"

Удаление назначения ролей

Команда az keyvault role assignment delete позволяет удалить роль Managed HSM Crypto Officer (Специалист по криптографии для Управляемого устройства HSM), назначенную пользователю user2@contoso.com для ключа myrsakey2.

az keyvault role assignment delete --hsm-name ContosoMHSM --role "Managed HSM Crypto Officer" --assignee user2@contoso.com  --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": []
        }'

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

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

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

Примечание.

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

Следующие шаги