Tutorial: Creación y administración de directivas para aplicar el cumplimientoTutorial: Create and manage policies to enforce compliance

Comprender cómo se crean y administran las directivas en Azure es importante para mantener el cumplimiento de los estándares corporativos y los contratos de nivel de servicio.Understanding how to create and manage policies in Azure is important for staying compliant with your corporate standards and service level agreements. En este tutorial, aprenderá a usar Azure Policy para realizar algunas de las tareas más comunes relacionadas con la creación, la asignación y la administración de directivas en toda la organización, como, por ejemplo:In this tutorial, you learn to use Azure Policy to do some of the more common tasks related to creating, assigning, and managing policies across your organization, such as:

  • Asignar una directiva para aplicar una condición a los recursos que se creen en el futuroAssign a policy to enforce a condition for resources you create in the future
  • Crear y asignar una definición de iniciativa para realizar un seguimiento del cumplimiento para varios recursosCreate and assign an initiative definition to track compliance for multiple resources
  • Resolución de un recurso que no cumpla o que sea denegadoResolve a non-compliant or denied resource
  • Implementar una nueva directiva en toda la organizaciónImplement a new policy across an organization

Si desea asignar una directiva para identificar el estado de cumplimiento actual de los recursos existentes, en los artículos de inicio rápido se examina cómo hacerlo.If you would like to assign a policy to identify the current compliance state of your existing resources, the quickstart articles go over how to do so.

PrerrequisitosPrerequisites

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Asignación de una directivaAssign a policy

El primer paso para aplicar cumplimientos con Azure Policy es asignar una definición de directiva.The first step in enforcing compliance with Azure Policy is to assign a policy definition. Una definición de directiva precisa en qué condiciones se aplica una directiva y qué efecto debe tener.A policy definition defines under what condition a policy is enforced and what effect to take. En este ejemplo, asigne la definición de directiva integrada llamada Heredar una etiqueta del grupo de recursos si falta para agregar la etiqueta especificada con su valor del grupo de recursos primario a los recursos nuevos o actualizados a los que les falta la etiqueta.In this example, assign the built-in policy definition called Inherit a tag from the resource group if missing to add the specified tag with its value from the parent resource group to new or updated resources missing the tag.

  1. Vaya a Azure Portal para asignar directivas.Go to the Azure portal to assign policies. Busque y seleccione Directiva.Search for and select Policy.

    Búsqueda de Policy en la barra de búsqueda
  2. Seleccione Asignaciones en el panel izquierdo de la página de Azure Policy.Select Assignments on the left side of the Azure Policy page. Una asignación es una directiva que se asignó para que se lleve a cabo dentro de un ámbito específico.An assignment is a policy that has been assigned to take place within a specific scope.

    Página Seleccionar asignaciones en la página Información general de directivas
  3. Seleccione Asignar directiva en la parte superior de la página Policy - Asignaciones.Select Assign Policy from the top of the Policy - Assignments page.

    Asignar una definición de directiva en la página Asignaciones
  4. En la página Asignar directiva y en la pestaña Aspectos básicos, seleccione los puntos suspensivos y seleccione una suscripción o un grupo de administración como Ámbito.On the Assign Policy page and Basics tab, select the Scope by selecting the ellipsis and selecting either a management group or subscription. Opcionalmente, seleccione un grupo de recursos.Optionally, select a resource group. Un ámbito determina en qué recursos o agrupación de recursos se implementa la asignación de directiva.A scope determines what resources or grouping of resources the policy assignment gets enforced on. Luego elija Seleccionar en la parte inferior de la página Ámbito.Then select Select at the bottom of the Scope page.

    En este ejemplo se usa la suscripción de Contoso.This example uses the Contoso subscription. Su suscripción variará.Your subscription will differ.

  5. Los recursos se pueden excluir según el ámbito.Resources can be excluded based on the Scope. Las exclusiones comienzan en un nivel inferior al nivel del ámbito.Exclusions start at one level lower than the level of the Scope. Las exclusiones son opcionales, así que déjelas en blanco por ahora.Exclusions are optional, so leave it blank for now.

  6. Seleccione los puntos suspensivos de Definición de directiva para abrir la lista de definiciones disponibles.Select the Policy definition ellipsis to open the list of available definitions. Puede filtrar el campo Tipo de la definición de directiva por Integrada para verlas todas y leer sus descripciones.You can filter the policy definition Type to Built-in to view all and read their descriptions.

  7. Seleccione Heredar una etiqueta del grupo de recursos si falta.Select Inherit a tag from the resource group if missing. Si no la encuentra inmediatamente, escriba heredar una etiqueta en el cuadro de búsqueda y, después, presione ENTRAR o haga clic fuera del cuadro de búsqueda.If you can't find it right away, type inherit a tag into the search box and then press ENTER or select out of the search box. Elija Seleccionar en la parte inferior de la página Definiciones disponibles después de encontrar y seleccionar la definición de directiva.Select Select at the bottom of the Available Definitions page once you have found and selected the policy definition.

    Usar un filtro de búsqueda para buscar una directiva

  8. Nombre de asignación se rellena automáticamente con el nombre de directiva seleccionado, pero puede cambiarlo.The Assignment name is automatically populated with the policy name you selected, but you can change it. En este ejemplo, deje Heredar una etiqueta del grupo de recursos si falta.For this example, leave Inherit a tag from the resource group if missing. También puede agregar una Descripción opcional.You can also add an optional Description. La descripción ofrece detalles sobre esta asignación de directiva.The description provides details about this policy assignment.

  9. Deje Cumplimiento de directivas como Habilitado.Leave Policy enforcement as Enabled. Cuando esta Deshabilitado, esta configuración permite probar el resultado de la directiva sin desencadenar el efecto.When Disabled, this setting allows testing the outcome of the policy without triggering the effect. Para más información, consulte Modo de cumplimiento.For more information, see enforcement mode.

  10. Asignado por: se rellena automáticamente en función de quién ha iniciado sesión.Assigned by is automatically filled based on who is logged in. Este campo es opcional, así que se pueden especificar valores personalizados.This field is optional, so custom values can be entered.

  11. Seleccione la pestaña Parámetros en la parte superior del asistente.Select the Parameters tab at the top of the wizard.

  12. En Nombre de etiqueta, escriba Entorno.For Tag Name, enter Environment.

  13. Seleccione la pestaña Corrección en la parte superior del asistente.Select the Remediation tab at the top of the wizard.

  14. Deje sin marcar Crear una tarea de corrección.Leave Create a remediation task unchecked. Este cuadro permite crear una tarea para modificar los recursos existentes, además de los recursos nuevos o actualizados.This box allows you to create a task to alter existing resources in addition to new or updated resources. Para más información, consulte Corrección de recursos.For more information, see remediate resources.

  15. La casilla Crear una identidad administrada se activa automáticamente, ya que esta definición de directiva usa el efecto modify.Create a Managed Identity is automatically checked since this policy definition uses the modify effect. Permisos se establece automáticamente en Colaborador según la definición de directiva.Permissions is set to Contributor automatically based on the policy definition. Para más información, consulte las identidades administradas y cómo funciona la seguridad de corrección.For more information, see managed identities and how remediation security works.

  16. Seleccione la pestaña Revisar y crear en la parte superior del asistente.Select the Review + create tab at the top of the wizard.

  17. Revise las selecciones y, luego, seleccione Crear en la parte inferior de la página.Review your selections, then select Create at the bottom of the page.

