Delen via


ARM-sjabloon voor firewallondersteuning voor het opslagaccount van de werkruimte

Dit artikel bevat de ARM-sjabloon en een beschrijving van de vereiste velden voor firewallondersteuning voor het werkruimteopslagaccount. Firewallondersteuning voor uw werkruimteopslagaccount wordt beheerd door de eigenschap storageAccountFirewallARM-sjabloon, die moet worden ingesteld op Enabled.

Voor bepaalde werkruimteconfiguraties, zoals het inschakelen van het beveiligingsprofiel voor naleving, hebt u mogelijk een andere ARM-sjabloon nodig. Neem in dat geval contact op met uw Databricks-accountteam.

U kunt uw werkruimte ook bijwerken of maken met behulp van Terraform. Zie de azurerm_databricks_workspace Terraform-provider.

ARM-sjabloonvelden

Deze tabel bevat de velden en de bijbehorende beschrijvingen voor de onderstaande ARM-sjabloon voor firewallondersteuning voor het opslagaccount van de werkruimte.

Veld Beschrijving
Abonnement Te gebruiken Azure-abonnement.
Resourcegroep Te gebruiken resourcegroep. Dit is doorgaans de resourcegroep van uw VNet.
Werkruimtenaam Naam van de werkruimte. Als u een bestaande werkruimte gebruikt, moet dit exact overeenkomen met de naam van de bestaande werkruimte.
Naam van beheerde resourcegroep De beheerde resourcegroep voor uw werkruimte. Hiermee wordt automatisch in het formulier een standaardnaam ingevuld. Wijzig deze als uw organisatie de naam van de beheerde resourcegroep wil aanpassen.
Naam van opslagaccount Het Opslagaccount van de Azure-werkruimte in uw beheerde resourcegroep. Hiermee wordt automatisch in het formulier een standaardnaam ingevuld. Wijzig deze als uw organisatie de naam van de beheerde resourcegroep wil aanpassen.
VNet-netwerk-id van werkruimte De resource-id voor uw VNet. Voor een bestaande werkruimte kunt u dit verkrijgen door te navigeren naar de werkruimte in Azure Portal. Klik op Eigenschappen. Klik onder Aangepaste virtuele netwerk-id op Waarde weergeven als JSON. Kopieer de resource-id in het value veld.
Aangepaste privésubnetnaam Het privésubnet voor uw VNet. Voor een bestaande werkruimte kunt u dit verkrijgen door te navigeren naar de werkruimte in Azure Portal. Klik op Eigenschappen. Klik onder Aangepast privésubnet op Waarde weergeven als JSON. Kopieer de naam van het subnet in het value veld.
Aangepaste openbare subnetnaam Het openbare subnet voor uw VNet. Voor een bestaande werkruimte kunt u dit verkrijgen door te navigeren naar de werkruimte in Azure Portal. Klik op Eigenschappen. Klik onder Aangepast openbaar subnet op Waarde weergeven als JSON. Kopieer de naam van het subnet in het value veld.
Location De korte naam voor de Azure-regio die automatisch wordt ingevuld, zodat deze overeenkomt met het hoofdveld Regio .
Naam van access-connector Wijzig dit veld niet voor standaardimplementaties. Azure Databricks maakt een nieuwe Access-connector.
Type beheerde identiteit Wijzig dit veld niet voor standaardimplementaties.
Resource-id van door gebruiker beheerde identiteit Wijzig dit veld niet voor standaardimplementaties.
Firewall van opslagaccount Hiermee geeft u op of firewallondersteuning moet worden ingeschakeld voor uw werkruimteopslagaccount.
Openbaar IP-adres uitschakelen Dit moet worden ingesteld op true. Hierdoor is beveiligde clusterconnectiviteit mogelijk. Dit is vereist voor firewallondersteuning voor uw werkruimteopslagaccount.
Openbare netwerktoegang Stel dit meestal in op Ingeschakeld. Als u Private Link inschakelt, raadpleegt u Back-end- en front-endverbindingen van Azure Private Link inschakelen voor de instellingen die u wilt gebruiken.
Vereiste NSG-regels Stel dit meestal in op Alle regels. Als u Private Link inschakelt, raadpleegt u Back-end- en front-endverbindingen van Azure Private Link inschakelen voor de instellingen die u wilt gebruiken.
Door de klant beheerde sleutels ingeschakeld Stel deze waar in als u door de klant beheerde sleutels gebruikt voor beheerde services of beheerde schijven. Zie door de klant beheerde sleutels voor versleuteling.
Type door klant beheerde sleutels Als door de klant beheerde sleutels zijn ingeschakeld, selecteert u de door de klant beheerde sleuteltypen voor deze werkruimte. Kies Beheerde services, ManagedDisks of Beide.
Sleutel-id van beheerde srvc-sleutelkluis Als u door de klant beheerde sleutels gebruikt voor beheerde services, geeft u de sleutel-id van de sleutelkluis op.
Key Vault-sleutel-id voor beheerde schijf Als u door de klant beheerde sleutels gebruikt voor beheerde schijven, geeft u de sleutel-id van de sleutelkluis op.
Automatische rotatie van beheerde schijf Als u door de klant beheerde sleutels voor beheerde schijven gebruikt, geeft u op of nieuwe sleutelversies automatisch moeten worden opgehaald.

ARM-sjabloon voor firewallondersteuning voor uw werkruimteopslagaccount

Kopieer de volgende ARM-sjabloon om firewallondersteuning voor uw werkruimteopslagaccount in of uit te schakelen. U kunt ook een ARM-voorbeeldsjabloon implementeren:

{
  "$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')]"
    }
  ]
}