Azure Policy como origen de Event Grid

En este artículo se proporcionan las propiedades y los esquemas de los eventos de Azure Policy.  Para una introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid. También proporciona una lista de inicios rápidos y tutoriales para usar Azure Policy como un origen de eventos.

Tipos de eventos disponibles

Azure Policy emite los siguientes tipos de eventos:

Tipo de evento Descripción
Microsoft.PolicyInsights.PolicyStateCreated Se genera cuando se crea un estado de cumplimiento de directiva.
Microsoft.PolicyInsights.PolicyStateChanged Se genera cuando se cambia un estado de cumplimiento de directiva.
Microsoft.PolicyInsights.PolicyStateDeleted Se genera cuando se elimina un estado de cumplimiento de directiva.

Propiedades de evento

Un evento tiene los siguientes datos de nivel superior:

Propiedad Tipo Descripción
topic string Ruta de acceso completa a los recursos del origen del evento. En este campo no se puede escribir. Event Grid proporciona este valor.
subject string Id. completo del recurso para el que se cambia el estado de cumplimiento, incluido el nombre del recurso y el tipo de recurso. Usa el formato /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>
eventType string Uno de los tipos de eventos registrados para este origen de eventos.
eventTime string La hora de generación del evento en función de la hora UTC del proveedor.
id string Identificador único para el evento
data object Datos de evento de Azure Policy.
dataVersion string Versión del esquema del objeto de datos. El publicador define la versión del esquema.
metadataVersion string Versión del esquema de los metadatos del evento. Event Grid define el esquema de las propiedades de nivel superior. Event Grid proporciona este valor.

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Descripción
timestamp string La hora (en UTC) en la que Azure Policy examinó el recurso. En el caso de los eventos de ordenación, use esta propiedad en lugar de las propiedades de nivel superior eventTime o time.
policyAssignmentId string El id. de recurso de la asignación de directiva.
policyDefinitionId string El id. de recurso de la definición de directiva.
policyDefinitionReferenceId string Id. de referencia de la definición de directiva dentro de la definición de la iniciativa, si la asignación de la directiva es para una iniciativa. Puede estar vacío.
complianceState string El estado de cumplimiento del recurso con respecto a la asignación de directiva.
subscriptionId string Identificador de suscripción del recurso.
complianceReasonCode string Código de motivo de cumplimiento. Puede estar vacío.

Evento de ejemplo

En el ejemplo siguiente, se muestra el esquema de un evento de creación de estado de directiva con ámbito en el nivel de suscripción:

[{
    "id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
    "topic": "/subscriptions/<SubscriptionID>",
    "subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
    "data": {
        "timestamp": "2021-03-27T18:37:42.4496956Z",
        "policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
        "policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
        "policyDefinitionReferenceId": "",
        "complianceState": "NonCompliant",
        "subscriptionId": "<subscription-id>",
        "complianceReasonCode": ""
    },
    "eventType": "Microsoft.PolicyInsights.PolicyStateCreated",
    "eventTime": "2021-03-27T18:37:42.5241536Z",
    "dataVersion": "1",
    "metadataVersion": "1"
}]

El esquema de un evento cambiado de estado de directiva con ámbito en el nivel de suscripción es similar:

[{
    "id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
    "topic": "/subscriptions/<SubscriptionID>",
    "subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
    "data": {
        "timestamp": "2021-03-27T18:37:42.4496956Z",
        "policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
        "policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
        "policyDefinitionReferenceId": "",
        "complianceState": "NonCompliant",
        "subscriptionId": "<subscription-id>",
        "complianceReasonCode": ""
    },
    "eventType": "Microsoft.PolicyInsights.PolicyStateChanged",
    "eventTime": "2021-03-27T18:37:42.5241536Z",
    "dataVersion": "1",
    "metadataVersion": "1"
}]

En el ejemplo siguiente, se muestra el esquema de un evento de creación de estado de directiva con ámbito en el nivel de grupo de administración:

[{
    "id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
    "topic": "/tenants/<tenantId>/providers/Microsoft.Management/managementGroups/<managementGroupId>",
    "subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
    "data": {
        "timestamp": "2021-03-27T18:37:42.4496956Z",
        "policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
        "policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
        "policyDefinitionReferenceId": "",
        "complianceState": "NonCompliant",
        "subscriptionId": "<subscription-id>",
        "complianceReasonCode": ""
    },
    "eventType": "Microsoft.PolicyInsights.PolicyStateCreated",
    "eventTime": "2021-03-27T18:37:42.5241536Z",
    "dataVersion": "1",
    "metadataVersion": "1"
}]

El esquema de un evento cambiado de estado de directiva con ámbito en el nivel de grupo de administración es similar:

[{
    "id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
    "topic": "/tenants/<tenantId>/providers/Microsoft.Management/managementGroups/<managementGroupId>",
    "subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
    "data": {
        "timestamp": "2021-03-27T18:37:42.4496956Z",
        "policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
        "policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
        "policyDefinitionReferenceId": "",
        "complianceState": "NonCompliant",
        "subscriptionId": "<subscription-id>",
        "complianceReasonCode": ""
    },
    "eventType": "Microsoft.PolicyInsights.PolicyStateChanged",
    "eventTime": "2021-03-27T18:37:42.5241536Z",
    "dataVersion": "1",
    "metadataVersion": "1"
}]

Pasos siguientes