限制来自 Azure 数据资源管理器群集的出站访问

限制群集的出站访问对于降低数据外泄等风险非常重要。 恶意参与者可能会为存储帐户创建外部表并提取大量数据。 可以通过启用 受限的出站访问 和配置 基于 FQDN 的允许列表标注策略来控制群集级别的出站访问。

重要

可以为受限出站访问配置基于 FQDN 的允许列表或标注策略。 配置这两者都会导致错误。

数据外泄保护

数据外泄是企业的重要问题,尤其是在敏感数据或专有数据存储在群集中时。 如果没有适当的控制,恶意执行组件或配置不当的系统可能会将数据传输到未经授权的外部目标。

受限出站访问功能有助于降低此风险,因为它允许你执行以下操作:

  • 限制出站流量:通过阻止除显式允许的目标以外的所有出站流量来防止未经授权的数据传输。
  • 使用基于 FQDN 的允许列表控制访问:指定群集可以与之通信的完全限定域名(FQDN),确保仅将数据发送到受信任的终结点。
  • 强制实施标注策略:定义特定类型的出站流量(例如 SQL 或外部数据调用)的精细规则,以便根据组织的安全要求允许或拒绝访问。

通过实施受限的出站访问,企业可以确保其 Azure 数据资源管理器群集免受数据外泄风险的保护,并符合合规性和安全标准。

启用或禁用受限出站访问

可以通过在群集的 ARM 模板中配置 restrictOutboundNetworkAccess 属性,在 ARM 层启用或禁用受限的出站访问。

启用受限出站访问后,无法使用 .alter.alter-merge 群集策略呼叫命令更改呼叫策略。 若要更改弹出策略,请在 ARM 模板中更新 allowedFqdnListallowedCallout 属性,或使用 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 门户启用受限出站访问

  1. Azure 门户中导航到群集。

  2. 导航到 “安全 + 网络>网络>限制出站访问”。

  3. 选择 “已启用” 以启用受限的出站访问。

    网络配置页的屏幕截图,其中显示了未配置 FQDN 的受限出站访问配置。

  4. 选择 保存 以提交配置。

配置基于 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.chinacloudapi.cn"
        ]
      }
    }
  ]
}

示例:使用 Azure 门户允许特定的 FQDN

  1. Azure 门户中导航到群集。

  2. 导航到 “安全 + 网络>网络>限制出站访问”。

  3. 选择 “已启用” 以启用受限的出站访问并配置 FQDN。

    网络配置页的屏幕截图,其中显示了配置了 FQDN 的受限出站访问配置。

  4. 选择 保存 以提交配置。

配置标注策略(预览版)

或者,可以直接在 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\\.chinacloudapi\\.cn/?$",
            "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\\.chinacloudapi\\.cn/?$",
    "outboundAccess": "Allow"
  }
]'

验证受限出站访问和策略

启用受限的出站访问或配置标注策略后,可以通过在 Azure 数据资源管理器 Web UI 中运行以下命令来验证配置:

.show cluster policy callout

此命令显示当前的标注策略和允许的 FQDN。

备注

为群集设置了默认策略以与其内部存储层通信,这不会暴露数据外泄的风险。

局限性

虽然受限制的出站访问提供可靠的安全性,但请务必注意一些限制:

  • 基于 FQDN 的允许列表不支持 webapi 标注。
  • 可以配置基于 FQDN 的白名单或回调策略,但不能同时配置这两者。 尝试配置这两者都会导致配置错误。
  • 群集具有一组默认策略,用于与存储层进行内部通信。 这些策略无法更改,并且不会对数据外泄构成风险。
  • 无法通过 Azure 门户直接配置受限出站访问的呼叫策略。