Sdílet prostřednictvím


Šablona ARM pro podporu brány firewall pro účet úložiště pracovního prostoru

Tento článek obsahuje šablonu ARM a popis požadovaných polí pro podporu brány firewall pro účet úložiště pracovního prostoru. Podpora brány firewall pro váš účet úložiště pracovního prostoru je řízena vlastností storageAccountFirewallšablony ARM, která musí být nastavena na Enabled.

U určitých konfigurací pracovních prostorů, jako je povolení profilu zabezpečení dodržování předpisů, možná budete potřebovat jinou šablonu ARM. V takovém případě se obraťte na tým účtu Databricks.

Pomocí Terraformu můžete také aktualizovat nebo vytvořit pracovní prostor. Podívejte se na poskytovatele azurerm_databricks_workspace Terraformu.

Pole šablony ARM

Tato tabulka uvádí pole a jejich popisy pro následující šablonu ARM pro podporu brány firewall pro účet úložiště pracovního prostoru.

Pole Popis
Předplatné Předplatné Azure, které se má použít.
Skupina prostředků Skupina prostředků, která se má použít. Obvykle se jedná o skupinu prostředků vaší virtuální sítě.
Název pracovního prostoru Název pracovního prostoru Pokud používáte existující pracovní prostor, musí přesně odpovídat názvu existujícího pracovního prostoru.
Název spravované skupiny prostředků Spravovaná skupina prostředků pro váš pracovní prostor. Tím se ve formuláři automaticky vyplní výchozí název. Pokud chce vaše organizace přizpůsobit název spravované skupiny prostředků, změňte ji.
Název účtu úložiště Účet úložiště pracovního prostoru Azure ve spravované skupině prostředků. Tím se ve formuláři automaticky vyplní výchozí název. Pokud chce vaše organizace přizpůsobit název spravované skupiny prostředků, změňte ji.
ID sítě virtuální sítě pracovního prostoru ID prostředku pro vaši virtuální síť. U existujícího pracovního prostoru ho můžete získat tak, že přejdete do pracovního prostoru na webu Azure Portal. Klikněte na Vlastnosti. V části ID vlastní virtuální sítě klikněte na Zobrazit hodnotu ve formátu JSON. Zkopírujte ID zdroje do value pole.
Vlastní název privátní podsítě Privátní podsíť pro vaši virtuální síť. U existujícího pracovního prostoru ho můžete získat tak, že přejdete do pracovního prostoru na webu Azure Portal. Klikněte na Vlastnosti. V části Vlastní privátní podsíť klikněte na Zobrazit hodnotu ve formátu JSON. Zkopírujte název podsítě v value poli.
Vlastní název veřejné podsítě Veřejná podsíť pro vaši virtuální síť. U existujícího pracovního prostoru ho můžete získat tak, že přejdete do pracovního prostoru na webu Azure Portal. Klikněte na Vlastnosti. V části Vlastní veřejná podsíť klikněte na Zobrazit hodnotu ve formátu JSON. Zkopírujte název podsítě v value poli.
Místo Krátký název oblasti Azure, která se automaticky naplní tak, aby odpovídala hlavnímu poli Oblast .
Název přístupového konektoru U typických nasazení toto pole neupravujte. Azure Databricks vytvoří nový přístupový konektor.
Typ spravované identity U typických nasazení toto pole neupravujte.
ID prostředku spravované identity uživatelem U typických nasazení toto pole neupravujte.
Brána firewall účtu úložiště Určuje, jestli chcete povolit podporu brány firewall pro váš účet úložiště pracovního prostoru.
Zakázání veřejné IP adresy Musí být nastavena na truehodnotu . To umožňuje zabezpečené připojení ke clusteru, které je potřeba pro podporu brány firewall pro váš účet úložiště pracovního prostoru.
Přístup k veřejné síti Obvykle tuto možnost nastavte na Povoleno. Pokud službu Private Link povolíte, přečtěte si téma Povolení back-endu a front-endových připojení Služby Azure Private Link, kde zjistíte, jaká nastavení se mají použít.
Povinná pravidla NSG Obvykle to nastavíte na všechna pravidla. Pokud službu Private Link povolíte, přečtěte si téma Povolení back-endu a front-endových připojení Služby Azure Private Link, kde zjistíte, jaká nastavení se mají použít.
Povolené klíče spravované zákazníkem Tuto hodnotu true nastavte, pokud používáte klíče spravované zákazníkem pro spravované služby nebo spravované disky. Informace o šifrování najdete v tématu Klíče spravované zákazníkem.
Typ klíčů spravovaných zákazníkem Pokud jsou klíče spravované zákazníkem povolené, vyberte pro tento pracovní prostor typy klíčů spravovaných zákazníkem. Zvolte spravované služby, spravované disky nebo obojí.
Spravované ID klíče služby Srvc key Vault Pokud pro spravované služby používáte klíče spravované zákazníkem, zadejte ID klíče trezoru klíčů.
ID klíče služby Key Vault spravovaného disku Pokud pro spravované disky používáte klíče spravované zákazníkem, zadejte ID klíče trezoru klíčů.
Automatická obměně spravovaných disků Pokud pro spravované disky používáte klíče spravované zákazníkem, určete, jestli se mají nové verze klíčů automaticky vyzvednout.

Šablona ARM pro podporu brány firewall pro váš účet úložiště pracovního prostoru

Zkopírujte následující šablonu ARM a povolte nebo zakažte podporu brány firewall pro váš účet úložiště pracovního prostoru. Můžete také nasadit ukázkovou šablonu 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')]"
    }
  ]
}