En este post te explicaré cómo solventar el error «microsoft.keyvault/vaults/write permission is required to add or edit access policies» en Azure, que aparece cuando se intenta migrar un componente de Azure como un keyvault de un Tenant a otro y no se puede modificar nada en las access policies.
Este error ocurre porque el keyvault está protegido por Azure Role-Based Access Control (RBAC) y los permisos de escritura no están configurados correctamente. Para solucionarlo, se debe ejecutar el siguiente script en PowerShell:
Select-AzSubscription -SubscriptionId XXXXXXXXXXXXXXXXXXXX # Selecciona tu suscripción de Azure
$vaultResourceId = (Get-AzKeyVault -VaultName myvault).ResourceId # Obtiene el ID de recursos de tu keyvault
$vault = Get-AzResource -ResourceId $vaultResourceId -ExpandProperties # Obtiene las propiedades de tu keyvault
$vault.Properties.TenantId = (Get-AzContext).Tenant.TenantId # Cambia el Tenant en el que reside tu keyvault
$vault.Properties.AccessPolicies = @() # Las políticas de acceso pueden ser actualizadas con aplicaciones/usuarios/permisos reales, aquí no estamos configurando ninguna.
Set-AzResource -ResourceId $vaultResourceId -Properties $vault.Properties # Modifica las propiedades de tu keyvault.
Clear-AzContext # Limpia el contexto de PowerShell
Connect-AzAccount # Inicia sesión de nuevo para confirmar
Este script cambia el Tenant en el que reside el keyvault y limpia las políticas de acceso para permitir que se creen nuevas políticas de acceso en el Tenant de destino. Una vez que se ha ejecutado este script, se puede configurar el Azure Role-Based Access Control en «Access configuration»
A continuación, ya puedes configurar las Access Polices