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
- Předplatné Azure. Vytvořte si bezplatný účet Azure.
- Cluster a databáze Azure Data Explorer. Vytvořte cluster a databázi.
Spuštění příkazů zásad bublinových popisů
Přihlaste se k webovému uživatelskému rozhraní Azure Data Explorer.
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 ve vašem 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í 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.
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.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"
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.
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
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"
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.
Související obsah
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro