订阅移动后更改密钥保管库租户 ID

Note

本文最近进行了更新,以便使用新 Azure PowerShell Az 模块的命令。

问:我的订阅已从租户 A 移动到租户 B。如何更改我的现有密钥保管库的租户 ID,并为租户 B 中的主体设置正确的 ACL?

在订阅中创建新的密钥保管库时,该密钥保管库自动绑定到该订阅的默认 Azure Active Directory 租户 ID。 所有访问策略条目也都绑定到此租户 ID。 将 Azure 订阅从租户 A 移到租户 B 时,租户 B 中的主体(用户和应用程序)无法访问现有的密钥保管库。若要解决此问题,需要执行以下操作:

  • 将此订阅中与所有现有密钥保管库关联的租户 ID 更改为租户 B 的 ID。
  • 删除所有现有的访问策略条目。
  • 添加与租户 B 相关联的新访问策略条目。

例如,如果订阅中的密钥保管库“myvault”从租户 A 移到租户 B,以下介绍了如何更改此密钥保管库的租户 ID,以及删除旧的访问策略。

Select-AzSubscription -SubscriptionId YourSubscriptionID
$vaultResourceId = (Get-AzKeyVault -VaultName myvault).ResourceId
$vault = Get-AzResource ResourceId $vaultResourceId -ExpandProperties
$vault.Properties.TenantId = (Get-AzContext).Tenant.TenantId
$vault.Properties.AccessPolicies = @()
Set-AzResource -ResourceId $vaultResourceId -Properties $vault.Properties

因为移动前此保管库位于租户 A,所以“$vault.Properties.TenantId”的原始值为租户 A,而“(Get-AzContext).Tenant.TenantId”的值为租户 B。

现在,保管库与正确的租户 ID 相关联,并且会删除旧的访问策略条目,请使用 Set-AzKeyVaultAccessPolicy 设置新的访问策略条目。

后续步骤

如果在 Azure Key Vault 方面有任何问题,请访问 Azure Key Vault 论坛