Bagikan melalui


Templat ARM untuk dukungan firewall untuk akun penyimpanan ruang kerja

Artikel ini memberi Anda templat ARM dan deskripsi bidang yang diperlukan untuk dukungan firewall untuk akun penyimpanan ruang kerja. Dukungan firewall untuk akun penyimpanan ruang kerja Anda dikontrol oleh properti storageAccountFirewalltemplat ARM , yang harus diatur ke Enabled.

Untuk konfigurasi ruang kerja tertentu, seperti mengaktifkan profil keamanan kepatuhan, Anda mungkin memerlukan templat ARM yang berbeda. Dalam hal ini, hubungi tim akun Databricks Anda.

Anda juga dapat memperbarui atau membuat ruang kerja menggunakan Terraform. Lihat penyedia azurerm_databricks_workspace Terraform.

Bidang templat ARM

Tabel ini mencantumkan bidang dan deskripsinya untuk templat ARM di bawah ini untuk dukungan firewall untuk akun penyimpanan ruang kerja.

Bidang Deskripsi
Langganan Langganan Azure untuk digunakan.
Grup sumber daya Grup sumber daya yang akan digunakan. Ini biasanya adalah grup sumber daya VNet Anda.
Nama Ruang Kerja Nama ruang kerja. Jika Anda menggunakan ruang kerja yang ada, ini harus sama persis dengan nama ruang kerja yang ada.
Nama Grup Sumber Daya Terkelola Grup sumber daya terkelola untuk ruang kerja Anda. Ini diisi secara otomatis dalam formulir ke nama default. Ubah jika organisasi Anda ingin menyesuaikan nama grup sumber daya terkelola.
Name Akun Penyimpanan Akun penyimpanan ruang kerja Azure di grup sumber daya terkelola Anda. Ini diisi secara otomatis dalam formulir ke nama default. Ubah jika organisasi Anda ingin menyesuaikan nama grup sumber daya terkelola.
Id Jaringan VNet Ruang Kerja ID sumber daya untuk VNet Anda. Untuk ruang kerja yang sudah ada, Anda bisa mendapatkan ini dengan menavigasi ke ruang kerja di portal Azure. Klik Properti. Di bawah Id jaringan virtual kustom, klik Tampilkan nilai sebagai JSON. Salin ID sumber daya di value bidang .
Nama Subnet Privat Kustom Subnet privat untuk VNet Anda. Untuk ruang kerja yang sudah ada, Anda bisa mendapatkan ini dengan menavigasi ke ruang kerja di portal Azure. Klik Properti. Di bawah Subnet privat kustom, klik Tampilkan nilai sebagai JSON. Salin nama subnet di value bidang .
Nama Subnet Publik Kustom Subnet publik untuk VNet Anda. Untuk ruang kerja yang sudah ada, Anda bisa mendapatkan ini dengan menavigasi ke ruang kerja di portal Azure. Klik Properti. Di bawah Subnet publik kustom, klik Tampilkan nilai sebagai JSON. Salin nama subnet di value bidang .
Location Nama pendek untuk wilayah Azure yang diisi secara otomatis agar sesuai dengan bidang Wilayah utama.
Nama Konektor Akses Untuk penyebaran umum, jangan ubah bidang ini. Azure Databricks membuat Konektor Akses baru.
Jenis Identitas Terkelola Untuk penyebaran umum, jangan ubah bidang ini.
ID Sumber Daya Identitas Terkelola Pengguna Untuk penyebaran umum, jangan ubah bidang ini.
Firewall Akun Penyimpanan Menentukan apakah akan mengaktifkan dukungan firewall untuk akun penyimpanan ruang kerja Anda.
Nonaktifkan Ip Publik Ini harus diatur ke true. Ini memungkinkan konektivitas kluster yang aman, yang diperlukan untuk dukungan firewall untuk akun penyimpanan ruang kerja Anda.
Akses Jaringan Publik Biasanya atur ini ke Diaktifkan. Jika Anda mengaktifkan Private Link, lihat Mengaktifkan koneksi back-end dan front-end Azure Private Link untuk pengaturan apa yang akan digunakan.
Aturan Nsg yang Diperlukan Biasanya atur ini ke Semua Aturan. Jika Anda mengaktifkan Private Link, lihat Mengaktifkan koneksi back-end dan front-end Azure Private Link untuk pengaturan apa yang akan digunakan.
Kunci yang Dikelola Pelanggan Diaktifkan Atur ini benar jika Anda menggunakan kunci yang dikelola pelanggan untuk layanan terkelola atau disk terkelola. Lihat Kunci yang dikelola pelanggan untuk enkripsi.
Jenis Kunci yang Dikelola Pelanggan Jika kunci yang dikelola pelanggan diaktifkan, pilih jenis kunci yang dikelola pelanggan untuk ruang kerja ini. Pilih Layanan Terkelola, ManagedDisks, atau Keduanya.
Id Kunci Key Vault Srvc Terkelola Jika Anda menggunakan kunci yang dikelola pelanggan untuk layanan terkelola, tentukan Id Kunci brankas kunci.
Id Kunci Key Vault Disk Terkelola Jika Anda menggunakan kunci yang dikelola pelanggan untuk disk terkelola, tentukan Id Kunci brankas kunci.
Rotasi Otomatis Disk Terkelola Jika Anda menggunakan kunci yang dikelola pelanggan untuk disk terkelola, tentukan apakah akan mengambil versi kunci baru secara otomatis.

Templat ARM untuk dukungan firewall untuk akun penyimpanan ruang kerja Anda

Salin templat ARM berikut untuk mengaktifkan atau menonaktifkan dukungan firewall untuk akun penyimpanan ruang kerja Anda. Anda juga dapat menyebarkan contoh templat 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')]"
    }
  ]
}