ARM-Vorlage zur Unterstützung der Firewall für das Speicherkonto des Arbeitsbereichs
Dieser Artikel enthält die ARM-Vorlage sowie eine Beschreibung der Felder, die zur Unterstützung der Firewall für das Speicherkonto des Arbeitsbereichs erforderlich sind. Die Firewallunterstützung für das Speicherkonto des Arbeitsbereichs wird durch die ARM-Vorlageneigenschaft storageAccountFirewall
gesteuert. Diese muss auf Enabled
festgelegt werden.
Für bestimmte Arbeitsbereichskonfigurationen wie etwa das Aktivieren des Compliancesicherheitsprofils ist ggf. eine andere ARM-Vorlage erforderlich. Wenden Sie sich in diesem Fall an Ihr Databricks-Kontoteam.
Sie können Ihren Arbeitsbereich auch mithilfe von Terraform aktualisieren oder erstellen. Sehen Sie sich den Terraform-Anbieter azurerm_databricks_workspace an.
ARM-Vorlagenfelder
Diese Tabelle enthält die Felder und die zugehörigen Beschreibungen für die weiter unten bereitgestellte ARM-Vorlage zur Unterstützung der Firewall für das Speicherkonto des Arbeitsbereichs.
Feld | BESCHREIBUNG |
---|---|
Abonnement | Das zu verwendende Azure-Abonnement. |
Ressourcengruppe | Die zu verwendende Ressourcengruppe. Dies ist in der Regel die Ressourcengruppe Ihres VNet. |
Arbeitsbereichname | Name des Arbeitsbereichs Bei Verwendung eines bereits vorhandenen Arbeitsbereichs muss diese Angabe exakt dem Namen des vorhandenen Arbeitsbereichs entsprechen. |
Name der verwalteten Ressourcengruppe | Die verwaltete Ressourcengruppe für Ihren Arbeitsbereich. Wird im Formular automatisch mit einem Standardnamen aufgefüllt. Ändern Sie diesen, wenn Ihre Organisation den Namen der verwalteten Ressourcengruppe anpassen möchte. |
Speicherkontoname | Das Speicherkonto des Azure-Arbeitsbereichs in Ihrer verwalteten Ressourcengruppe. Wird im Formular automatisch mit einem Standardnamen aufgefüllt. Ändern Sie diesen, wenn Ihre Organisation den Namen der verwalteten Ressourcengruppe anpassen möchte. |
Netzwerk-ID des Arbeitsbereichs-VNet | Die Ressourcen-ID für Ihr VNet. Für einen bereits vorhandenen Arbeitsbereich können Sie diese Angabe abrufen, indem Sie im Azure-Portal zu dem Arbeitsbereich navigieren. Klicken Sie auf Eigenschaften. Klicken Sie unter Benutzerdefinierte VNet-ID auf Wert als JSON anzeigen. Kopieren Sie die Ressourcen-ID aus dem Feld value . |
Benutzerdefinierter Name des privaten Subnetzes | Das private Subnetz für Ihr VNet. Für einen bereits vorhandenen Arbeitsbereich können Sie diese Angabe abrufen, indem Sie im Azure-Portal zu dem Arbeitsbereich navigieren. Klicken Sie auf Eigenschaften. Klicken Sie unter Benutzerdefiniertes privates Subnetz auf Wert als JSON anzeigen. Kopieren Sie den Subnetznamen im Feld value . |
Benutzerdefinierter Name des öffentlichen Subnetzes | Das öffentliche Subnetz für Ihr VNet. Für einen bereits vorhandenen Arbeitsbereich können Sie diese Angabe abrufen, indem Sie im Azure-Portal zu dem Arbeitsbereich navigieren. Klicken Sie auf Eigenschaften. Klicken Sie unter Benutzerdefiniertes öffentliches Subnetz auf Wert als JSON anzeigen. Kopieren Sie den Subnetznamen im Feld value . |
Location | Der Kurzname für die Azure-Region. Wird automatisch aufgefüllt, um dem Hauptfeld für Region zu entsprechen. |
Name des Zugriffsconnectors | Lassen Sie dieses Feld bei einer typischen Bereitstellung unverändert. Azure Databricks erstellt einen neuen Zugriffsconnector. |
Typ der verwalteten Identität | Lassen Sie dieses Feld bei einer typischen Bereitstellung unverändert. |
Ressourcen-ID der benutzerseitig verwalteten Identität | Lassen Sie dieses Feld bei einer typischen Bereitstellung unverändert. |
Speicherkontofirewall | Gibt an, ob die Firewallunterstützung für das Speicherkonto des Arbeitsbereichs aktiviert werden soll. |
Öffentliche IP-Adresse deaktivieren | Dieser muss auf true festgelegt werden. Dies ermöglicht Konnektivität für sichere Cluster – eine Voraussetzung für die Firewallunterstützung für das Speicherkonto des Arbeitsbereichs. |
Öffentlicher Netzwerkzugriff | Diese Option muss in der Regel auf Aktiviert festgelegt werden. Wenn Sie Private Link aktivieren, informieren Sie sich unter Aktivieren von Azure Private Link Back-End- und Front-End-Verbindungen über die zu verwendenden Einstellungen. |
Erforderliche NSG-Regeln | Diese Option muss in der Regel auf Alle Regeln festgelegt werden. Wenn Sie Private Link aktivieren, informieren Sie sich unter Aktivieren von Azure Private Link Back-End- und Front-End-Verbindungen über die zu verwendenden Einstellungen. |
Kundenseitig verwaltete Schlüssel aktiviert | Legen Sie diese Option auf „true“ fest, wenn Sie kundenseitig verwaltete Schlüssel für verwaltete Dienste oder verwaltete Datenträger verwenden. Weitere Informationen finden Sie unter Kundenseitig verwaltete Schlüssel für die Verschlüsselung. |
Art der kundenseitig verwalteten Schlüssel | Wenn die Option für kundenseitig verwaltete Schlüssel aktiviert ist, wählen Sie die Arten der kundenseitig verwalteten Schlüssel für diesen Arbeitsbereich aus. Wählen Sie Verwaltete Dienste, ManagedDisks oder Beides aus. |
Verwalteter Dienst: Schlüssel-ID des Schlüsseltresors | Wenn Sie kundenseitig verwaltete Schlüssel für verwaltete Dienste verwenden, geben Sie die Schlüssel-ID des Schlüsseltresors an. |
Verwalteter Datenträger: Schlüssel-ID des Schlüsseltresors | Wenn Sie kundenseitig verwaltete Schlüssel für verwaltete Datenträger verwenden, geben Sie die Schlüssel-ID des Schlüsseltresors an. |
Verwalteter Datenträger: Automatische Rotation | Wenn Sie kundenseitig verwaltete Schlüssel für verwaltete Datenträger verwenden, geben Sie an, ob neue Schlüsselversionen automatisch übernommen werden sollen. |
ARM-Vorlage zur Unterstützung der Firewall für das Speicherkonto des Arbeitsbereichs
Kopieren Sie die folgende ARM-Vorlage, um die Firewallunterstützung für das Speicherkonto des Arbeitsbereichs zu aktivieren oder zu deaktivieren. Sie können auch eine ARM-Beispielvorlage bereitstellen:
- Azure Databricks-Vorlage für die Firewall des Arbeitsbereichsspeichers mit einer benutzerseitig zugewiesenen verwalteten Identität
- Azure Databricks-Vorlage für die Firewall des Arbeitsbereichsspeichers mit einer systemseitig zugewiesenen verwalteten Identität
{
"$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')]"
}
]
}