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


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

Замечание

поставщик ресурсов Key Vault поддерживает два типа ресурсов: хранилища и управляемых аппаратных модулей безопасности (HSM). Контроль доступа, описанный в этой статье, относится только к хранилищам. Дополнительные сведения об управлении доступом к управляемым 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 для key vault также позволяет пользователям иметь отдельные разрешения на отдельные ключи, секреты и сертификаты.

Для получения дополнительной информации см. контроль доступа на основе ролей в Azure (Azure RBAC).

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

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

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

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

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

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

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

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

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

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

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

Azure для правительства США:
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 для правительства США:
<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. Вы должны строго контролировать, у кого есть доступ к ролям в хранилищах ключей. Убедитесь, что только авторизованные лица могут получить доступ и управлять вашими хранилищами ключей, ключами, секретами и сертификатами.

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

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

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

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

Дополнительные сведения о рекомендациях по управлению 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 Чтение метаданных ключей и выполнение операций обертки/распаковки. Работает только для хранилищ ключей, использующих модель разрешений на основе ролей в Azure. e147488a-f6f5-4113-8e2d-b22465e65bf6
пользователь шифрования Key Vault Выполнение криптографических операций с помощью ключей. Работает только для хранилищ ключей, использующих модель разрешений на основе ролей в Azure. 12338af0-0e69-4776-bea7-57ae8d297424
пользователь выпуска службы шифрования Key Vault Ключи для выпуска для 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 или пользователя секретов Key Vault. Включает условие ABAC для ограничения назначений ролей. 8b54135c-b56d-4d72-a534-26097cfdc8d8

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

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

Предпосылки

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

Для управления назначениями ролей необходимо иметь разрешения Microsoft.Authorization/roleAssignments/write и Microsoft.Authorization/roleAssignments/delete. Например, Администратор доступа к данным Key Vault (с ограниченными разрешениями только для назначения и удаления определенных ролей Key Vault), Администратор доступа пользователя или владелец.

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

Замечание

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

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

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

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

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

Это важно

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

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

Замечание

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

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

az role assignment create --role {role-name-or-id} --assignee {assignee-upn}> --scope {scope}

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

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

az role assignment create --role "Key Vault Reader" --assignee {i.e user@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}

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

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

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

az role assignment create --role "Key Vault Secrets Officer" --assignee {assignee-upn} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}

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

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

Замечание

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

az role assignment create --role "Key Vault Secrets Officer" --assignee {i.e user@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}/secrets/RBACSecret

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

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

Замечание

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

  1. Проверьте добавление нового секрета без роли "Офицер секретов Key Vault" на уровне хранилища ключей.

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

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

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

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

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

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

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

    1. Перейдите на предварительно созданную вкладку Access Control (IAM) и удалите назначение роли Key Vault Secrets Officer для этого ресурса.

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

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

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

    1. Перейдите на вкладку группового ресурса хранилища ключей "Управление доступом (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: <my-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?

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

Подробнее