Azure Key Vault を別のサブスクリプションに移動する

Note

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

概要

重要

キー コンテナーを別のサブスクリプションに移動すると、環境に破壊的変更が生じます。 キー コンテナーを新しいサブスクリプションに移動することを決める前に、必ずこの変更の影響について理解し、この記事のガイダンスに慎重に従うようにしてください。 管理対象サービス ID (MSI) を使用している場合は、このドキュメントの最後にある移動後の手順を参照してください。

Azure Key Vault は、作成されるサブスクリプションの既定の Microsoft Entra ID テナント ID に自動的に関連付けられます。 こちらのガイドに従って、サブスクリプションに関連付けられているテナント ID を見つけることができます。 また、すべてのアクセス ポリシー エントリとロールの割り当てもこのテナント ID に関連付けられます。 テナント A からテナント B に Azure サブスクリプションを移行した場合、テナント B のサービス プリンシパル (ユーザーとアプリケーション) は既存のキー コンテナーにアクセスできなくなります。この問題を解決するには、次の操作を行う必要があります。

Note

Key Vault が Azure Lighthouse を使用して作成されている場合は、代わりにテナント ID の管理に関連付けられます。 Azure Lighthouse は、コンテナー アクセス ポリシーのアクセス許可モデルでのみサポートされます。 Azure Lighthouse のテナントの詳細については、Azure Lighthouse におけるテナント、ユーザー、ロールに関する記事を参照してください。

  • そのサブスクリプションにあるすべての既存のキー コンテナーに関連付けられたテナント ID を、テナント B に変更する。
  • すべての既存のアクセス ポリシー エントリを削除する。
  • テナント B に関連付けられた新しいアクセス ポリシー エントリを追加する。

Azure Key Vault と Microsoft Entra ID の詳細については、次を参照してください

制限事項

重要

ディスク暗号化に使用されるキー コンテナーは移動できません VM のディスク暗号化にキー コンテナーを使用している場合、ディスク暗号化が有効な間は、そのキー コンテナーを別のリソース グループまたはサブスクリプションに移動できません。 キー コンテナーを新しいリソース グループまたはサブスクリプションに移動する前に、ディスクの暗号化を無効にする必要があります。

一部のサービス プリンシパル (ユーザーとアプリケーション) は特定のテナントにバインドされます。 別のテナントのサブスクリプションにキー コンテナーを移動した場合、特定のサービス プリンシパルへのアクセスを復元できなくなる可能性があります。 キー コンテナーを移動するテナントに、すべての重要なサービス プリンシパルが存在することを確認してください。

[前提条件]

  • キー コンテナーが存在する現在のサブスクリプションに対する共同作成者レベル以上のアクセス権。 ロールは、Azure portalAzure CLI、または PowerShell を使用して割り当てることができます。
  • キー コンテナーを移動するサブスクリプションに対する共同作成者レベル以上のアクセス権。ロールは Azure portalAzure CLI、または PowerShell を使用して割り当てることができます。
  • 新しいサブスクリプションのリソース グループ。 これは、Azure portalPowerShell、または Azure CLI を使用して作成できます。

既存のロールは、Azure portalPowerShellAzure CLI、または REST API を使用して確認できます。

キー コンテナーを新しいサブスクリプションに移動する

  1. Azure portal にサインインします。
  2. お使いのキー コンテナーに移動します
  3. [概要] タブで選択します
  4. [移動] ボタン を選択する
  5. ドロップダウン リストのオプションから [別のサブスクリプションに移動する] を選択する
  6. キー コンテナーを移動するリソース グループを選択する
  7. リソースの移動に関する警告を確認する
  8. [OK] を選択する

サブスクリプションが新しいテナントにある場合の追加の手順

キー コンテナーを含むサブスクリプションを新しいテナントに移動した場合、そのテナントの ID を手動で更新して、古いアクセス ポリシーとロールの割り当てを削除する必要があります。 ここでは、PowerShell と Azure CLI でこれらの手順を実行するためのチュートリアルを紹介します。 PowerShell を使用している場合は、お使いの現在選択されているスコープ以外のリソースを表示できるように、Clear-AzContext コマンドを実行する必要がある場合があります。

キー コンテナーのテナント ID を更新する

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

アクセス ポリシーとロールの割り当てを更新する

Note

Key Vault で Azure RBAC アクセス許可モデルを使用している場合。 キー コンテナーのロールの割り当ても削除する必要があります。 ロールの割り当ては、Azure portalAzure CLI、または PowerShell を使用して削除できます。

これで、コンテナーが正しいテナント ID に関連付けられ、古いアクセス ポリシー エントリまたはロールの割り当てが削除されたので、新しいアクセス ポリシー エントリまたはロールの割り当てを設定します。

ポリシーを割り当てる方法については、以下を参照してください。

ロールの割り当てを追加する方法については、以下を参照してください。

マネージド ID を更新する

サブスクリプション全体を転送し、Azure リソースのマネージド ID を使用する場合は、新しい Microsoft Entra テナントにも更新する必要があります。 マネージド ID の詳細については、マネージド ID の概要に関するページを参照してください。

マネージド ID を使用している場合は、古い ID が正しい Microsoft Entra テナントに存在しなくなったため、ID を更新する必要もあります。 この問題を解決するには、次のドキュメントを参照してください。

次のステップ