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


Предоставление доступа к ключам Key Vault, сертификатам и секретам с помощью управления доступом на основе ролей Azure

Замечание

поставщик ресурсов Key Vault поддерживает два типа ресурсов: vaults и управляемых HSMs. Контроль доступа, описанный в этой статье, относится только к хранилищам. Дополнительные сведения об управлении доступом к управляемым HSM см. в разделе Managed HSM access control.

Azure управление доступом на основе ролей (Azure RBAC) — это система авторизации, основанная на Azure Resource Manager которая обеспечивает централизованное управление доступом Azure ресурсов. Начиная с API версии 2026-02-01, Azure RBAC — это модель управления доступом по умолчанию для вновь созданных хранилищ ключей. Подробности об этом изменении и о том, как подготовиться, см. в разделе Подготовка к версии API Key Vault 2026-02-01 и более поздним версиям.

Azure RBAC позволяет пользователям управлять ключами, секретами и разрешениями сертификатов, а также предоставляет одно место для управления всеми разрешениями во всех хранилищах ключей.

Модель RBAC Azure позволяет пользователям задавать разрешения на различные уровни области: группу управления, подписку, группу ресурсов или отдельные ресурсы. Azure RBAC для хранилища ключей также позволяет пользователям иметь отдельные разрешения на отдельные ключи, секреты и сертификаты.

Дополнительные сведения см. в разделе Azure управление доступом на основе ролей (Azure RBAC).

Обзор модели доступа Key Vault

Доступ к хранилищу ключей осуществляется через два интерфейса: управляющая плоскость и плоскость данных.

Плоскость контрольная — это место, где вы управляете самим Key Vault. Операции в этой области включают создание и удаление хранилищ ключей Key Vault, получение свойств хранилища ключей и обновление политик доступа.

Плоскость данных — это место, где вы работаете с данными, хранящимися в хранилище ключей. Вы можете добавлять, удалять и изменять ключи, секреты и сертификаты.

Оба самолета используют Microsoft Entra ID для проверки подлинности. Для авторизации уровень управления использует Azure RBAC (управление доступом на основе ролей), а уровень данных использует устаревшую политику доступа Key Vault или Azure RBAC для операций уровня данных Key Vault.

Чтобы получить доступ к хранилищу ключей в любом контексте, все вызывающие (пользователи или приложения) должны иметь надлежащую проверку подлинности и авторизацию. Аутентификация устанавливает личность вызывающего. Авторизация определяет, какие операции может выполнять вызывающий объект.

Приложения получают доступ к плоскостям через конечные точки. Системы управления доступом для двух плоскостей работают независимо. Чтобы предоставить приложению доступ к использованию ключей в Хранилище ключей, вы предоставляете доступ к каналу данных с помощью Azure RBAC или политики доступа Key Vault. Чтобы предоставить пользователю доступ на чтение к свойствам и тегам Key Vault, но не к данным (ключам, секретам или сертификатам), предоставляется доступ к управляющей плоскости с помощью Azure RBAC.

конечные точки плоскости доступа

В следующей таблице показаны конечные точки для плоскостей управления и данных.

Плоскость доступа точки доступа Operations механизм управления доступом
Контрольная плоскость Международная контактная информация:
management.azure.com:443

Microsoft Azure, управляемый компанией 21Vianet:
management.chinacloudapi.cn:443

Azure US Government:
management.usgovcloudapi.net:443
Создание, чтение, обновление и удаление хранилищ ключей

Настройка политик доступа Key Vault

Установка тегов Key Vault
Azure RBAC
Плоскость данных Международная контактная информация:
<vault-name.vault.azure.net:443>

Microsoft Azure, управляемый компанией 21Vianet:
<vault-name.vault.azure.cn:443>

Azure US Government:
<vault-name.vault.usgovcloudapi.net:443>
Ключи: шифрование, расшифровка, wrapKey, unwrapKey, подпись, проверка, получение, список, создание, обновление, импорт, удаление, восстановление, восстановление системы, очистка, ротация, получитьПолитикуРотации, установитьПолитикуРотации, release

