Sdílet prostřednictvím


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

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 bublinového popisku. 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 rozšíření zásad popisků, které vám umožní dále omezit popisky z clusteru.

Typy zásad popisku

Zásady bublinového 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 popisku

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

  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 v clusteru:

    .show cluster policy callout
    

    Snímek obrazovky se stránkou s omezenými dotazy 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í volat jiné služby, 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 neměnných zásad popisku

Pokud chcete omezit odchozí přístup do clusteru, musíte vyprázdnit seznam neměnných zásad 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 Exploreru.

  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 odkazující 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. Tím zabráníte inicializování volání jiných služeb, jak je znázorněno v následujícím příkladu.

    Snímek obrazovky se stránkou s omezeným dotazem zobrazující neměnnou chybu zásad bublinového popisku

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

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

    Snímek obrazovky se stránkou s omezeným dotazem zobrazující žádné neměnné zásady popisku

Přidání plně kvalifikovaných názvů domén do bublinových 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 přidat do allowedFqdnList seznamu clusteru. Můžete to provést spuštěním provedením změn v šabloně ARM clusteru Azure Data Exploreru.

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

    Příklad souboru šablony ARM s názvem "template.json" s vlastností allowedFqdnList nastavenou 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 odkazující 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. Přidáním plně kvalifikovaného názvu domény do seznamu povolených názvů budete moct volat 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 s omezeným dotazem zobrazující nakonfigurovanou zásadu popisku

    Poznámka:

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