共用方式為


工作區記憶體帳戶防火牆支援的ARM範本

本文提供 ARM 範本,以及工作區記憶體帳戶防火牆支援所需字段的描述。 工作區記憶體帳戶的防火牆支援是由 ARM 範本屬性 storageAccountFirewall所控制,此屬性必須設定為 Enabled

針對某些工作區設定,例如啟用 合規性安全性配置檔,您可能需要不同的ARM範本。 在此情況下,請連絡您的 Databricks 帳戶小組。

您也可以使用 Terraform 來更新或建立工作區。 請參閱 azurerm_databricks_workspace Terraform 提供者

ARM 範本欄位

下表列出下列 ARM 範本的欄位及其描述,以取得工作區記憶體帳戶的防火牆支援。

欄位 描述
訂用帳戶 要使用的 Azure 訂用帳戶。
資源群組 要使用的資源群組。 這通常是 VNet 的資源群組。
工作區名稱 工作區的名稱。 如果您使用現有的工作區,這必須完全符合現有的工作區名稱。
受控資源組名 工作區的受控資源群組。 這會以表單自動填入預設名稱。 如果您的組織想要自定義受控資源組名,請加以變更。
儲存體帳戶名稱 受控資源群組中的 Azure 工作區記憶體帳戶。 這會以表單自動填入預設名稱。 如果您的組織想要自定義受控資源組名,請加以變更。
工作區 VNet 網路識別碼 VNet 的資源標識碼。 針對現有的工作區,您可以流覽至 Azure 入口網站 中的工作區,以取得此專案。 按一下 [內容] 。 在 [自定義虛擬網络標識符] 底下,按兩下 [以 JSON 檢視值]。 複製欄位中的資源識別碼 value
自訂私人子網名稱 VNet 的私人子網。 針對現有的工作區,您可以流覽至 Azure 入口網站 中的工作區,以取得此專案。 按一下 [內容] 。 在 [自定義私人子網] 下,按兩下 [以 JSON 檢視值]。 複製欄位中的 value 子網名稱。
自訂公用子網名稱 VNet 的公用子網。 針對現有的工作區,您可以流覽至 Azure 入口網站 中的工作區,以取得此專案。 按一下 [內容] 。 在 [自定義公用子網] 下,按兩下 [以 JSON 檢視值]。 複製欄位中的 value 子網名稱。
地點 自動填入以符合主要 [區域 ] 字段之 Azure 區域的簡短名稱。
Access 連接器名稱 針對一般部署,請勿修改此欄位。 Azure Databricks 會建立新的 Access Connector。
受控識別類型 針對一般部署,請勿修改此欄位。
使用者受控識別資源標識碼 針對一般部署,請勿修改此欄位。
記憶體帳戶防火牆 指定是否啟用工作區記憶體帳戶的防火牆支援。
停用公用IP 這必須設定為 true。 這可啟用 安全叢集連線,這是工作區記憶體帳戶防火牆支援的必要專案。
公用網路存取 通常將此設定為 [已啟用]。 如果您啟用 Private Link,請參閱 啟用 Azure Private Link 後端和前端連線 ,以瞭解要使用的設定。
必要的 Nsg 規則 通常將此設定為 [所有規則]。 如果您啟用 Private Link,請參閱 啟用 Azure Private Link 後端和前端連線 ,以瞭解要使用的設定。
已啟用客戶管理的金鑰 如果您使用受控服務或受控磁碟的客戶自控密鑰,請設定這個 true。 請參閱適用於加密的客戶自控金鑰
客戶管理的金鑰類型 如果已啟用客戶管理的金鑰,請為此工作區選取客戶管理的密鑰類型。 選擇 [受控服務]、[ManagedDisks] 或 [兩者]。
受控 Srvc 金鑰保存庫 金鑰標識碼 如果您針對受控服務使用客戶管理的金鑰,請指定金鑰保存庫密鑰標識碼。
受控磁碟 金鑰保存庫 金鑰標識碼 如果您針對受控磁碟使用客戶管理的金鑰,請指定金鑰保存庫金鑰標識碼。
受控磁碟自動輪替 如果您針對受控磁碟使用客戶管理的金鑰,請指定是否要自動挑選新的金鑰版本。

