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

Примечание.

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

Примечание.

Конфигурация сертификата Службы приложений Azure на портале Azure не поддерживает модель разрешений RBAC Key Vault. Вы можете использовать развертывания шаблонов Azure PowerShell, Azure CLI, ARM с назначением роли пользователя сертификата Key Vault для Служба приложений глобального удостоверения, например службы Microsoft приложение Azure в общедоступном облаке.

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

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

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

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

Рекомендации по отдельным ключам, секретам и сертификатами назначению ролей

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

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

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

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

Примечание.

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

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

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

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

Встроенная роль Description Идентификатор
Администратор доступа к данным 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. Если ее еще нет, создайте бесплатную учетную запись, прежде чем начинать работу.

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

Включение разрешений 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 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. Подтвердите добавление нового секрета без роли "Специалист по секретам хранилища ключей" на уровне хранилища ключей.

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

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

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

      Представление секрета с доступом

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

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

  2. Подтвердите изменение секрета без роли "Специалист по секретам хранилища ключей" на уровне секрета.

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

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

      Представление секрета без доступа

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

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

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

      Вкладка

Создание настраиваемых ролей

Команда az role definition create

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

Вопросы и ответы

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

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

Подробнее