Udostępnij za pośrednictwem


Szablon usługi ARM do obsługi zapory dla konta magazynu obszaru roboczego

Ten artykuł zawiera szablon usługi ARM oraz opis wymaganych pól obsługi zapory dla konta magazynu obszaru roboczego. Obsługa zapory dla konta magazynu obszaru roboczego jest kontrolowana przez właściwość storageAccountFirewallszablonu usługi ARM, która musi być ustawiona na Enabledwartość .

W przypadku niektórych konfiguracji obszaru roboczego, takich jak włączanie profilu zabezpieczeń zgodności, może być potrzebny inny szablon usługi ARM. W takim przypadku skontaktuj się z zespołem ds. kont usługi Databricks.

Obszar roboczy można również zaktualizować lub utworzyć przy użyciu narzędzia Terraform. Zobacz dostawcę azurerm_databricks_workspace Terraform.

Pola szablonu usługi ARM

W tej tabeli wymieniono pola i ich opisy dla poniższego szablonu usługi ARM na potrzeby obsługi zapory dla konta magazynu obszaru roboczego.

Pole opis
Subskrypcja Subskrypcja platformy Azure do użycia.
Grupa zasobów: Grupa zasobów do użycia. Zazwyczaj jest to grupa zasobów sieci wirtualnej.
Nazwa obszaru roboczego Nazwa obszaru roboczego. Jeśli używasz istniejącego obszaru roboczego, musi to być dokładnie zgodne z nazwą istniejącego obszaru roboczego.
Nazwa zarządzanej grupy zasobów Zarządzana grupa zasobów dla obszaru roboczego. Spowoduje to automatyczne wypełnienie formularza nazwą domyślną. Zmień ją, jeśli organizacja chce dostosować nazwę zarządzanej grupy zasobów.
Nazwa konta magazynu Konto magazynu obszaru roboczego platformy Azure w zarządzanej grupie zasobów. Spowoduje to automatyczne wypełnienie formularza nazwą domyślną. Zmień ją, jeśli organizacja chce dostosować nazwę zarządzanej grupy zasobów.
Identyfikator sieci wirtualnej obszaru roboczego Identyfikator zasobu dla sieci wirtualnej. W przypadku istniejącego obszaru roboczego możesz to uzyskać, przechodząc do obszaru roboczego w witrynie Azure Portal. Kliknij przycisk Właściwości. W obszarze Niestandardowy identyfikator sieci wirtualnej kliknij pozycję Wyświetl wartość w formacie JSON. Skopiuj identyfikator zasobu w value polu .
Niestandardowa nazwa podsieci prywatnej Podsieć prywatna dla sieci wirtualnej. W przypadku istniejącego obszaru roboczego możesz to uzyskać, przechodząc do obszaru roboczego w witrynie Azure Portal. Kliknij przycisk Właściwości. W obszarze Niestandardowa podsieć prywatna kliknij pozycję Wyświetl wartość jako JSON. Skopiuj nazwę podsieci value w polu .
Niestandardowa nazwa podsieci publicznej Podsieć publiczna dla sieci wirtualnej. W przypadku istniejącego obszaru roboczego możesz to uzyskać, przechodząc do obszaru roboczego w witrynie Azure Portal. Kliknij przycisk Właściwości. W obszarze Niestandardowa podsieć publiczna kliknij pozycję Wyświetl wartość jako JSON. Skopiuj nazwę podsieci value w polu .
Lokalizacja Krótka nazwa regionu świadczenia usługi Azure, który jest wypełniany automatycznie, aby był zgodny z głównym polem Region .
Nazwa łącznika programu Access W przypadku typowych wdrożeń nie należy modyfikować tego pola. Usługa Azure Databricks tworzy nowy łącznik programu Access.
Typ tożsamości zarządzanej W przypadku typowych wdrożeń nie należy modyfikować tego pola.
Identyfikator zasobu tożsamości zarządzanej użytkownika W przypadku typowych wdrożeń nie należy modyfikować tego pola.
Zapora konta magazynu Określa, czy włączyć obsługę zapory dla konta magazynu obszaru roboczego.
Wyłączanie publicznego adresu IP Musi to być ustawione na true. Umożliwia to bezpieczną łączność klastra, która jest wymagana do obsługi zapory dla konta magazynu obszaru roboczego.
Dostęp do sieci publicznej Zazwyczaj ustaw tę opcję na wartość Włączone. Jeśli włączysz usługę Private Link, zobacz Włączanie połączeń zaplecza i frontonu usługi Azure Private Link, aby poznać ustawienia do użycia.
Wymagane reguły sieciowej grupy zabezpieczeń Zazwyczaj ustaw tę opcję na wszystkie reguły. Jeśli włączysz usługę Private Link, zobacz Włączanie połączeń zaplecza i frontonu usługi Azure Private Link, aby poznać ustawienia do użycia.
Włączone klucze zarządzane przez klienta Ustaw tę wartość true, jeśli używasz kluczy zarządzanych przez klienta dla usług zarządzanych lub dysków zarządzanych. Zobacz Klucze zarządzane przez klienta na potrzeby szyfrowania.
Typ kluczy zarządzanych przez klienta Jeśli klucze zarządzane przez klienta są włączone, wybierz typy kluczy zarządzanych przez klienta dla tego obszaru roboczego. Wybierz pozycję Usługi zarządzane, Dyski zarządzane lub Oba.
Identyfikator klucza zarządzanego magazynu kluczy Srvc Jeśli używasz kluczy zarządzanych przez klienta dla usług zarządzanych, określ identyfikator klucza magazynu kluczy.
Identyfikator klucza usługi Key Vault dysku zarządzanego Jeśli używasz kluczy zarządzanych przez klienta dla dysków zarządzanych, określ identyfikator klucza magazynu kluczy.
Automatyczna rotacja dysku zarządzanego Jeśli używasz kluczy zarządzanych przez klienta dla dysków zarządzanych, określ, czy automatycznie pobierać nowe wersje kluczy.

Szablon usługi ARM do obsługi zapory dla konta magazynu obszaru roboczego

Skopiuj następujący szablon usługi ARM, aby włączyć lub wyłączyć obsługę zapory dla konta magazynu obszaru roboczego. Możesz również wdrożyć przykładowy szablon usługi 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')]"
    }
  ]
}