Сертификаты: управление контактами, получение издателей, перечисление издателей, назначение издателей, удаление издателей, управление издателями, получить, перечислить, создать, импортировать, обновить, удалить, восстановить, резервное копирование, восстановление, очистка

Секреты: get, list, set, delete, recover, backup, restore, purge
политика доступа Key Vault (устаревшая версия) или Azure RBAC

Управление административным доступом к Key Vault

При создании хранилища ключей в группе ресурсов вы управляете доступом с помощью Microsoft Entra ID. Вы предоставляете пользователям или группам возможность управлять хранилищами ключей в группе ресурсов. Вы можете предоставить доступ на определенном уровне области, назначив соответствующие Azure роли. Чтобы предоставить пользователю доступ к управлению хранилищами ключей, необходимо назначить предопределенную роль Key Vault Contributor пользователю в определенной области. Следующие уровни области действия можно назначить роли Azure:

  • Subscription: роль Azure, назначенная на уровне подписки, применяется ко всем группам ресурсов и ресурсам в этой подписке.
  • Resource group: роль Azure, назначенная на уровне группы ресурсов, применяется ко всем ресурсам в этой группе ресурсов.
  • Specific resource: роль Azure, назначенная конкретному ресурсу, применяется к данному ресурсу. В этом случае ресурс представляет собой конкретное хранилище ключей.

Существует несколько предопределенных ролей. Если заданные роли не соответствуют вашим потребностям, вы можете определить собственные. Дополнительные сведения см. в разделе Azure RBAC: встроенные роли.

Это важно

Если у пользователя есть Contributor права доступа к плоскости управления Key Vault, он может предоставить себе доступ к плоскости данных, задав политику доступа Key Vault. Вы должны строго контролировать, у кого есть доступ к ролям в хранилищах ключей. Убедитесь, что только авторизованные лица могут получить доступ и управлять вашими хранилищами ключей, ключами, секретами и сертификатами.

Рекомендации по назначению ролей для индивидуального использования ключей, секретов и сертификатов.

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

Назначение ролей для отдельных ключей, секретов и сертификатов не рекомендуется. Исключения включают сценарии, в которых:

  • Для отдельных секретов требуется отдельный доступ пользователей; Например, когда пользователи должны читать закрытый ключ SSH для проверки подлинности на виртуальной машине с помощью Бастион Azure.
  • Отдельные секреты должны совместно использоваться несколькими приложениями, например, когда одному приложению необходимо получить доступ к данным из другого приложения.

Дополнительные сведения о рекомендациях по управлению Azure Key Vault см. в следующем разделе:

Предустановленные роли Azure для рабочей плоскости Key Vault

Замечание

Роль Key Vault Contributor предназначена только для операций плоскости управления, чтобы управлять хранилищами ключей. Он не позволяет доступ к ключам, секретам и сертификатам.

Встроенная роль Описание Идентификатор
Администратор Key Vault Выполните все операции с плоскостью данных для хранилища ключей и всех его объектов, включая сертификаты, ключи и тайны. Невозможно управлять ресурсами ключевого хранилища или назначениями ролей. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. 00482a5a-887f-4fb3-b363-3b7fe8e74483
средство чтения Key Vault Чтение метаданных хранилищ ключей и их сертификатов, ключей и секретов. Не удается считывать конфиденциальные значения, такие как содержимое секрета или материал ключа. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. 21090545-7ca7-4776-b22c-e363652d74d2
Оператор очистки Key Vault Разрешает постоянное удаление обратимо удаленных хранилищ. a68e7c17-0ab2-4c09-9a58-125dae29748c
сотрудник по сертификатам Key Vault Выполните любое действие с сертификатами хранилища ключей, кроме управления разрешениями. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. a4417e6f-fecd-4de8-b567-7b0420556985
пользователь сертификата Key Vault Чтение всего содержимого сертификата, включая часть секрета и ключа. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. db79e9a7-68ee-4b58-9aeb-b90e7c24fcba
Сотрудник по шифрованию Key Vault Выполните любое действие для ключей key vault, за исключением управления разрешениями. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. 14b46e9e-c2b7-41b4-b07b-48a6ebf60603
пользователь службы шифрования Key Vault Crypto Service Чтение метаданных ключей и выполнение операций обертки/распаковки. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. e147488a-f6f5-4113-8e2d-b22465e65bf6
пользователь шифрования Key Vault Выполнение криптографических операций с помощью ключей. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. 12338af0-0e69-4776-bea7-57ae8d297424
пользователь релиза службы Key Vault Crypto Ключи выпуска для Azure Confidential Computing или аналогичных сред. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'.
сотрудник по секретам Key Vault Выполните любое действие с секретами хранилища ключей, кроме управления разрешениями. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. b86a8fe4-44ce-4948-aee5-eccb2c155cd7
Пользователь секретов Key Vault Чтение секретного содержимого, включая секретную часть сертификата с закрытым ключом. Работает только для хранилищ ключей, которые используют модель разрешений 'ролевое управление доступом Azure'. 4633458b-17de-408a-b874-0445c86b69e6

