Autenticación de Azure AD para los registros de Azure Monitor

Azure Monitor puede recopilar datos en los registros de Azure Monitor de varios orígenes. Estos orígenes incluyen agentes en máquinas virtuales, Application Insights, configuración de diagnóstico para recursos de Azure y API de recopilador de datos.

Los agentes de Log Analytics usan una clave de área de trabajo como clave de inscripción para comprobar el acceso inicial y aprovisionar un certificado que se usa para establecer una conexión segura entre el agente y Azure Monitor. Para más información, consulte Envío de datos desde agentes. La API de recopilador de datos usa la misma clave de área de trabajo para autorizar el acceso.

Estas opciones podrían ser complicadas y suponer un riesgo, porque es difícil administrar credenciales específicamente, claves de área de trabajo a gran escala. Puede no aceptar la autenticación local y asegurarse de que solo los datos de telemetría que se autentican exclusivamente mediante identidades administradas y Azure Active Directory (Azure AD) se ingieren en Azure Monitor. Esta característica mejora la seguridad y confiabilidad de la telemetría utilizada para tomar decisiones operativas y empresariales críticas.

Para habilitar la integración de Azure AD para los registros de Azure Monitor y quitar la dependencia de estos secretos compartidos:

  1. Migre al agente de Azure Monitor desde los agentes de Log Analytics. El agente de Azure Monitor no requiere ninguna clave, pero en su lugar requiere una identidad administrada por el sistema.
  2. Deshabilite la autenticación local para las áreas de trabajo de Log Analytics.
  3. Asegúrese de que solo se ingiera telemetría autenticada en los recursos de Application Insights mediante la Autenticación de Azure AD para Application Insights (versión preliminar).

Deshabilitación de la autenticación local para Log Analytics

Después de quitar su dependencia del agente de Log Analytics, puede deshabilitar la autenticación local para las áreas de trabajo de Log Analytics. Luego, puede hacer la ingesta y consulta de la telemetría autenticada exclusivamente por Azure AD.

La deshabilitación de la autenticación local podría limitar la disponibilidad de alguna funcionalidad, en concreto:

  • Los agentes de Log Analytics existentes dejarán de funcionar. Solo se admitirá el agente de Azure Monitor. En el agente de Azure Monitor faltarán algunas funcionalidades disponibles a través del agente de Log Analytics. Entre los ejemplos se incluyen la recopilación de registros personalizados y la recopilación de registros de IIS.
  • La API de recopilador de datos (versión preliminar) no admitirá la autenticación de Azure AD y no estará disponible para la ingesta de datos.
  • VM Insights y Container Insights dejarán de funcionar. La autorización local será el único método de autorización admitido por estas características.

Puede deshabilitar la autenticación local mediante Azure Policy. O bien, puede deshabilitarla mediante programación a través de una plantilla de Azure Resource Manager, PowerShell o la CLI de Azure.

Azure Policy

Azure Policy para DisableLocalAuth no le permitirá crear un área de trabajo de Log Analytics a menos que esta propiedad esté establecida en true. El nombre de la directiva es Log Analytics Workspaces should block non-Azure Active Directory based ingestion. Para aplicar esta definición de directiva a la suscripción, cree una nueva asignación de directiva y asigne la directiva.

Definición de la plantilla de directiva:

{
  "properties": {
    "displayName": "Log Analytics Workspaces should block non-Azure Active Directory based ingestion.",
    "policyType": "BuiltIn",
    "mode": "Indexed",
    "description": "Enforcing log ingestion to require Azure Active Directory authentication prevents unauthenticated logs from an attacker which could lead to incorrect status, false alerts, and incorrect logs stored in the system.",
    "metadata": {
      "version": "1.0.0",
      "category": "Monitoring"
    },
    "parameters": {
      "effect": {
        "type": "String",
        "metadata": {
          "displayName": "Effect",
          "description": "Enable or disable the execution of the policy"
        },
        "allowedValues": [
          "Deny",
          "Audit",
          "Disabled"
        ],
        "defaultValue": "Audit"
      }
    },
    "policyRule": {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.OperationalInsights/workspaces"
          },
          {
            "field": "Microsoft.OperationalInsights/workspaces/features.disableLocalAuth",
            "notEquals": "true"
          }
        ]
      },
      "then": {
        "effect": "[parameters('effect')]"
      }
    }
  },
  "id": "/providers/Microsoft.Authorization/policyDefinitions/e15effd4-2278-4c65-a0da-4d6f6d1890e2",
  "type": "Microsoft.Authorization/policyDefinitions",
  "name": "e15effd4-2278-4c65-a0da-4d6f6d1890e2"
}

Azure Resource Manager

La propiedad DisableLocalAuth se usa para deshabilitar cualquier autenticación local en el área de trabajo de Log Analytics. Cuando se establece en true, esta propiedad exige que la autenticación de Azure AD se use para todos los accesos.

Use la plantilla siguiente de Azure Resource Manager para deshabilitar la autenticación local:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "workspaces_name": {
            "defaultValue": "workspace-name",
            "type": "string"
        },
        "workspace_location": {
          "defaultValue": "region-name",
          "type": "string"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.OperationalInsights/workspaces",
            "apiVersion": "2020-08-01",
            "name": "[parameters('workspaces_name')]",
            "location": "[parameters('workspace_location')]",
            "properties": {
                 "sku": {
                    "name": "PerGB2018"
                },
                "retentionInDays": 30,
                "features": {
                    "disableLocalAuth": false,
                    "enableLogAccessUsingOnlyResourcePermissions": true
                }
            }
        }
    ]
}

Azure CLI

La propiedad DisableLocalAuth se usa para deshabilitar cualquier autenticación local en el área de trabajo de Log Analytics. Cuando se establece en true, esta propiedad exige que la autenticación de Azure AD se use para todos los accesos.

Use los siguientes comandos de la CLI de Azure para deshabilitar la autenticación local:

    az resource update --ids "/subscriptions/[Your subscription ID]/resourcegroups/[Your resource group]/providers/microsoft.operationalinsights/workspaces/[Your workspace name]--api-version "2021-06-01" --set properties.features.disableLocalAuth=True

PowerShell

La propiedad DisableLocalAuth se usa para deshabilitar cualquier autenticación local en el área de trabajo de Log Analytics. Cuando se establece en true, esta propiedad exige que la autenticación de Azure AD se use para todos los accesos.

Use los siguientes comandos de PowerShell para deshabilitar la autenticación local:

    $workspaceSubscriptionId = "[You subscription ID]"
    $workspaceResourceGroup = "[You resource group]"
    $workspaceName = "[Your workspace name]"
    $disableLocalAuth = $false
    
    # login
    Connect-AzAccount
    
    # select subscription
    Select-AzSubscription -SubscriptionId $workspaceSubscriptionId
    
    # get private link workspace resource
    $workspace = Get-AzResource -ResourceType Microsoft.OperationalInsights/workspaces -ResourceGroupName $workspaceResourceGroup -ResourceName $workspaceName -ApiVersion "2021-06-01"
    
    # set DisableLocalAuth
    $workspace.Properties.Features | Add-Member -MemberType NoteProperty -Name DisableLocalAuth -Value $disableLocalAuth -Force
    $workspace | Set-AzResource -Force

Pasos siguientes

Consulte Autenticación de Azure Active Directory para Application Insights (versión preliminar).