Sdílet prostřednictvím


Omezení odchozího přístupu z clusteru Azure Data Explorer

Omezení odchozího přístupu ke clusteru je důležité ke zmírnění rizik, jako je exfiltrace dat. Objekt actor se zlými úmysly může potenciálně vytvořit externí tabulku pro účet úložiště a extrahovat velké objemy dat. Odchozí přístup můžete řídit na úrovni clusteru definováním zásad popisků. Správa zásad popisků umožňuje povolit odchozí přístup k zadanému SQL, úložišti nebo jiným koncovým bodům.

V tomto článku se dozvíte, jak o rozšíření zásad popisků, které vám umožní dále omezit volání z clusteru.

Typy zásad popisku

Zásady popisku je možné rozdělit následujícím způsobem:

  • Neměnné zásady popisku: Jedná se o standardní zásady clusteru. Jsou předkonfigurované a nedají se upravovat.
  • Zásady popisku clusteru: Jedná se o zásady, které můžete upravit pomocí příkazů zásad popisku.

Požadavky

Spuštění příkazů zásad bublinových popisů

  1. Přihlaste se k webovému uživatelskému rozhraní Azure Data Explorer.

  2. V nabídce vlevo vyberte Dotaz a pak se připojte ke clusteru.

  3. V okně dotazu spusťte následující dotaz a zkontrolujte seznam neměnných zásad popisku ve vašem clusteru:

    .show cluster policy callout
    

    Snímek obrazovky se stránkou omezeného dotazu zobrazující neměnné zásady popisku

Následující příklad ukazuje neměnné zásady popisku. Všimněte si, že v seznamu je několik výchozích pravidel, která umožňují volání do jiných služeb, jako jsou externí data.

[
   {
      "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
   }
]

Vyprázdnění seznamu zásad neměnných popisku

Pokud chcete omezit odchozí přístup z clusteru, musíte vyprázdnit seznam zásad neměnných popisků. Můžete to provést spuštěním následujícího příkazu pomocí Azure CLI nebo jiných nástrojů voláním rozhraní API azure Data Explorer.

  1. Aktivace nasazení ARM pomocí Azure CLI s aktualizovanou šablonou ARM:

    Příklad souboru šablony ARM s názvem template.json s vlastností restrictOutboundNetworkAccess nastavenou na Povoleno:

    {
      "$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",
                  ...
              }
          }
          ...
      ]
    }
    

    Příklad volání pomocí Azure CLI s odkazem na výše uvedenou šablonu

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

    Aktualizace vlastnosti clusteru restrictOutboundNetworkAccess odebere všechny neměnné zásady v clusteru. To zabraňuje inicializování volání do jiných služeb, jak je znázorněno v následujícím příkladu.

    Snímek obrazovky se stránkou dotazu s omezenými informacemi o chybě zásad neměnného popisku

  2. Znovu spusťte následující příkaz a ověřte, že vrátí prázdný seznam:

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

    Snímek obrazovky se stránkou s omezeným dotazem, na které nejsou žádné neměnné zásady popisku

Přidání plně kvalifikovaných názvů domén do popisků za omezených podmínek

Pokud chcete povolit odchozí přístup ke konkrétnímu plně kvalifikovanému názvu domény, můžete ho allowedFqdnList přidat do seznamu pro váš cluster. Můžete to udělat tak, že provedete změny v šabloně ARM clusteru Azure Data Explorer.

  1. Aktivace nasazení ARM pomocí Azure CLI s aktualizovanou šablonou ARM:

    Příklad souboru šablony ARM s názvem "template.json" s vlastností allowedFqdnListnastavenou na ["some.sql.azuresynapse.net", "..."]:

    {
      "$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", "..."]
                  ...
              }
          }
          ...
      ]
    }
    

    Příklad volání pomocí Azure CLI s odkazem na výše uvedenou šablonu

    # Replace the <...> placeholders with the correct values
    az deployment group create   --name ConfigureAllowedFqdnList   --resource-group <resource group>   --template-file ./template.json
    
  2. Když do seznamu povolených přidáte plně kvalifikovaný název domény, budete moct vytvořit volání pro zadaný plně kvalifikovaný název domény. Výsledek nasazení můžete zkontrolovat spuštěním následujícího příkazu:

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

    Snímek obrazovky se stránkou dotazu s omezenými informacemi o nakonfigurovaných zásadách popisku

    Poznámka

    Pro Azure Data Explorer je nastavená sada výchozích zásad pro komunikaci s interní vrstvou úložiště. Nevystavují žádné riziko exfiltrace dat.