Дополнительные сведения о встроенных определениях ролей Azure см. в разделе Azure встроенные роли.

Управление назначениями встроенных ролей плоскости управления данными Key Vault

Встроенная роль Описание Идентификатор
Администратор доступа к данным Key Vault Управляйте доступом к Azure Key Vault путем добавления или удаления назначений ролей администратора Key Vault, офицера сертификатов Key Vault, офицера криптографии Key Vault, пользователя криптографии Key Vault, читателя Key Vault, офицера секретов Key Vault или пользователя секретов Key Vault. Включает условие ABAC для ограничения назначений ролей. 8b54135c-b56d-4d72-a534-26097cfdc8d8

Использование прав доступа Azure RBAC для секретов, ключей и сертификатов в Key Vault

Новая модель разрешений Azure RBAC для хранилища ключей предоставляет альтернативу модели разрешений политики доступа к хранилищу.

Предпосылки

У вас должна быть Azure подписка. Если вы этого не сделали, вы можете создать учетную запись free перед началом работы.

Для управления назначениями ролей необходимо иметь разрешения Майкрософт.Authorization/roleAssignments/write и Майкрософт.Authorization/roleAssignments/delete, такие как Key Vault Data Access Administrator (с ограниченными разрешениями только для назначения или удаления определенных ролей Key Vault), User Access Administrator, или Owner.

Включение разрешений Azure RBAC для Key Vault

Замечание

Для изменения модели разрешений требуется неограниченное разрешение 'Майкрософт.Authorization/roleAssignments/write', которое входит в роли Owner и Администратор доступа пользователей. Роли администратора классической подписки, такие как "Администратор службы" и "Соадминистратор", или ограниченные "администратор доступа к данным Key Vault", нельзя использовать для изменения модели разрешений.

  1. Включите разрешения Azure RBAC в новом хранилище ключей:

    Включить полномочия Azure RBAC — новое хранилище

  2. Включите разрешения RBAC Azure в существующем хранилище ключей:

    Включить разрешения Azure RBAC в существующем хранилище

Это важно

Настройка модели разрешений Azure RBAC аннулирует все разрешения политик доступа. Это может привести к сбоям, если эквивалентные роли Azure не назначены.

Назначить роль

Замечание

Рекомендуется использовать уникальный идентификатор роли вместо имени роли в скриптах. Таким образом, если роль переименована, скрипты будут продолжать работать. В этом документе имя роли используется, чтобы повысить удобочитаемость.

Чтобы создать назначение роли с помощью Azure CLI, используйте команду az role assignment:

az role assignment create --role <role-name> --assignee <user-principal-name>> --scope <scope>

Полные сведения см. в разделе Назначение ролей Azure с помощью Azure CLI.

Назначение ролей в области группы ресурсов

az role assignment create --role "Key Vault Reader" --assignee <user-principal-name> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>

Полные сведения см. в разделе Назначение ролей Azure с помощью Azure CLI.

Вышеуказанное назначение ролей предоставляет возможность перечислять объекты в хранилище ключей.

назначение ролей в области Key Vault

az role assignment create --role "Key Vault Secrets Officer" --assignee <user-principal-name> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name>

