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


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

Замечание

Поставщик ресурсов Key Vault поддерживает два типа ресурсов: хранилища и управляемые HSM. Управление доступом, описанное в этой статье, применяется только к хранилищам. Дополнительные сведения об управлении доступом для управляемого устройства HSM см. в статье Управляемое управление доступом HSM.

Управление доступом на основе ролей Azure (Azure RBAC) — это система авторизации, основанная на Azure Resource Manager , которая обеспечивает централизованное управление доступом ресурсов Azure.

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

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

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

Общие сведения о модели доступа к Key Vault

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

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

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

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

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

Приложения получают доступ к плоскостям через конечные точки. Элементы управления доступом для двух плоскостей работают независимо. Чтобы предоставить приложению доступ к использованию ключей в Key Vault (хранилище ключей), необходимо предоставить доступ на уровне данных с помощью Azure RBAC или политики доступа в Key Vault. Чтобы предоставить пользователю доступ на чтение к свойствам и тегам 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. Вы предоставляете пользователям или группам возможность управлять хранилищами ключей в группе ресурсов. Вы можете предоставить доступ на определенном уровне области, назначив соответствующие роли Azure. Чтобы предоставить пользователю доступ к управлению хранилищами ключей, ему необходимо назначить предопределенную роль Key Vault Contributor в определенной области. Следующие уровни областей ответственности можно назначить роли Azure:

  • Подписка: роль Azure, назначенная на уровне подписки, применяется ко всем группам ресурсов и ресурсам в рамках данной подписки.
  • Группа ресурсов: роль Azure, назначенная на уровне группы ресурсов, применяется ко всем ресурсам в этой группе ресурсов.
  • Определенный ресурс: роль Azure, назначенная для определенного ресурса, применяется к данному ресурсу. В этом случае ресурс является определенным хранилищем ключей.

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

Это важно

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

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

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

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

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

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

Встроенные роли Azure для операций в плоскости данных Key Vault

Замечание

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

Встроенная роль Описание Идентификатор
Администратор хранилища ключей Выполните все операции на плоскости данных в хранилище ключей и со всеми объектами в нем, включая сертификаты, ключи и секреты. Не удается управлять ресурсами хранилища ключей или управлять назначениями ролей. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». 00482a5a-887f-4fb3-b363-3b7fe8e74483
Читатель Key Vault Чтение метаданных хранилищ ключей и их сертификатов, ключей и секретов. Не удается считывать конфиденциальные значения, такие как содержимое секрета или материал ключа. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». 21090545-7ca7-4776-b22c-e363652d74d2
Оператор очистки Key Vault Разрешает постоянное удаление обратимо удаленных хранилищ. a68e7c17-0ab2-4c09-9a58-125dae29748c
Сотрудник по сертификатам Key Vault Выполните любое действие для сертификатов хранилища ключей, за исключением управления разрешениями. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». a4417e6f-fecd-4de8-b567-7b0420556985
Пользователь сертификата Key Vault Чтение всего содержимого сертификата, включая часть секрета и ключа. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». db79e9a7-68ee-4b58-9aeb-b90e7c24fcba
Сотрудник по шифрованию Key Vault Выполните любое действие с ключами хранилища ключей, кроме управления правами доступа. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». 14b46e9e-c2b7-41b4-b07b-48a6ebf60603
Пользователь шифрования криптографического сервиса Key Vault Чтение метаданных ключей и выполнение операций обертки/распаковки. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». e147488a-f6f5-4113-8e2d-b22465e65bf6
Пользователь шифрования Key Vault Выполнение криптографических операций с помощью ключей. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». 12338af0-0e69-4776-bea7-57ae8d297424
Пользователь, отвечающий за выпуск криптографической службы Key Vault Ключи выпуска для конфиденциальных вычислений Azure и эквивалентных сред. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control».
Офицер по управлению секретами Key Vault Выполните любое действие по секретам хранилища ключей, кроме управления разрешениями. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». b86a8fe4-44ce-4948-aee5-eccb2c155cd7
Пользователь секретов Хранилища ключей Чтение секретного содержимого, включая секретную часть сертификата с закрытым ключом. Работает только для хранилищ ключей, использующих модель разрешений «Azure role-based access control». 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

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

Предпосылки

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

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

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

Замечание

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

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

    Включение разрешений 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 [email protected]} --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 [email protected]} --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" для этого ресурса.

      Удалить назначение — хранилище ключей

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

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

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

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

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

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

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

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

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

    1. Перейдите на вкладку "Управление доступом (IAM)" группы ресурсов Key Vault и удалите назначение роли "Читатель Key Vault".

    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.

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

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

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

Подробнее