Implementación de una nueva directiva personalizadaImplement a new custom policy

Ahora que ha asignado una definición de directiva integrada, puede hacer más cosas con Azure Policy.Now that you've assigned a built-in policy definition, you can do more with Azure Policy. A continuación, creará una directiva personalizada para ahorrar costos asegurándose de que las máquinas virtuales creadas en el entorno no puedan estar en la serie G.Next, create a new custom policy to save costs by validating that VMs created in your environment can't be in the G series. De este modo, cada vez que un usuario de su organización intente crear una máquina virtual de la serie G, la solicitud le será denegada.This way, every time a user in your organization tries to create VM in the G series, the request is denied.

  1. Seleccione Definiciones en Creación en el lado izquierdo de la página de Azure Policy.Select Definitions under Authoring in the left side of the Azure Policy page.

    Página de definición en el grupo de creación
  2. Seleccione + Definición de directiva en la parte superior de la página.Select + Policy definition at the top of the page. Este botón abre la página Definición de directiva.This button opens to the Policy definition page.

  3. Escriba la siguiente información:Enter the following information:

    • El grupo de administración o la suscripción donde está guardada la definición de directiva.The management group or subscription in which the policy definition is saved. Para la selección use los puntos suspensivos en Ubicación de definición.Select by using the ellipsis on Definition location.

      Nota

      Si planea aplicar esta definición de directiva a varias suscripciones, la ubicación debe ser un grupo de administración que contenga las suscripciones a las que se asigne la directiva.If you plan to apply this policy definition to multiple subscriptions, the location must be a management group that contains the subscriptions you assign the policy to. Lo mismo puede aplicarse a una definición de iniciativa.The same is true for an initiative definition.

    • El nombre de la definición de directiva: _*Require VM SKUs smaller than the G series (Requerir SKU de máquina virtual inferiores a la serie G)The name of the policy definition - _*Require VM SKUs smaller than the G series

    • La descripción de la finalidad de la definición de directiva: esta definición de directiva exige que todas las máquinas virtuales creadas en este ámbito tengan SKU inferiores a la serie G para reducir el costo.The description of what the policy definition is intended to do – This policy definition enforces that all VMs created in this scope have SKUs smaller than the G series to reduce cost.

    • Elija entre las opciones existentes o cree una nueva categoría (como Proceso) para esta definición de directiva.Choose from existing options (such as Compute), or create a new category for this policy definition.

    • Copie el siguiente código JSON y actualícelo según sus necesidades con:Copy the following JSON code and then update it for your needs with:

      • Los parámetros de directiva.The policy parameters.
      • Las reglas/condiciones de la directiva, en este caso: tamaño de SKU de máquina virtual igual a la serie GThe policy rules/conditions, in this case – VM SKU size equal to G series
      • El efecto de la directiva, en este caso: Deny (Denegar).The policy effect, in this case – Deny.

    Este es el aspecto que debería tener el JSON.Here's what the JSON should look like. Pegue el código revisado en Azure Portal.Paste your revised code into the Azure portal.

    {
        "policyRule": {
            "if": {
                "allOf": [{
                        "field": "type",
                        "equals": "Microsoft.Compute/virtualMachines"
                    },
                    {
                        "field": "Microsoft.Compute/virtualMachines/sku.name",
                        "like": "Standard_G*"
                    }
                ]
            },
            "then": {
                "effect": "deny"
            }
        }
    }
    

    La propiedad field de la regla de directiva debe ser un valor admitido.The field property in the policy rule must be a supported value. Se puede encontrar una lista completa de valores en los campos de estructura de definición de directiva.A full list of values is found on policy definition structure fields. Un ejemplo de un alias podría ser "Microsoft.Compute/VirtualMachines/Size".An example of an alias might be "Microsoft.Compute/VirtualMachines/Size".

    Para ver más ejemplos de directivas de Azure, consulte Ejemplos de Azure Policy.To view more Azure policy samples, see Azure Policy samples.

  4. Seleccione Guardar.Select Save.

