Перемещение Azure Key Vault в другую подписку

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Обзор

Важно!

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

Azure Key Vault автоматически привязан к идентификатору клиента Microsoft Entra ID по умолчанию для подписки, в которой она создана. Идентификатор клиента, связанный с подпиской, можно найти, выполнив указания, приведенные в этом руководстве. К этому идентификатору клиента также привязываются все записи политики доступа и назначения ролей. При перемещении подписки Azure из клиента A в клиент Б существующие хранилища ключей в клиенте Б станут недоступны для субъектов-служб (пользователей и приложений). Чтобы устранить эту проблему, сделайте следующее:

Примечание.

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

  • Измените идентификатор клиента, связанный со всеми существующими хранилищами ключей в этой подписке, для клиента Б.
  • Удалите все существующие записи политики доступа.
  • Добавьте новые записи политики доступа, связанные с клиентом Б.

Дополнительные сведения об Azure Key Vault и идентификаторе Microsoft Entra см. в статье

Ограничения

Важно!

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

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

Необходимые компоненты

Вы можете проверка существующие роли с помощью портал Azure, PowerShell, Azure CLI или REST API.

Перемещение хранилища ключей в новую подписку

  1. Войдите на портал Azure.
  2. Перейдите в хранилище ключей
  3. Выберите на вкладке "Обзор"
  4. Нажмите кнопку "Переместить"
  5. Выберите пункт "Переместить в другую подписку" в раскрывающемся списке параметров
  6. Выберите группу ресурсов, в которую необходимо переместить хранилище ключей
  7. Подтвердите предупреждения о перемещении ресурсов
  8. Нажмите кнопку ОК.

Дополнительные действия при перемещении подписки в новый клиент

Если вы переместили подписку, содержащую хранилище ключей, в новый клиент, необходимо вручную обновить идентификатор клиента и удалить старые политики доступа и назначения ролей. Ниже приведены руководства, которые содержат шаги для выполнения этих действий в PowerShell и Azure CLI. Если вы используете PowerShell, может потребоваться выполнить команду Clear-AzContext, чтобы вы могли просматривать ресурсы за пределами текущего выбранного область.

Обновление идентификатора клиента в хранилище ключей

Select-AzSubscription -SubscriptionId <your-subscriptionId>                # Select your Azure Subscription
$vaultResourceId = (Get-AzKeyVault -VaultName myvault).ResourceId          # Get your key vault's Resource ID 
$vault = Get-AzResource -ResourceId $vaultResourceId -ExpandProperties     # Get the properties for your key vault
$vault.Properties.TenantId = (Get-AzContext).Tenant.TenantId               # Change the Tenant that your key vault resides in
$vault.Properties.AccessPolicies = @()                                     # Access policies can be updated with real
                                                                           # applications/users/rights so that it does not need to be                             # done after this whole activity. Here we are not setting 
                                                                           # any access policies. 
Set-AzResource -ResourceId $vaultResourceId -Properties $vault.Properties  # Modifies the key vault's properties.

Clear-AzContext                                                            #Clear the context from PowerShell
Connect-AzAccount                                                          #Log in again to confirm you have the correct tenant id
az account set -s <your-subscriptionId>                                    # Select your Azure Subscription
tenantId=$(az account show --query tenantId)                               # Get your tenantId
az keyvault update -n myvault --remove Properties.accessPolicies           # Remove the access policies
az keyvault update -n myvault --set Properties.tenantId=$tenantId          # Update the key vault tenantId

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

Примечание.

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

Теперь, когда ваше хранилище связано с правильным идентификатором клиента и старые записи политик доступа или назначения ролей удалены, настройте новые записи политики доступа или назначения ролей.

Сведения о назначении политик см. в этих статьях:

Сведения о добавлении назначений ролей см. в статьях:

Обновление управляемых удостоверений

Если вы передаете всю подписку и используете управляемое удостоверение для ресурсов Azure, необходимо также обновить его до нового клиента Microsoft Entra. Дополнительные сведения об управляемых удостоверениях см. в статье Что такое управляемые удостоверения для ресурсов Azure?.

Если вы используете управляемое удостоверение, вам также придется обновить удостоверение, так как старое удостоверение больше не будет в правильном клиенте Microsoft Entra. Чтобы узнать, как устранить эту проблему, см. следующие документы.

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