ARM-mall för brandväggsstöd för arbetsytans lagringskonto

Den här sidan innehåller ARM-mallen och en beskrivning av de obligatoriska fälten för brandväggsstöd för arbetsytans lagringskonto. Brandväggsstöd för ditt lagringskonto för arbetsytan styrs av ARM-mallens egenskap storageAccountFirewall, som måste vara inställd på Enabled.

För vissa konfigurationer av arbetsytor, till exempel att aktivera säkerhetsprofilen för efterlevnad, kan du behöva anpassa ARM-mallen. Om du har frågor om ARM-mallen kan du skicka ett Azure support-ärende. Du kan också använda Terraform för att hantera konfigurationer av arbetsytor. Se Terraform-leverantören azurerm_databricks_workspace, inklusive egenskapen compliance_security_profile_enabled.

ARM-mallfält

Den här tabellen visar fälten och deras beskrivningar för följande ARM-mall för brandväggsstöd för arbetsytans lagringskonto.

Fält beskrivning
Abonnemang Azure-prenumeration att använda.
Resursgrupp Resursgrupp som ska användas. Det här är vanligtvis resursgruppen för ditt virtuella nätverk.
Namn på arbetsyta Namnet på arbetsytan. Om du använder en befintlig arbetsyta måste detta exakt matcha det befintliga arbetsytans namn.
Namn på hanterad resursgrupp Den hanterade resursgruppen för din arbetsyta. Detta fyller automatiskt i formuläret med ett standardnamn. Ändra den om din organisation vill anpassa namnet på den hanterade resursgruppen.
Lagringskontonamn Lagringskontot för Azure arbetsyta i din hanterade resursgrupp. Detta fyller automatiskt i formuläret med ett standardnamn. Ändra den om din organisation vill anpassa namnet på den hanterade resursgruppen.
VNet-nätverks-ID för arbetsyta Resurs-ID:t för ditt virtuella nätverk. För en befintlig arbetsyta kan du hämta detta genom att navigera till arbetsytan i Azure portalen. Klicka på Egenskaper. Under Anpassat virtuellt nätverks-ID klickar du på Visa värde som JSON. Kopiera resurs-ID:t i fältet value .
Eget privat undernätsnamn Det privata undernätet för ditt virtuella nätverk. För en befintlig arbetsyta kan du hämta detta genom att navigera till arbetsytan i Azure portalen. Klicka på Egenskaper. Under Anpassat privat undernät klickar du på Visa värde som JSON. Kopiera undernätets namn i fältet value .
Anpassat offentligt undernätsnamn Det offentliga undernätet för ditt virtuella nätverk. För en befintlig arbetsyta kan du hämta detta genom att navigera till arbetsytan i Azure portalen. Klicka på Egenskaper. Under Anpassat offentligt undernät klickar du på Visa värde som JSON. Kopiera undernätets namn i fältet value .
Plats Det korta namnet på den Azure-region som fylls i automatiskt för att matcha fältet Region.
Åtkomstanslutningens namn Ändra inte det här fältet för vanliga distributioner. Azure Databricks skapar en ny åtkomstanslutning.
Hanterad identitetstyp Ändra inte det här fältet för vanliga distributioner.
Resurs-ID för användarhanterad identitet Ändra inte det här fältet för vanliga distributioner.
Brandvägg för lagringskonto Anger om brandväggsstöd ska aktiveras för ditt arbetsytas lagringskonto.
Inaktivera offentlig IP-adress Detta måste vara inställt på true. Detta möjliggör säker klusteranslutning, vilket krävs för brandväggsstöd för ditt lagringskonto för arbetsytan.
Åtkomst till offentligt nätverk Ställ vanligtvis in detta på Aktiverad. Om du aktiverar Private Link kan du läsa Azure Private Link begrepp för vilka inställningar som ska användas.
Obligatoriska NSG-regler Ställ vanligtvis in detta på Alla regler. Om du aktiverar Private Link kan du läsa Azure Private Link begrepp för vilka inställningar som ska användas.
Kundhanterade nycklar har aktiverats Ange detta sant om du använder kundhanterade nycklar för hanterade tjänster eller hanterade diskar. Se Kundhanterade nycklar för kryptering.
Typ av kundhanterade nycklar Om kundhanterade nycklar är aktiverade väljer du de kundhanterade nyckeltyperna för den här arbetsytan. Välj Hanterade tjänster, ManagedDisks eller Båda.
Hanterad Srvc Key Vault nyckel-ID Om du använder kundhanterade nycklar för hanterade tjänster anger du nyckel-ID:t för nyckelvalvet.
Hanterad Disk Key Vault-nyckel-ID Om du använder kundhanterade nycklar för hanterade diskar anger du nyckel-ID:t för nyckelvalvet.
Automatisk rotation av hanterad disk Om du använder kundhanterade nycklar för hanterade diskar anger du om nya nyckelversioner ska hämtas automatiskt.

ARM-mall för brandväggsstöd för ditt lagringskonto för arbetsytor

Kopiera följande ARM-mall för att aktivera eller inaktivera brandväggsstöd för arbetsytans lagringskonto.

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