Creación de una definición de directiva con la API de RESTCreate a policy definition with REST API

Puede crear una directiva con la API REST para definiciones de Azure Policy.You can create a policy with the REST API for Azure Policy Definitions. La API de REST permite crear y eliminar definiciones de directiva, así como recuperar información sobre las definiciones existentes.The REST API enables you to create and delete policy definitions, and get information about existing definitions. Para crear una definición de directiva, use el siguiente ejemplo:To create a policy definition, use the following example:

PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.authorization/policydefinitions/{policyDefinitionName}?api-version={api-version}

Incluya un cuerpo de solicitud similar al ejemplo siguiente:Include a request body similar to the following example:

{
    "properties": {
        "parameters": {
            "allowedLocations": {
                "type": "array",
                "metadata": {
                    "description": "The list of locations that can be specified when deploying resources",
                    "strongType": "location",
                    "displayName": "Allowed locations"
                }
            }
        },
        "displayName": "Allowed locations",
        "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
        "policyRule": {
            "if": {
                "not": {
                    "field": "location",
                    "in": "[parameters('allowedLocations')]"
                }
            },
            "then": {
                "effect": "deny"
            }
        }
    }
}

Creación de una definición de directiva con PowerShellCreate a policy definition with PowerShell

Antes de continuar con el ejemplo de PowerShell, asegúrese de que tiene instalada la última versión del módulo Az de Azure PowerShell.Before proceeding with the PowerShell example, make sure you've installed the latest version of the Azure PowerShell Az module.

Puede crear una definición de directiva con el cmdlet New-AzPolicyDefinition.You can create a policy definition using the New-AzPolicyDefinition cmdlet.

Para crear una definición de directiva desde un archivo, pase la ruta de acceso al archivo.To create a policy definition from a file, pass the path to the file. Para un archivo externo, use el ejemplo siguiente:For an external file, use the following example:

$definition = New-AzPolicyDefinition `
    -Name 'denyCoolTiering' `
    -DisplayName 'Deny cool access tiering for storage' `
    -Policy 'https://raw.githubusercontent.com/Azure/azure-policy-samples/master/samples/Storage/storage-account-access-tier/azurepolicy.rules.json'

Para un archivo local, use el ejemplo siguiente:For a local file use, use the following example:

$definition = New-AzPolicyDefinition `
    -Name 'denyCoolTiering' `
    -Description 'Deny cool access tiering for storage' `
    -Policy 'c:\policies\coolAccessTier.json'

Para crear una definición de directiva con una regla insertada, use el ejemplo siguiente:To create a policy definition with an inline rule, use the following example:

