Inicio rápido: Creación de una asignación de directiva para identificar recursos no compatibles mediante Azure PowerShell
El primer paso para entender el cumplimiento en Azure es identificar el estado de sus recursos. En esta guía de inicio rápido, se crea una asignación de directiva para identificar máquinas virtuales que no usan discos administrados. Cuando haya finalizado, podrá identificar máquinas virtuales que no estén conformes.
El módulo Azure PowerShell se usa para administrar recursos de Azure desde la línea de comandos o en scripts. En esta guía se explica cómo usar el módulo Az para crear una asignación de directiva.
Prerrequisitos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Antes de comenzar, asegúrese de tener instalada la versión más reciente de Azure PowerShell. Consulte Instalación del módulo de Azure PowerShell para más información.
Registre el proveedor de recursos de Azure Policy Insights mediante Azure PowerShell. El registro del proveedor de recursos garantiza que la suscripción funcionará con él. Para registrar un proveedor de recursos, debe tener permiso para registrar la operación del proveedor de recursos. Esta operación está incluida en los roles Colaborador y Propietario. Para registrar el proveedor de recursos, ejecute el siguiente comando:
# Register the resource provider if it's not already registered Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'Para más información sobre el registro y la visualización de los proveedores de recursos, consulte Tipos y proveedores de recursos.
Uso de Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
| Opción | Ejemplo o vínculo |
|---|---|
| Seleccione Pruébelo en la esquina superior derecha de un bloque de código. Solo con seleccionar Pruébelo no se copia automáticamente el código en Cloud Shell. | ![]() |
| Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | ![]() |
| Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. | ![]() |
Para ejecutar el código de este artículo en Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar de un bloque de código para copiar el código.
Pegue el código en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Entrar para ejecutar el código.
Creación de una asignación de directiva
En esta guía de inicio rápido, se crea una asignación de directiva para la definición de Auditoría de máquinas virtuales sin discos administrados. Esta definición de directiva identifica las máquinas virtuales que no utilizan discos administrados.
Ejecute los comandos siguientes para crear una nueva asignación de directiva:
# Get a reference to the resource group that is the scope of the assignment
$rg = Get-AzResourceGroup -Name '<resourceGroupName>'
# Get a reference to the built-in policy definition to assign
$definition = Get-AzPolicyDefinition | Where-Object { $_.Properties.DisplayName -eq 'Audit VMs that do not use managed disks' }
# Create the policy assignment with the built-in definition against your resource group
New-AzPolicyAssignment -Name 'audit-vm-manageddisks' -DisplayName 'Audit VMs without managed disks Assignment' -Scope $rg.ResourceId -PolicyDefinition $definition
Los comandos anteriores usan la siguiente información:
- Nombre: el nombre real de la asignación. En este ejemplo se usa audit-vm-manageddisks.
- DisplayName: nombre para mostrar de la asignación de directiva. En este caso, usará Auditoría de máquinas virtuales sin discos administrados.
- Definition: la definición de directiva, según la opción utilizada para crear la asignación. En este caso, es el identificador de la definición de directiva Auditoría de máquinas virtuales que no usan discos administrados.
- Scope: un ámbito determina en qué recursos o agrupación de recursos se aplica la asignación de directiva. Puede abarcar desde una suscripción hasta grupos de recursos. Asegúrese de sustituir <scope> por el nombre del grupo de recursos.
Ahora ya está listo para identificar los recursos no compatibles a fin de conocer el estado de cumplimiento de su entorno.
Identificación de recursos sin compatibilidad
Utilice la siguiente información para identificar los recursos que no son compatibles con la asignación de directiva que ha creado. Ejecute los comandos siguientes:
# Get the resources in your resource group that are non-compliant to the policy assignment
Get-AzPolicyState -ResourceGroupName $rg.ResourceGroupName -PolicyAssignmentName 'audit-vm-manageddisks' -Filter 'IsCompliant eq false'
Para obtener más información sobre cómo obtener el estado de la directiva, consulte Get-AzPolicyState.
Los resultados deben tener una apariencia similar al ejemplo siguiente:
Timestamp : 3/9/19 9:21:29 PM
ResourceId : /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmId}
PolicyAssignmentId : /subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/audit-vm-manageddisks
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d
IsCompliant : False
SubscriptionId : {subscriptionId}
ResourceType : /Microsoft.Compute/virtualMachines
ResourceTags : tbd
PolicyAssignmentName : audit-vm-manageddisks
PolicyAssignmentOwner : tbd
PolicyAssignmentScope : /subscriptions/{subscriptionId}
PolicyDefinitionName : 06a78e20-9358-41c9-923c-fb736d382a4d
PolicyDefinitionAction : audit
PolicyDefinitionCategory : Compute
ManagementGroupIds : {managementGroupId}
Los resultados coinciden con lo que ve en la pestaña de cumplimiento de recursos de una asignación de directiva en la vista de Azure Portal.
Limpieza de recursos
Para quitar la asignación creada, ejecute el siguiente comando:
# Removes the policy assignment
Remove-AzPolicyAssignment -Name 'audit-vm-manageddisks' -Scope '/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>'
Pasos siguientes
En este inicio rápido, se asigna una definición de directiva para identificar los recursos incompatibles en el entorno de Azure.
Para más información sobre la asignación de directivas para garantizar la compatibilidad de los nuevos recursos, continúe con el tutorial para:


