Перемещение 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, Azure CLI или PowerShell.
- Доступ на уровне участника или выше к подписке, в которой требуется переместить хранилище ключей. Роль можно назначить с помощью портал Azure, Azure CLI или PowerShell.
- Группа ресурсов в новой подписке. Его можно создать с помощью портал Azure, PowerShell или Azure CLI.
Вы можете проверить существующие роли с помощью портал Azure, PowerShell, Azure CLI или REST API.
Перемещение хранилища ключей в новую подписку
- Войдите на портал Azure.
- Перейдите в хранилище ключей
- Выберите на вкладке "Обзор"
- Нажмите кнопку "Переместить"
- Выберите пункт "Переместить в другую подписку" в раскрывающемся списке параметров
- Выберите группу ресурсов, в которую необходимо переместить хранилище ключей
- Подтвердите предупреждения о перемещении ресурсов
- Нажмите кнопку ОК.
Дополнительные действия при перемещении подписки в новый клиент
Если вы переместили подписку, содержащую хранилище ключей, в новый клиент, необходимо вручную обновить идентификатор клиента и удалить старые политики доступа и назначения ролей. Ниже приведены руководства, которые содержат шаги для выполнения этих действий в 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 CLI
- Назначение политики доступа с помощью PowerShell
Сведения о добавлении назначений ролей см. в статьях:
- Назначение ролей Azure с помощью портала Azure
- Назначение ролей Azure с помощью Azure CLI
- Назначение ролей Azure с помощью PowerShell
Обновление управляемых удостоверений
Если вы передаете всю подписку и используете управляемое удостоверение для ресурсов Azure, необходимо также обновить его до нового клиента Microsoft Entra. Дополнительные сведения об управляемых удостоверениях см. в статье Что такое управляемые удостоверения для ресурсов Azure?.
Если вы используете управляемое удостоверение, вам также придется обновить удостоверение, так как старое удостоверение больше не будет в правильном клиенте Microsoft Entra. Чтобы узнать, как устранить эту проблему, см. следующие документы.
Следующие шаги
- Узнайте больше о ключах, секретах и сертификатах.
- Основные сведения, в том числе информацию о том, как анализировать журналы Key Vault, см. в статье Ведение журнала Azure Key Vault
- Руководство разработчика Azure Key Vault
- Функции безопасности Azure Key Vault
- Настройка брандмауэров и виртуальных сетей Azure Key Vault