$definition = New-AzPolicyDefinition -Name 'denyCoolTiering' -Description 'Deny cool access tiering for storage' -Policy '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "field": "kind",
                "equals": "BlobStorage"
            },
            {
                "field": "Microsoft.Storage/storageAccounts/accessTier",
                "equals": "cool"
            }
        ]
    },
    "then": {
        "effect": "deny"
    }
}'

La salida se almacena en un objeto $definition, que se usa durante la asignación de directivas.The output is stored in a $definition object, which is used during policy assignment. En el ejemplo siguiente se crea una definición de directiva que incluye parámetros:The following example creates a policy definition that includes parameters:

$policy = '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "not": {
                    "field": "location",
                    "in": "[parameters(''allowedLocations'')]"
                }
            }
        ]
    },
    "then": {
        "effect": "Deny"
    }
}'

$parameters = '{
    "allowedLocations": {
        "type": "array",
        "metadata": {
            "description": "The list of locations that can be specified when deploying storage accounts.",
            "strongType": "location",
            "displayName": "Allowed locations"
        }
    }
}'

$definition = New-AzPolicyDefinition -Name 'storageLocations' -Description 'Policy to specify locations for storage accounts.' -Policy $policy -Parameter $parameters

Visualización de definiciones de directiva con PowerShellView policy definitions with PowerShell

Para ver todas las definiciones de directiva en su suscripción, utilice el siguiente comando:To see all policy definitions in your subscription, use the following command:

Get-AzPolicyDefinition

Devuelve todas las definiciones de directiva disponibles, incluidas las directivas integradas.It returns all available policy definitions, including built-in policies. Cada directiva se devuelve con el formato siguiente:Each policy is returned in the following format:

Name               : e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceId         : /providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceName       : e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceType       : Microsoft.Authorization/policyDefinitions
Properties         : @{displayName=Allowed locations; policyType=BuiltIn; description=This policy enables you to
                     restrict the locations your organization can specify when deploying resources. Use to enforce
                     your geo-compliance requirements.; parameters=; policyRule=}
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c

Creación de una definición de directiva con la CLI de AzureCreate a policy definition with Azure CLI

Puede crear una definición de directiva mediante la CLI de Azure con el comando az policy definition.You can create a policy definition using Azure CLI with the az policy definition command. Para crear una definición de directiva con una regla insertada, use el ejemplo siguiente:To create a policy definition with an inline rule, use the following example:

az policy definition create --name 'denyCoolTiering' --description 'Deny cool access tiering for storage' --rules '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "field": "kind",
                "equals": "BlobStorage"
            },
            {
                "field": "Microsoft.Storage/storageAccounts/accessTier",
                "equals": "cool"
            }
        ]
    },
    "then": {
        "effect": "deny"
    }
}'

Visualización de definiciones de directiva con la CLI de AzureView policy definitions with Azure CLI

Para ver todas las definiciones de directiva en su suscripción, utilice el siguiente comando:To see all policy definitions in your subscription, use the following command:

az policy definition list

Devuelve todas las definiciones de directiva disponibles, incluidas las directivas integradas.It returns all available policy definitions, including built-in policies. Cada directiva se devuelve con el formato siguiente:Each policy is returned in the following format:

{
    "description": "This policy enables you to restrict the locations your organization can specify when deploying resources. Use to enforce your geo-compliance requirements.",
    "displayName": "Allowed locations",
    "id": "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c",
    "name": "e56962a6-4747-49cd-b67b-bf8b01975c4c",
    "policyRule": {
        "if": {
            "not": {
                "field": "location",
                "in": "[parameters('listOfAllowedLocations')]"
            }
        },
        "then": {
            "effect": "Deny"
        }
    },
    "policyType": "BuiltIn"
}

Creación y asignación de una definición de iniciativaCreate and assign an initiative definition

Con una definición de iniciativa, puede agrupar varias definiciones de directiva para lograr un objetivo general.With an initiative definition, you can group several policy definitions to achieve one overarching goal. Una iniciativa evalúa los recursos dentro del ámbito de la asignación de cara al cumplimiento de las directivas incluidas.An initiative evaluates resources within scope of the assignment for compliance to the included policies. Para más información sobre las definiciones de iniciativa, consulte Introducción a Azure Policy.For more information about initiative definitions, see Azure Policy overview.

