En esta entrada, te mostraré cómo copiar las políticas de acceso en un key vault y agregarlas a otro key vault en Azure. Las políticas de acceso son esenciales para garantizar que solo los usuarios y aplicaciones autorizadas tengan acceso a los secretos y claves almacenados en un key vault.
Para comenzar, asegúrate de tener los permisos adecuados para realizar esta tarea. Debes tener permisos de propietario en ambos key vaults y ser un usuario o servicio autorizado para acceder a los secretos y claves almacenados en ellos.
Paso 1: Copiar las políticas de acceso del key vault original Lo primero que debes hacer es copiar las políticas de acceso del key vault original. Puedes hacer esto fácilmente utilizando la CLI de Azure. Abre la terminal de la CLI de Azure y ejecuta el siguiente comando:
az login
az keyvault show --name <nombre_keyvault_original> --resource-group <nombre_grupo_recursos_original> --subscription <ID suscripcion> --query 'properties.accessPolicies' > accessPolicies.json
Este comando mostrará las políticas de acceso en formato JSON y las guardará en un archivo llamado accessPolicies.json
. Asegúrate de cambiar <nombre_keyvault_original>
y <nombre_grupo_recursos_original>
por los nombres correctos de tu key vault original y grupo de recursos, respectivamente.
Paso 2: Agregar las políticas de acceso al key vault de destino mediante PowerShell Una vez que hayas copiado las políticas de acceso, puedes agregarlas al key vault de destino utilizando el siguiente script de PowerShell:
$jsonPath = "accessPolicies.json"
$json = Get-Content -Path $jsonPath | ConvertFrom-Json
$keyVaultName = "nombre_keyvault_destino"
$resourceGroupName = "nombre_grupo_recursos_destino"
$subscriptionId = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
foreach ($item in $json) {
$objectId = $item.objectId
$tenantId = $item.tenantId
if ($item.permissions) {
$keyPermissions = $item.permissions.keys
$secretPermissions = $item.permissions.secrets
$certificatePermissions = $item.permissions.certificates
Write-Host "Setting access policy for objectId: $($item.objectId)"
az keyvault set-policy `
--name $keyVaultName `
--resource-group $resourceGroupName `
--subscription $subscriptionId `
--object-id $objectId `
--key-permissions $keyPermissions `
--secret-permissions $secretPermissions `
--certificate-permissions $certificatePermissions
}
}
Este script de PowerShell lee las políticas de acceso del archivo accessPolicies.json
y las agrega al key vault de destino utilizando el comando az keyvault set-policy
. Asegúrate de cambiar nombre_keyvault_destino
, nombre_grupo_recursos_destino
y XXXXXXXXXXXXXXXXXXXXXXXXXXXX
por los valores correctos para tu key vault de destino, grupo de recursos y ID de suscripción de Azure, respectivamente.
Paso 3: Verificar las políticas de acceso en el key vault de destino Una vez que hayas agregado las políticas de acceso al key vault de destino, es importante verificar que se hayan agregado correctamente. Puedes hacer esto utilizando la CLI de Azure y ejecutando el siguiente comando:
az keyvault show --name <nombre_keyvault_destino> --resource-group <nombre_grupo_recursos_destino> --subscription <ID suscripcion> --query 'properties.accessPolicies' > accessPolicies.json
Este comando mostrará las políticas de acceso en formato JSON para el key vault de destino. Verifica que las políticas de acceso sean las mismas que las del key vault original.
:wq!