工作區記憶體帳戶防火牆支援的ARM範本

複製下列 ARM 範本,以啟用或停用工作區記憶體帳戶的防火牆支援。 您也可以部署範例 ARM 樣本:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workspaceName": {
      "type": "String",
      "metadata": {
        "description": "The name of the Azure Databricks workspace to update."
      }
    },
    "location": {
      "defaultValue": "[resourceGroup().location]",
      "type": "String",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "managedResourceGroupName": {
      "defaultValue": "[format('databricks-rg-{0}-{1}', parameters('workspaceName'), uniqueString(parameters('workspaceName'), resourceGroup().id))]",
      "type": "String",
      "metadata": {
        "description": "The Managed Resource GroupName of the workspace. Do not change unless using a custom managed resource group name."
      }
    },
    "storageAccountName": {
      "defaultValue": "[concat('dbstorage', uniqueString(resourceGroup().id, subscription().id))]",
      "type": "String",
      "metadata": {
        "description": "Workspace storage account name. Do not change unless using a custom storage account name."
      }
    },
    "workspaceVnetResourceId": {
      "defaultValue": "Required Resource ID of the workspace VNet",
      "type": "String",
      "metadata": {
        "description": "The Resource ID of the injected VNet for the workspace"
      }
    },
    "workspacePrivateSubnetName": {
      "defaultValue": "private-subnet",
      "type": "String",
      "metadata": {
        "description": "The private subnet name for the workspace"
      }
    },
    "workspacePublicSubnetName": {
      "defaultValue": "public-subnet",
      "type": "String",
      "metadata": {
        "description": "The public subnet name for the workspace"
      }
    },
    "accessConnectorName": {
      "defaultValue": "[format('{0}-access-connector', parameters('workspaceName'))]",
      "type": "String",
      "metadata": {
        "description": "The access connector to create for the workspace"
      }
    },
    "ManagedIdentityType": {
      "defaultValue": "SystemAssigned",
      "allowedValues": [
        "SystemAssigned",
        "UserAssigned",
        "SystemAssigned,UserAssigned"
      ],
      "type": "String",
      "metadata": {
        "description": "Access Connector Managed Identity Type"
      }
    },
    "userManagedIdentityResourceId": {
      "defaultValue": "Required For User Mananged Identity",
      "type": "String",
      "metadata": {
        "description": "The Resource Id of the User Managed Identity"
      }
    },
    "storageAccountFirewall": {
      "defaultValue": "Enabled",
      "allowedValues": [
        "Enabled",
        "Disabled"
      ],
      "type": "String",
      "metadata": {
        "description": "Enable or Disable firewall support for workspace default storage feature"
      }
    },
    "disablePublicIp": {
      "defaultValue": true,
      "type": "Bool",
      "metadata": {
        "description": "Specifies whether to deploy Azure Databricks workspace with secure cluster connectivity (SCC) enabled or not (No Public IP)."
      }
    },
    "publicNetworkAccess": {
      "defaultValue": "Enabled",
      "allowedValues": [
        "Enabled",
        "Disabled"
      ],
      "type": "String",
      "metadata": {
        "description": "Indicates whether public network access is allowed to the workspace with private endpoint - possible values are Enabled or Disabled."
      }
    },
    "requiredNsgRules": {
      "defaultValue": "AllRules",
      "allowedValues": [
        "AllRules",
        "NoAzureDatabricksRules"
      ],
      "type": "String",
      "metadata": {
        "description": "Indicates whether to retain or remove the AzureDatabricks outbound NSG rule - possible values are AllRules, NoAzureDatabricksRules (private link)."
      }
    },
    "storageDoubleEncryption": {
      "defaultValue": false,
      "type": "Bool",
      "metadata": {
        "description": "Is double encryption for managed storage enabled ?"
      }
    },
    "customerManagedKeysEnabled": {
      "defaultValue": false,
      "type": "Bool",
      "metadata": {
        "description": "Is CMK for managed services enabled ?"
      }
    },
    "CustomerManagedKeyType": {
      "defaultValue": "ManagedServicesCMK",
      "allowedValues": [
        "ManagedServicesCMK",
        "ManagedDisksCMK",
        "BothCMK"
      ],
      "type": "String",
      "metadata": {
        "description": "Selects the CMK types for this workspace, Managed Services and/or Disks, Workspace storage account is not enabled here"
      }
    },

    "ManagedSrvcKeyVaultKeyId": {
      "defaultValue": "https://kv-url/keys/keyname/version",
      "type": "String",
      "metadata": {
        "description": "The Key Vault Key ID"
      }
    },
    "ManagedDiskKeyVaultKeyId": {
      "defaultValue": "https://kv-url/keys/keyname/version",
      "type": "String",
      "metadata": {
        "description": "The Key Vault Key ID"
      }
    },
    "ManagedDiskAutoRotation": {
      "type": "bool",
      "defaultValue": false,
      "allowedValues": [
        true,
        false
      ],
      "metadata": {
        "description": "Whether managed disk will pick up new key version automatically."
      }
    }
  },
  "variables": {
    "ApiVersion": "2024-05-01",
    "workspaceSku": "premium",
    "systemAssignedObject": {
      "type": "[parameters('ManagedIdentityType')]"
    },
    "userAssignedObject": {
      "type": "[parameters('ManagedIdentityType')]",
      "userAssignedIdentities": {
        "[parameters('userManagedIdentityResourceId')]": {}
      }
    },
    "ConnectorSystemAssigned": {
      "id": "[resourceId('Microsoft.Databricks/accessConnectors', parameters('accessConnectorName'))]",
      "identityType": "[parameters('ManagedIdentityType')]"
    },
    "connectorUserAssigned": {
      "id": "[resourceId('Microsoft.Databricks/accessConnectors', parameters('accessConnectorName'))]",
      "identityType": "[parameters('ManagedIdentityType')]",
      "userAssignedIdentityId": "[parameters('userManagedIdentityResourceId')]"
    },
    "managedSrvcFirst" : "[split(parameters('ManagedSrvcKeyVaultKeyId'),'/keys/')]",
    "managedSrvcSecond" : "[split(variables('managedSrvcFirst')[1],'/')]",
     "managedDiskFirst" : "[split(parameters('ManagedDiskKeyVaultKeyId'),'/keys/')]",
    "managedDiskSecond" : "[split(variables('managedDiskFirst')[1],'/')]",
    "ManagedServicesCMK": {
      "managedServices": {
        "keySource": "Microsoft.Keyvault",
        "keyVaultProperties": {
          "keyVaultUri": "[variables('managedSrvcFirst')[0]]",
          "keyName": "[variables('managedSrvcSecond')[0]]",
          "keyVersion": "[variables('managedSrvcSecond')[1]]"
        }
      }
    },
    "ManagedDisksCMK": {
      "managedDisk": {
        "keySource": "Microsoft.Keyvault",
        "keyVaultProperties": {
          "keyVaultUri": "[variables('managedDiskFirst')[0]]",
          "keyName": "[variables('managedDiskSecond')[0]]",
          "keyVersion": "[variables('managedDiskSecond')[1]]"
        },
        "rotationToLatestKeyVersionEnabled": "[parameters('ManagedDiskAutoRotation')]"
      }
    },
    "BothCMK": {
      "managedServices": {
        "keySource": "Microsoft.Keyvault",
        "keyVaultProperties": {
          "keyVaultUri": "[variables('managedSrvcFirst')[0]]",
          "keyName": "[variables('managedSrvcSecond')[0]]",
          "keyVersion": "[variables('managedSrvcSecond')[1]]"
        }
      },
      "managedDisk": {
        "keySource": "Microsoft.Keyvault",
        "keyVaultProperties": {
          "keyVaultUri": "[variables('managedDiskFirst')[0]]",
          "keyName": "[variables('managedDiskSecond')[0]]",
          "keyVersion": "[variables('managedDiskSecond')[1]]"
        },
        "rotationToLatestKeyVersionEnabled": "[parameters('ManagedDiskAutoRotation')]"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Databricks/accessConnectors",
      "apiVersion": "2023-05-01",
      "name": "[parameters('accessConnectorName')]",
      "location": "[parameters('location')]",
      "identity": "[if(equals(parameters('ManagedIdentityType'),'SystemAssigned'),variables('systemAssignedObject'),variables('userAssignedObject'))]",
      "properties": {}
    },
    {
      "type": "Microsoft.Databricks/workspaces",
      "apiVersion": "[variables('ApiVersion')]",
      "name": "[parameters('workspaceName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Databricks/accessConnectors', parameters('accessConnectorName'))]"
      ],
      "sku": {
        "name": "[variables('workspaceSku')]"
      },
      "properties": {
        "managedResourceGroupId": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', parameters('managedResourceGroupName'))]",
        "publicNetworkAccess": "[parameters('publicNetworkAccess')]",
        "requiredNsgRules": "[parameters('requiredNsgRules')]",
        "accessConnector": "[if(equals(parameters('ManagedIdentityType'),'SystemAssigned'),variables('ConnectorSystemAssigned'),variables('connectorUserAssigned'))]",
        "defaultStorageFirewall": "[parameters('storageAccountFirewall')]",
        "parameters": {
          "customVirtualNetworkId": {
            "value": "[parameters('workspaceVnetResourceId')]"
          },
          "customPrivateSubnetName": {
            "value": "[parameters('workspacePrivateSubnetName')]"
          },
          "customPublicSubnetName": {
            "value": "[parameters('workspacePublicSubnetName')]"
          },
          "enableNoPublicIp": {
            "value": "[parameters('disablePublicIp')]"
          },
          "storageAccountName": {
            "value": "[parameters('storageAccountName')]"
          },
          "requireInfrastructureEncryption": {
            "value": "[parameters('storageDoubleEncryption')]"
          }
        }
      },
      "condition": "[not(parameters('customerManagedKeysEnabled'))]"
    },
    {
      "type": "Microsoft.Databricks/workspaces",
      "apiVersion": "[variables('ApiVersion')]",
      "name": "[parameters('workspaceName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Databricks/accessConnectors', parameters('accessConnectorName'))]"
      ],
      "sku": {
        "name": "[variables('workspaceSku')]"
      },
      "properties": {
        "managedResourceGroupId": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', parameters('managedResourceGroupName'))]",
        "publicNetworkAccess": "[parameters('publicNetworkAccess')]",
        "requiredNsgRules": "[parameters('requiredNsgRules')]",
        "accessConnector": "[if(equals(parameters('ManagedIdentityType'),'SystemAssigned'),variables('ConnectorSystemAssigned'),variables('connectorUserAssigned'))]",
        "encryption": {
          "entities": "[variables(parameters('CustomerManagedKeyType'))]"
        },
        "defaultStorageFirewall": "[parameters('storageAccountFirewall')]",
        "parameters": {
          "customVirtualNetworkId": {
            "value": "[parameters('workspaceVnetResourceId')]"
          },
          "customPrivateSubnetName": {
            "value": "[parameters('workspacePrivateSubnetName')]"
          },
          "customPublicSubnetName": {
            "value": "[parameters('workspacePublicSubnetName')]"
          },
          "enableNoPublicIp": {
            "value": "[parameters('disablePublicIp')]"
          },
          "storageAccountName": {
            "value": "[parameters('storageAccountName')]"
          },
          "requireInfrastructureEncryption": {
            "value": "[parameters('storageDoubleEncryption')]"
          }
        }
      },
      "condition": "[parameters('customerManagedKeysEnabled')]"
    }
  ]
}