Полные сведения см. в разделе Назначение ролей Azure с помощью Azure CLI.

Назначение ролей в области секретных данных

Замечание

Секреты хранилища ключей, сертификаты, назначения ролей в области ключей следует использовать только для ограниченных сценариев, описанных в Лучшие практики для отдельных ключей, секретов и назначений ролей сертификатов для соблюдения политики безопасности.

az role assignment create --role "Key Vault Secrets Officer" --assignee <user-principal-name> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name>/secrets/RBACSecret

Полные сведения см. в разделе Назначение ролей Azure с помощью Azure CLI.

Тестирование и проверка

Замечание

Браузеры используют кэширование и обновление страницы требуется после удаления назначений ролей. Пожалуйста, подождите несколько минут для обновления назначений ролей.

  1. Проверьте возможность добавления нового секрета без роли "Key Vault Secrets Officer" на уровне Key Vault.

    1. Перейдите на вкладку Key Vault Управление доступом (IAM) и удалите назначение роли "Офицер по секретам Key Vault" для этого ресурса.

      Удалить назначение — key vault

    2. Перейдите к ранее созданному секрету. Вы можете увидеть все скрытые свойства.

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

    3. Создание нового секрета (секреты > +Создание и импорт) должно отобразить эту ошибку:

      Создание нового секрета

  2. Проверьте редактирование секрета без роли "Key Vault Secret Officer" на уровне ключей.

    1. Перейдите на ранее созданную вкладку контроль доступа (IAM) и удалите назначение роли "Офицер секретов Key Vault" для этого ресурса.

    2. Перейдите к ранее созданному секрету. Вы можете увидеть скрытые свойства.

      Секретный просмотр без доступа

  3. Проверить чтение секретов без роли читателя на уровне хранилища ключей.

    1. Перейдите на вкладку управления доступом группы ресурсов key vault (IAM) и удалите назначение роли "Читатель ключевого хранилища".

    2. Перейдя на вкладку "Секреты" хранилища ключей, должна появиться эта ошибка:

      Вкладка секрета — ошибка

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

команда создания определения роли az

az role definition create --role-definition '{ \
    "Name": "Backup Keys Operator", \
    "Description": "Perform key backup/restore operations", \
    "Actions": [], \
    "DataActions": [ \
        "Microsoft.KeyVault/vaults/keys/read ", \
        "Microsoft.KeyVault/vaults/keys/backup/action", \
        "Microsoft.KeyVault/vaults/keys/restore/action" \
    ], \
    "NotDataActions": [], \
    "AssignableScopes": ["/subscriptions/{subscriptionId}"] \
}'

Дополнительные сведения о создании пользовательских ролей см. в следующем разделе:

Azure настраиваемые роли

Используйте ИИ для создания назначений ролей в Key Vault

GitHub Copilot поможет вам создать правильные Azure CLI или команды PowerShell для назначений ролей Key Vault на основе конкретных требований.

I need to set up Azure RBAC for my Key Vault. Help me create the role assignment commands for the following scenario:
- Key vault name: my-app-keyvault
- Resource group: my-app-rg
- Subscription ID: <subscription-id>
- I need to grant a managed identity (client ID: <managed-identity-client-id>) the ability to read and write secrets, but not manage keys or certificates.
Provide both Azure CLI and PowerShell commands, and explain which built-in role is most appropriate for this least-privilege scenario.

GitHub Copilot работает на ИИ, поэтому возможны как неожиданные результаты, так и ошибки. Дополнительные сведения см. в разделе Copilot часто задаваемые вопросы.

Часто задаваемые вопросы

Можно ли использовать назначения RBAC на уровне объекта в Azure для того, чтобы обеспечить изоляцию команд разработчиков приложений в Key Vault?

Нет. Azure модель разрешений RBAC позволяет назначать доступ к отдельным объектам в Key Vault пользователю или приложению, но для любых административных операций, таких как управление доступом к сети, мониторинг и управление объектами, требуются разрешения уровня хранилища, которые затем предоставляют безопасные сведения операторам в командах приложений.

Подробнее