Creación de una definición de iniciativaCreate an initiative definition

  1. Seleccione Definiciones en Creación en el lado izquierdo de la página de Azure Policy.Select Definitions under Authoring in the left side of the Azure Policy page.

    Seleccionar la definición de la página Definiciones
  2. Seleccione + Initiative Definition (+ Definición de iniciativa) en la parte superior de la página para abrir la página Definición de iniciativa (Definición de iniciativa).Select + Initiative Definition at the top of the page to open the Initiative definition page.

    Revisar la página de definición de iniciativa
  3. Use Ubicación de definición para seleccionar un grupo de administración o una suscripción para almacenar la definición.Use the Definition location ellipsis to select a management group or subscription to store the definition. Si ha establecido el ámbito de la página anterior a un único grupo de administración o suscripción, Ubicación de definición se rellena automáticamente.If the previous page was scoped to a single management group or subscription, Definition location is automatically populated. Una vez seleccionado, se rellena el campo Definiciones disponibles.Once selected, Available Definitions is populated.

  4. Defina los campos Nombre y Descripción de la iniciativa.Enter the Name and Description of the initiative.

    En este ejemplo se garantiza que los recursos guardan conformidad con las definiciones de directiva sobre protección.This example validates that resources are in compliance with policy definitions about getting secure. Denomine a la iniciativa Get Secure (Estar protegido) y la descripción sería: This initiative has been created to handle all policy definitions associated with securing resources (Esta iniciativa se ha creado para administrar todas las definiciones de directiva asociadas con la protección de los recursos).Name the initiative Get Secure and set the description as: This initiative has been created to handle all policy definitions associated with securing resources.

  5. En Categoría, elija entre las opciones existentes o cree una nueva categoría.For Category, choose from existing options or create a new category.

  6. Examine la lista Definiciones disponibles [mitad derecha de la página Initiative definition (definición de iniciativa)] y seleccione las definiciones de directiva que le gustaría agregar a esta iniciativa.Browse through the list of Available Definitions (right half of Initiative definition page) and select the policy definition(s) you would like to add to this initiative. En el caso de la iniciativa Get Secure (Estar protegido), para agregar las siguientes definiciones de directiva integradas, seleccione + junto a la información de definición de directiva o seleccione una fila de definición de directiva y, luego, la opción + Agregar de la página de detalles:For the Get Secure initiative, add the following built-in policy definitions by selecting the + next to the policy definition information or selecting a policy definition row and then the + Add option in the details page:

    • Ubicaciones permitidasAllowed locations
    • Supervisión de la falta de Endpoint Protection en Azure Security CenterMonitor missing Endpoint Protection in Azure Security Center
    • Se deben proteger las reglas del grupo de seguridad de red para máquinas virtuales accesibles desde InternetNetwork Security Group Rules for Internet facing virtual machines should be hardened
    • Azure Backup debe estar habilitado para Virtual Machines.Azure Backup should be enabled for Virtual Machines
    • El cifrado de discos debe aplicarse en máquinas virtualesDisk encryption should be applied on virtual machines

    Después de seleccionar la definición de directiva de la lista, se agrega cada una debajo de Categoría.After selecting the policy definition from the list, each is added below Category.

    Revisar los parámetros de definición de iniciativa
  7. Si una definición de directiva que se va a agregar a la iniciativa tiene parámetros, se muestran bajo el nombre de la directiva en el área Categoría.If a policy definition being added to the initiative has parameters, they're shown under the policy name in the area under Category area. El valor puede establecerse en "Establecer valor" (de forma rígida para todas las asignaciones de esta iniciativa) o en "Utilice el parámetro de iniciativa" (establecido durante cada asignación de iniciativa).The value can be set to either 'Set value' (hard coded for all assignments of this initiative) or 'Use Initiative Parameter' (set during each initiative assignment). Si se selecciona "Establecer valor", la lista desplegable situada a la derecha de Valores permite escribir o seleccionar los valores.If 'Set value' is selected, the drop-down to the right of Value(s) allows entering or selecting the value(s). Si se selecciona "Utilice el parámetro de iniciativa", se muestra una nueva sección llamada Parámetros de iniciativa que permite definir el parámetro que se va a establecer durante la asignación de iniciativa.If 'Use Initiative Parameter' is selected, a new Initiative parameters section is displayed allowing you to define the parameter that is set during initiative assignment. Los valores permitidos en este parámetro de iniciativa pueden restringir aún más lo que puede establecerse durante la asignación de iniciativa.The allowed values on this initiative parameter can further restrict what may be set during initiative assignment.

    Cambiar los parámetros de definición de iniciativa desde los valores permitidos

    Nota

    En el caso de algunos parámetros strongType, la lista de valores no se puede determinar automáticamente.In the case of some strongType parameters, the list of values cannot be automatically determined. En estos casos, se muestran puntos suspensivos a la derecha de la fila de parámetros.In these cases, an ellipsis appears to the right of the parameter row. Al seleccionarlos se abre la página "Ámbito de parámetro (<nombre del parámetro>)".Selecting it opens the 'Parameter scope (<parameter name>)' page. En esta página, seleccione la suscripción que se usará para proporcionar las opciones de valor.On this page, select the subscription to use for providing the value options. Este ámbito de parámetro solo se usa durante la creación de la definición de iniciativa y no influye en la evaluación de directivas ni en el ámbito de la iniciativa cuando se asigna.This parameter scope is only used during creation of the initiative definition and has no impact on policy evaluation or the scope of the initiative when assigned.

    Establezca el parámetro "Ubicaciones permitidas" en "Este de EE. UU. 2" y deje el resto con el valor predeterminado "AuditifNotExists".Set the 'Allowed locations' parameter to 'East US 2' and leave the others as the default 'AuditifNotExists'.

  8. Seleccione Guardar.Select Save.

