Freigeben über


Einschränken des ausgehenden Zugriffs von Ihrem Azure Data Explorer-Cluster

Das Einschränken des ausgehenden Zugriffs von ihrem Clusters ist wichtig, um Risiken wie Datenexfiltration zu verringern. Ein böswilliger Akteur könnte möglicherweise eine externe Tabelle zu einem Speicherkonto erstellen und große Datenmengen extrahieren. Sie können ausgehenden Zugriff auf Clusterebene steuern, indem Sie Calloutrichtlinien definieren. Die Verwaltung von Calloutrichtlinien ermöglicht Ihnen das Zulassen von ausgehendem Zugriff auf angegebene SQL-, Speicher- oder andere Endpunkte.

In diesem Artikel erfahren Sie, wie Sie eine Erweiterung für Calloutrichtlinien verwenden, mit der Sie ausgehende Aufrufe von Ihrem Cluster weiter einschränken können.

Typen von Calloutrichtlinien

Calloutrichtlinien können wie folgt unterteilt werden:

  • Unveränderliche Calloutrichtlinien: Dies sind die Standardrichtlinien eines Clusters. Sie sind vorkonfiguriert und können nicht geändert werden.
  • Clustercalloutrichtlinien: Dies sind Richtlinien, die Sie mithilfe von Calloutrichtlinienbefehlen ändern können.

Voraussetzungen

Ausführen von Befehlen für Calloutrichtlinien

  1. Melden Sie sich bei der Azure Data Explorer-Webbenutzeroberfläche an.

  2. Wählen Sie im linken Menü Abfrage aus, und stellen Sie dann eine Verbindung mit Ihrem Cluster her.

  3. Führen Sie im Abfragefenster die folgende Abfrage aus, um die Liste der unveränderlichen Calloutrichtlinien in Ihrem Cluster zu überprüfen:

    .show cluster policy callout
    

    Screenshot der Seite für eingeschränkte Abfragen mit den unveränderlichen Callout-Richtlinien.

Das folgende Beispiel stellt unveränderliche Calloutrichtlinien dar. Beachten Sie, dass die Liste einige Standardregeln enthält, die ausgehende Aufrufe an andere Dienste zulassen, wie etwa externe Daten.

[
   {
      "CalloutType":"kusto",
      "CalloutUriRegex":"[a-z0-9]{3,22}\\.(\\w+\\.)?kusto(mfa)?\\.windows\\.net/?$",
      "CanCall":true
   },
   {
      "CalloutType":"kusto",
      "CalloutUriRegex":"//[a-z0-9]{3,22}\\.[a-z0-9-]{1,50}\\.(kusto\\.azuresynapse|kustodev\\.azuresynapse-dogfood)\\.net/?$",
      "CanCall":true
   },
   {
      "CalloutType":"kusto",
      "CalloutUriRegex":"^https://([A-Za-z0-9]+\\.)?(ade|adx)\\.(int\\.)?(applicationinsights|loganalytics|monitor)\\.(io|azure(\\.com|\\.us|\\.cn))/",
      "CanCall":true
   },
   {
      "CalloutType":"sql",
      "CalloutUriRegex":"[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9]?\\.database\\.windows\\.net/?$",
      "CanCall":true
   },
   {
      "CalloutType":"sql",
      "CalloutUriRegex":"[a-z0-9-]{0,61}?(-ondemand)?\\.sql\\.azuresynapse(-dogfood)?\\.net/?$",
      "CanCall":true
   },
   {
      "CalloutType":"external_data",
      "CalloutUriRegex":".*",
      "CanCall":true
   },
   {
      "CalloutType":"azure_digital_twins",
      "CalloutUriRegex":"[A-Za-z0-9\\-]{3,63}\\.api\\.[A-Za-z0-9]+\\.digitaltwins\\.azure\\.net/?$",
      "CanCall":true
   }
]

Leeren der Liste der unveränderlichen Calloutrichtlinien

