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
- Předplatné Azure. Vytvořte bezplatný účet Azure.
- Cluster a databáze Azure Data Exploreru. Vytvořte cluster a databázi.
Spuštění příkazů zásad popisku
Přihlaste se k webovému uživatelskému rozhraní Azure Data Exploreru.
V nabídce vlevo vyberte Dotaz a pak se připojte ke clusteru.
V okně dotazu spusťte následující dotaz a zkontrolujte seznam neměnných zásad popisku v clusteru:
.show cluster policy callout
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.
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.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"
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.
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
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"
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.