限制叢集的輸出存取對於降低數據外流等風險很重要。 惡意執行者可能會建立記憶體帳戶的外部數據表,並擷取大量數據。 您可以啟用 受限制的輸出存取 ,並設定 FQDN 型允許清單 或 註標原則,以控制叢集層級的輸出存取。
這很重要
您可以設定以 FQDN 為基礎的允許清單或用於受限制的輸出存取的呼叫政策。 設定這兩者會導致錯誤。
資料外流保護
數據外洩是企業的重要考慮,特別是當敏感性或專屬數據儲存在叢集中時。 如果沒有適當的控制,惡意執行者或設定錯誤的系統可能會將數據傳輸到未經授權的外部目的地。
受限制的外部存取功能可讓您:
- 限制輸出流量:封鎖所有輸出流量,以防止未經授權的數據傳輸,但明確允許的目的地除外。
- 使用以 FQDN 為基礎的允許清單控制存取:指定叢集可與之通訊的確切完整功能變數名稱(FQDN),確保數據只會傳送至信任的端點。
- 強制執行註標原則:根據組織的安全性需求,定義特定輸出流量類型的細微規則,例如 SQL 或外部數據呼叫,以允許或拒絕存取。
藉由實作受限制的輸出存取,企業可以確保其 Azure 數據總管叢集受到保護,免於數據外泄風險,並符合合規性和安全性標準。
啟用或停用受限制的輸出存取
您可以在叢集的 ARM 範本中設定 restrictOutboundNetworkAccess 屬性,以在 ARM 層啟用或停用限制的出站存取。
啟用受限制的輸出存取之後,您無法使用 .alter 或 .alter-merge 叢集策略外呼命令來更改外呼政策。 若要更改通知原則,請在 ARM 範本中更新 allowedFqdnList 或 allowedCallout 屬性,也可以使用 Azure CLI 進行更新。
範例:啟用受限制的輸出存取
下列 ARM 樣本會為您的叢集啟用受限的輸出存取:
在下列範例中,以您自己的值取代 <ClusterName> 和 <ClusterRegion> 。
{
"$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",
"name": "<ClusterName>",
"location": "<ClusterRegion>",
"properties": {
"restrictOutboundNetworkAccess": "Enabled"
}
}
]
}
範例:停用限制的外部存取
若要停用受限制的輸出存取,請將 restrictOutboundNetworkAccess 屬性設定為 Disabled:
在下列範例中,以您自己的值取代 <ClusterName> 和 <ClusterRegion> 。
{
"$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",
"name": "<ClusterName>",
"location": "<ClusterRegion>",
"properties": {
"restrictOutboundNetworkAccess": "Disabled"
}
}
]
}
範例:使用 Azure 入口網站啟用受限制的輸出存取
流覽至 [安全性 + 網路>>網路] [限制出站存取]。
選取 [已啟用 ] 以啟用受限制的輸出存取。
選取 [儲存 ] 以提交設定。
設定以 FQDN 為基礎的允許清單
啟用受限制的輸出存取時,您可以將特定 FQDN 新增到叢集 ARM 範本中的 `allowedFqdnList` 屬性,以允許它們。
範例:使用 ARM 模板允許特定的 FQDN
下列 ARM 範本允許對特定 FQDN 進行輸出存取,同時啟用受限制的輸出存取:
在下列範例中,以您自己的值取代 <ClusterName> 和 <ClusterRegion> 。
{
"$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",
"name": "<ClusterName>",
"location": "<ClusterRegion>",
"properties": {
"restrictOutboundNetworkAccess": "Enabled",
"allowedFqdnList": [
"example.sql.azuresynapse.net",
"example.blob.core.windows.net"
]
}
}
]
}
範例:使用 Azure 入口網站允許特定的 FQDN
流覽至 [安全性 + 網路>>網路] [限制出站存取]。
選取 [已啟用 ] 以啟用受限制的輸出存取,並設定 FQDN。
選取 [儲存 ] 以提交設定。
設定標註政策(預覽)
或者,您也可以直接在 ARM 範本中或使用 Azure CLI 設定 呼叫原則。 呼叫策略允許您為 SQL、儲存體或其他端點的輸出存取定義特定規則。
備註
您無法透過 Azure 入口網站直接設定具有限制的外向訪問的呼叫政策。
範例:使用 ARM 範本配置提示框策略
下列 ARM 範本會設定呼叫原則以及受限制的對外存取:
在下列範例中,以您自己的值取代 <ClusterName> 和 <ClusterRegion> 。
{
"$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",
"name": "<ClusterName>",
"location": "<ClusterRegion>",
"properties": {
"restrictOutboundNetworkAccess": "Enabled",
"calloutPolicies": [
{
"calloutType": "sql",
"calloutUriRegex": "[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9]?\\.database\\.windows\\.net/?$",
"outboundAccess": "Allow"
},
{
"calloutType": "external_data",
"calloutUriRegex": ".*",
"outboundAccess": "Deny"
}
]
}
}
]
}
範例:使用 Azure CLI 設定呼叫通知原則
您也可以使用 Azure CLI 來設定醒目提示原則。 下列命令會設定叢集的呼叫策略:
在下列範例中,以您自己的值取代 <ResourceGroupName> 和 <ClusterName> 。
az resource update --resource-group <ResourceGroupName> \
--name <ClusterName> \
--resource-type Microsoft.Kusto/clusters \
--set properties.calloutPolicies='[
{
"calloutType": "sql",
"calloutUriRegex": "sqlname\\.database\\.azure\\.com/?$",
"outboundAccess": "Allow"
}
]'
確認受限制的外部存取和政策
啟用受限制的輸出存取或設定註標原則之後,您可以在 Azure 數據總管 Web UI 中執行下列管理命令來驗證設定:
.show cluster policy callout
此命令會顯示目前的回呼政策和允許的 FQDN。
備註
叢集會設定默認原則來與其內部儲存層通訊,這不會公開數據外泄的風險。
局限性
雖然受限制的輸出存取提供強大的安全性,但請務必注意一些限制:
- FQDN 型的允許清單不支援 webapi 呼叫。
- 您可以設定 FQDN 型允許清單或呼叫政策,但不能同時設定兩者。 嘗試設定這兩者會導致設定錯誤。
- 叢集有一組默認原則,可與其儲存層進行內部通訊。 這些原則無法變更,而且不會對數據外泄造成風險。
- 您無法透過 Azure 入口網站直接設定具有限制的外向訪問的呼叫政策。