Zum Einschränken des ausgehenden Zugriffs von Ihrem Cluster müssen Sie die Liste der unveränderlichen Calloutrichtlinien leeren. Dazu können Sie den folgenden Befehl mithilfe der Azure CLI oder anderer Tools ausführen, indem Sie die Azure Data Explorer-APIs aufrufen.

  1. Auslösen einer ARM-Bereitstellung mithilfe der Azure CLI mit einer aktualisierten ARM-Vorlage:

    ARM-Beispielvorlagendatei mit dem Namen „template.json“ und der auf Enabled festgelegten Eigenschaft restrictOutboundNetworkAccess:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      ...
      "resources": [
          {
              "type": "Microsoft.Kusto/Clusters",
              "apiVersion": "2021-02-01",
              ...
              "properties": {
                  ...
                  "restrictOutboundNetworkAccess": "Enabled",
                  ...
              }
          }
          ...
      ]
    }
    

    Beispielaufruf mithilfe der Azure CLI, die auf die oben genannte Vorlage verweist.

    # Replace the <...> placeholders with the correct values
    az deployment group create   --name RestrictOutboundAccess   --resource-group <resource group>   --template-file ./template.json
    

    Durch das Aktualisieren der Clustereigenschaft restrictOutboundNetworkAccess werden alle unveränderlichen Richtlinien auf Ihrem Cluster entfernt. Dadurch wird verhindert, dass Aufrufe an andere Dienste eingeleitet werden, wie im folgenden Beispiel dargestellt.

    Screenshot der Seite mit eingeschränkten Abfragen, der einen unveränderlichen Callout-Richtlinienfehler zeigt.

  2. Führen Sie den folgenden Befehl noch einmal aus, und überprüfen Sie, ob eine leere Liste zurückgegeben wird:

    .show cluster policy callout 
    | where EntityType == "Cluster immutable policy"
    

    Screenshot der Seite für eingeschränkte Abfragen, die keine unveränderlichen Callout-Richtlinien zeigt.

Hinzufügen von FQDNs zu den ausgehenden Aufrufen unter eingeschränkten Bedingungen

Wenn Sie den ausgehenden Zugriff auf einen bestimmten FQDN zulassen möchten, können Sie ihn der allowedFqdnList-Liste für Ihren Cluster hinzufügen. Dazu können Sie die ARM-Vorlage des Azure-Data Explorer-Clusters ändern.

  1. Auslösen einer ARM-Bereitstellung mithilfe der Azure CLI mit einer aktualisierten ARM-Vorlage:

    ARM-Beispielvorlagendatei mit dem Namen „template.json“ mit der auf ["some.sql.azuresynapse.net", "..."] festgelegten Eigenschaft allowedFqdnList:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      ...
      "resources": [
          {
              "type": "Microsoft.Kusto/Clusters",
              "apiVersion": "2021-02-01",
              ...
              "properties": {
                  ...
                  "restrictOutboundNetworkAccess": "Enabled",
                  "allowedFqdnList": ["some.sql.azuresynapse.net", "..."]
                  ...
              }
          }
          ...
      ]
    }
    

    Beispielaufruf mithilfe der Azure CLI, die auf die oben genannte Vorlage verweist.

    # Replace the <...> placeholders with the correct values
    az deployment group create   --name ConfigureAllowedFqdnList   --resource-group <resource group>   --template-file ./template.json
    
  2. Durch Hinzufügen des FQDN zur Positivliste können Sie ausgehende Aufrufe an den angegebenen FQDN vornehmen. Sie können das Ergebnis der Bereitstellung durch Ausführen des folgenden Befehls überprüfen:

    .show cluster policy callout 
    | project Policy=parse_json(Policy)
    | mv-expand Policy
    | where Policy.CalloutType == "sql" 
    

    Screenshot der Seite für eingeschränkte Abfragen mit einer konfigurierten Callout-Richtlinie.

    Hinweis

    Es gibt einen Satz von Standardrichtlinien, die für Azure Data Explorer festgelegt sind, um mit seiner internen Speicherebene zu kommunizieren. Sie stellen kein Risiko für Datenexfiltration dar.