Exportación de recursos de Azure Policy
En este artículo se ofrece información sobre cómo exportar los recursos de Azure Policy existentes. La exportación de los recursos es útil y se recomienda para la copia de seguridad, pero también es un paso importante en su recorrido por la gobernanza de la nube y el tratamiento de policy-as-code. Los recursos de Azure Policy se pueden exportar a través de Azure Portal, la CLI de Azure, Azure PowerShell y cada uno de los SDK admitidos.
Exportación con Azure Portal
Nota
La exportación de recursos de Azure Policy desde Azure Portal no está disponible para nubes soberanas de Azure.
Para exportar una definición de directiva desde Azure Portal, siga estos pasos:
Inicie el servicio Azure Policy en Azure Portal. Para ello, haga clic en Todos los servicios y, a continuación, busque y seleccione Directiva.
Seleccione Definiciones en el lado izquierdo de la página de Azure Policy.
Use el botón Exportar definiciones, o bien seleccione el botón de los puntos suspensivos que encontrará en la fila de la definición de una directiva y, a continuación, seleccione Exportar definición.
Seleccione el botón Iniciar sesión con GitHub. Si aún no se ha autenticado en GitHub para autorizar a Azure Policy a exportar el recurso, revise el acceso que Acciones de GitHub requiere en la nueva ventana que se abre y seleccione Autorizar AzureGitHubActions para continuar con el proceso de exportación. Una vez completado este paso, la nueva ventana se cerrará automáticamente.
En la pestaña Aspectos básicos, establezca las siguientes opciones y,a continuación, seleccione la pestaña Directivas o el botón Siguiente: Directivas situado en la parte inferior de la página.
- Filtro del repositorio: establezca esta opción en Mis repositorios si solo quiere ver los repositorios que posee, o bien en Todos los repositorios para ver todos aquellos a los que concedió acceso a Acciones de GitHub.
- Repositorio: establezca esta opción en el repositorio en el que quiera exportar los recursos de Azure Policy.
- Rama: establezca la rama del repositorio. Usar una rama distinta de la predeterminada es una buena manera de validar las actualizaciones antes de combinarlas en el código fuente.
- Directorio: se trata de la carpeta de nivel raíz en la que se exportarán los recursos de Azure Policy. Las subcarpetas de este directorio se crean en función de los recursos que se exportan.
En la pestaña Directivas, establezca el ámbito de búsqueda; para ello, seleccione el botón de los puntos suspensivos y elija una combinación de grupos de administración, suscripciones o grupos de recursos.
Use el botón Agregar definiciones de directiva para realizar la búsqueda en el ámbito cuyos objetos se van a exportar. En la ventana lateral que se abre, seleccione cada uno de los objetos que quiera exportar. Filtre la selección mediante el cuadro de búsqueda o el tipo. Una vez que haya seleccionado todos los objetos que se van a exportar, use el botón Agregar de la parte inferior de la página.
Para cada objeto seleccionado, seleccione las opciones de exportación que prefiera, como Solo definición o Definición y asignaciones, para una definición de directiva. Luego, seleccione la pestaña Revisar y exportar o el botón Siguiente: Revisar y exportar situado en la parte inferior de la página.
Nota
Si se elige la opción Definición y asignaciones, solo se exportarán las asignaciones de directiva comprendidas en el ámbito establecido por el filtro al agregar la definición de directiva.
En la pestaña Revisar y exportar, compruebe que los detalles coincidan y, luego, use el botón Exportar situado en la parte inferior de la página.
Compruebe el repositorio de GitHub, la rama y la carpeta de nivel raíz para ver que los recursos seleccionados se hayan exportado en el control de código fuente.
Los recursos de Azure Policy se exportan en la siguiente estructura dentro del repositorio y la carpeta de nivel raíz de GitHub que haya seleccionado:
|
|- <root level folder>/ ________________ # Root level folder set by Directory property
| |- policies/ ________________________ # Subfolder for policy objects
| |- <displayName>_<name>____________ # Subfolder based on policy displayName and name properties
| |- policy.json _________________ # Policy definition
| |- assign.<displayName>_<name>__ # Each assignment (if selected) based on displayName and name properties
|
Exportación con la CLI de Azure
Cada una de las definiciones, iniciativas y asignaciones de Azure Policy se pueden exportar como JSON con la CLI de Azure. Cada uno de estos comandos usa un parámetro name para especificar el objeto para el que se va a obtener el JSON. La propiedad name suele ser un GUID, no el valor displayName del objeto.
- Definición: az policy definition show
- Iniciativa: az policy set-definition show
- Asignación: az policy assignment show
Este es un ejemplo de cómo obtener el JSON de una definición de directiva con el valor name de VirtualMachineStorage:
az policy definition show --name 'VirtualMachineStorage'
Exportación con Azure PowerShell
Cada una de las definiciones, iniciativas y asignaciones de Azure Policy se pueden exportar como JSON con Azure PowerShell. Cada uno de estos cmdlets usa un parámetro name para especificar el objeto para el que se va a obtener el JSON. La propiedad Name suele ser un GUID, no el valor displayName del objeto.
- Definición: Get-AzPolicyDefinition
- Iniciativa: Get-AzPolicySetDefinition
- Asignación: Get-AzPolicyAssignment
Este es un ejemplo de cómo obtener el JSON de una definición de directiva con el valor Name de VirtualMachineStorage:
Get-AzPolicyDefinition -Name 'VirtualMachineStorage' | ConvertTo-Json -Depth 10
Pasos siguientes
- Puede consultar ejemplos en Ejemplos de Azure Policy.
- Revise la estructura de definición de Azure Policy.
- Vea la Descripción de los efectos de directivas.
- Obtenga información acerca de cómo se pueden crear directivas mediante programación.
- Obtenga información sobre cómo corregir recursos no compatibles.
- En Organización de los recursos con grupos de administración de Azure, obtendrá información sobre lo que es un grupo de administración.