Creación de una definición de iniciativa de directiva con la CLI de AzureCreate a policy initiative definition with Azure CLI

Puede crear una definición de iniciativa de directiva mediante la CLI de Azure con el comando az policy set-definition.You can create a policy initiative definition using Azure CLI with the az policy set-definition command. Para crear una definición de iniciativa de directiva con una definición de directiva existente, use el ejemplo siguiente:To create a policy initiative definition with an existing policy definition, use the following example:

az policy set-definition create -n readOnlyStorage --definitions '[
        {
            "policyDefinitionId": "/subscriptions/mySubId/providers/Microsoft.Authorization/policyDefinitions/storagePolicy",
            "parameters": { "storageSku": { "value": "[parameters(\"requiredSku\")]" } }
        }
    ]' \
    --params '{ "requiredSku": { "type": "String" } }'

Creación de una definición de iniciativa de directiva con Azure PowerShellCreate a policy initiative definition with Azure PowerShell

Puede crear una definición de iniciativa de directiva mediante Azure PowerShell con el cmdlet New-AzPolicySetDefinition.You can create a policy initiative definition using Azure PowerShell with the New-AzPolicySetDefinition cmdlet. Para crear una definición de iniciativa de directiva con una definición de directiva existente, use el siguiente archivo de definición de iniciativa de directiva como VMPolicySet.json:To create a policy initiative definition with an existing policy definition, use the following policy initiative definition file as VMPolicySet.json:

