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


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

Замечание

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

Обзор

Это важно

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

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

Замечание

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

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

Дополнительные сведения о 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. Дополнительные сведения об управляемых удостоверениях можно найти в Обзоре управляемых удостоверений.

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

Дальнейшие действия