[
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
        "parameters": {
            "tagName": {
                "value": "Business Unit"
            },
            "tagValue": {
                "value": "Finance"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/464dbb85-3d5f-4a1d-bb09-95a9b5dd19cf"
    }
]
New-AzPolicySetDefinition -Name 'VMPolicySetDefinition' -Metadata '{"category":"Virtual Machine"}' -PolicyDefinition C:\VMPolicySet.json

Asignación de una definición de iniciativaAssign an initiative definition

  1. Seleccione Definiciones en Creación en el lado izquierdo de la página de Azure Policy.Select Definitions under Authoring in the left side of the Azure Policy page.

  2. Busque la definición de directiva Get Secure (Estar protegido) que creó anteriormente y selecciónela.Locate the Get Secure initiative definition you previously created and select it. Seleccione Asignar en la parte superior de la página para abrir la página Get Secure: Assign initiative (Estar protegido: asignar iniciativa).Select Assign at the top of the page to open to the Get Secure: Assign initiative page.

    Asignar una definición desde la página Definición de iniciativa

    También puede hacer clic con el botón derecho en la fila seleccionada o seleccionar los puntos suspensivos al final de la fila de un menú contextual.You can also right-click on the selected row or select the ellipsis at the end of the row for a contextual menu. A continuación, seleccione Asignar.Then select Assign.

    Opciones alternativas para una iniciativa
  3. Rellene la página Get Secure: Assign Initiative (Estar protegido: asignar iniciativa) con la siguiente información de ejemplo.Fill out the Get Secure: Assign Initiative page by entering the following example information. Puede usar su propia información.You can use your own information.

    • Ámbito: el grupo de administración o la suscripción donde guardó la iniciativa se convertirán en predeterminados.Scope: The management group or subscription you saved the initiative to becomes the default. También puede cambiar ámbito para asignar la iniciativa a un grupo de recursos o una suscripción de la ubicación de almacenamiento.You can change scope to assign the initiative to a subscription or resource group within the save location.
    • Exclusiones: configure los recursos del ámbito para evitar que se les aplique la asignación de iniciativa.Exclusions: Configure any resources within the scope to prevent the initiative assignment from being applied to them.
    • Nombre de la asignación y definición de la iniciativa: Get Secure (Estar protegido) (rellenado previamente como nombre de la iniciativa que se va a asignar).Initiative definition and Assignment name: Get Secure (pre-populated as name of initiative being assigned).
    • Descripción: esta asignación de iniciativa está adaptada para aplicar este grupo de definiciones de directiva.Description: This initiative assignment is tailored to enforce this group of policy definitions.
    • Aplicación de directivas: Deje el valor predeterminado Habilitado.Policy enforcement: Leave as the default Enabled.
    • Asignada por: se rellena automáticamente en función de quién ha iniciado sesión.Assigned by: Automatically filled based on who is logged in. Este campo es opcional, así que se pueden especificar valores personalizados.This field is optional, so custom values can be entered.
  4. Seleccione la pestaña Parámetros en la parte superior del asistente.Select the Parameters tab at the top of the wizard. Si configuró un parámetro de iniciativa en pasos anteriores, establezca un valor aquí.If you configured an initiative parameter in previous steps, set a value here.

  5. Seleccione la pestaña Corrección en la parte superior del asistente.Select the Remediation tab at the top of the wizard. Deje desactivada la casilla Crear una identidad administrada.Leave Create a Managed Identity unchecked. Esta casilla se debe activar cuando la directiva o la iniciativa que se asigna incluye una directiva con los efectos deployIfNotExists o modify.This box must be checked when the policy or initiative being assigned includes a policy with the deployIfNotExists or modify effects. Como no es el caso de la directiva usada en este tutorial, déjela en blanco.As the policy used for this tutorial doesn't, leave it blank. Para más información, consulte las identidades administradas y cómo funciona la seguridad de corrección.For more information, see managed identities and how remediation security works.

  6. Seleccione la pestaña Revisar y crear en la parte superior del asistente.Select the Review + create tab at the top of the wizard.

  7. Revise las selecciones y, luego, seleccione Crear en la parte inferior de la página.Review your selections, then select Create at the bottom of the page.

Comprobación del cumplimiento inicialCheck initial compliance

  1. Seleccione Cumplimiento en el panel izquierdo de la página de Azure Policy.Select Compliance in the left side of the Azure Policy page.

  2. Busque la iniciativa Get Secure (Estar protegido).Locate the Get Secure initiative. Es probable que Estado de compatibilidad se encuentre aún como No iniciado.It's likely still in Compliance state of Not started. Seleccione la iniciativa para obtener información detallada sobre el progreso de la asignación.Select the initiative to get full details on the progress of the assignment.

    Página de cumplimiento de iniciativas: evaluaciones no iniciadas
  3. Una vez que se haya completado la asignación de la iniciativa, la página de conformidad se actualiza con el Estado de compatibilidadConforme.Once the initiative assignment has been completed, the compliance page is updated with the Compliance state of Compliant.

    Página de cumplimiento de iniciativas: recursos compatibles
  4. Al seleccionar cualquier directiva de la página de cumplimiento de la iniciativa se abre la página de detalles de cumplimiento de esa directiva.Selecting any policy on the initiative compliance page opens the compliance details page for that policy. Esta página proporciona los detalles de cumplimiento a nivel de recurso.This page provides details at the resource level for compliance.

Exclusión de un recurso no conforme o denegado mediante ExclusiónExempt a non-compliant or denied resource using Exclusion

Después de asignar una iniciativa de directiva para exigir una ubicación específica, cualquier otro recurso creado en una ubicación diferente se deniega.After assigning a policy initiative to require a specific location, any resource created in a different location is denied. En esta sección se va a examinar cómo resolver una solicitud denegada para crear un recurso mediante la creación de una exclusión de un único grupo de recursos.In this section, you walk through resolving a denied request to create a resource by creating an exclusion on a single resource group. La exclusión impide el cumplimiento de la directiva (o iniciativa) en ese grupo de recursos.The exclusion prevents enforcement of the policy (or initiative) on that resource group. En el ejemplo siguiente, se permite cualquier ubicación en el grupo de recursos excluido.In the following example, any location is allowed in the excluded resource group. Una exclusión se puede aplicar a una suscripción, a un grupo de recursos o a recursos individuales.An exclusion can apply to a subscription, a resource group, or an individual resources.

Las implementaciones que ha impedido una directiva o iniciativa asignada se pueden ver en el grupo de recursos de destino de la implementación: seleccione Implementaciones en el lado izquierdo de la página y luego seleccione el valor de Nombre de la implementación de la implementación con errores.Deployments prevented by an assigned policy or initiative can be viewed on the resource group targeted by the deployment: Select Deployments in the left side of the page, then select the Deployment Name of the failed deployment. El recurso denegado se muestra con el estado Prohibido.The resource that was denied is listed with a status of Forbidden. Para determinar la directiva o iniciativa y la asignación que denegaron el recurso, seleccione Failed. Click here for details -> (Error. Haga clic aquí para ver los detalles ->) en la página de información general de la implementación.To determine the policy or initiative and assignment that denied the resource, select Failed. Click here for details -> on the Deployment Overview page. Una ventana se abre en el lado derecho de la página con la información sobre el error.A window opens on the right side of the page with the error information. En Detalles del error se muestran los identificadores únicos globales de los objetos de directiva relacionados.Under Error Details are the GUIDs of the related policy objects.

Implementación denegada por la asignación de directiva

En la página de Azure Policy: Seleccione Cumplimiento en el lado izquierdo de la página y seleccione la iniciativa Get Secure (Estar protegido).On the Azure Policy page: Select Compliance in the left side of the page and select the Get Secure policy initiative. En esta página, hay un aumento en el recuento de denegaciones para los recursos bloqueados.On this page, there is an increase in the Deny count for blocked resources. En la pestaña Eventos se muestran detalles sobre quién intentó crear o implementar el recurso que se denegó en la definición de directiva.Under the Events tab are details about who tried to create or deploy the resource that was denied by the policy definition.

Información general del cumplimiento de una directiva asignada

En este ejemplo, Trent Baker, uno de los especialistas en virtualización sénior de Contoso, estaba haciendo el trabajo requerido.In this example, Trent Baker, one of Contoso's Sr. Virtualization specialists, was doing required work. Es necesario conceder a Trent un espacio para una excepción.We need to grant Trent a space for an exception. Cree el grupo de recursos LocationsExcluded y, luego, concédale una excepción a esta asignación de directiva.Created a new resource group, LocationsExcluded, and next grant it an exception to this policy assignment.

Actualización de la asignación con la exclusiónUpdate assignment with exclusion

  1. Seleccione Asignaciones en Creación en el lado izquierdo de la página de Azure Policy.Select Assignments under Authoring in the left side of the Azure Policy page.

  2. Examine todas las asignaciones de directiva y abra la que se llama Get Secure (Estar protegido).Browse through all policy assignments and open the Get Secure policy assignment.

  3. Para establecer el valor de Exclusión, seleccione los puntos suspensivos y seleccione el grupo de recursos que quiere excluir; en este ejemplo, LocationsExcluded.Set the Exclusion by selecting the ellipsis and selecting the resource group to exclude, LocationsExcluded in this example. Seleccione Agregar al ámbito seleccionado y, luego, seleccione Guardar.Select Add to Selected Scope and then select Save.

    Agregar un grupo de recursos excluido a la asignación de directiva

    Nota

    Dependiendo de la definición de directiva y de su efecto, es posible que la exclusión también se conceda a recursos específicos dentro de un grupo de recursos en el ámbito de la asignación.Depending on the policy definition and its effect, the exclusion could also be granted to specific resources within a resource group inside the scope of the assignment. Dado que se usó un efecto deny en este tutorial, no tendría sentido establecer la exclusión en un recurso concreto que ya existe.As a Deny effect was used in this tutorial, it wouldn't make sense to set the exclusion on a specific resource that already exists.

  4. Seleccione Revisar y guardar y, luego, elija Guardar.Select Review + save and then select Save.

En esta sección, resolvió la solicitud denegada creando una exclusión en un único grupo de recursos.In this section, you resolved the denied request by creating an exclusion on a single resource group.

Limpieza de recursosClean up resources

Si terminó de trabajar con los recursos de este tutorial, use los pasos siguientes para eliminar todas las asignaciones o definiciones de directiva creadas anteriormente:If you're done working with resources from this tutorial, use the following steps to delete any of the policy assignments or definitions created above:

  1. Seleccione Definiciones (o Asignaciones si trata de eliminar una asignación) en Creación en el lado izquierdo de la página de Azure Policy.Select Definitions (or Assignments if you're trying to delete an assignment) under Authoring in the left side of the Azure Policy page.

  2. Busque la nueva definición de iniciativa o directiva (o asignación) que quiere quitar.Search for the new initiative or policy definition (or assignment) you want to remove.

  3. Haga clic con el botón derecho en la fila o seleccione los puntos suspensivos al final de la definición (o asignación) y elija Eliminar definición (o Eliminar asignación ).Right-click the row or select the ellipses at the end of the definition (or assignment), and select Delete definition (or Delete assignment).

RevisarReview

En este tutorial, ha realizado correctamente las tareas siguientes:In this tutorial, you successfully accomplished the following tasks:

  • Ha asignado una directiva para aplicar una condición a los recursos que se creen en el futuroAssigned a policy to enforce a condition for resources you create in the future
  • Ha creado y asignado una definición de iniciativa para realizar un seguimiento del cumplimiento para varios recursosCreated and assign an initiative definition to track compliance for multiple resources
  • Ha resuelto un recurso que no cumplía o que se había denegadoResolved a non-compliant or denied resource
  • Ha implementado una nueva directiva en toda la organizaciónImplemented a new policy across an organization

Pasos siguientesNext steps

Para más información sobre las estructuras de las definiciones de directiva, consulte este artículo:To learn more about the structures of policy definitions, look at this article: