작업 영역 스토리지 계정에 대한 방화벽 지원을 위한 ARM 템플릿
이 문서에서는 ARM 템플릿과 작업 영역 스토리지 계정에 대한 방화벽 지원에 필요한 필드에 대한 설명을 제공합니다. 작업 영역 스토리지 계정에 대한 방화벽 지원은 ARM 템플릿 속성에 의해 제어되며, 이 속성 storageAccountFirewall
은 로 Enabled
설정해야 합니다.
규정 준수 보안 프로필 사용과 같은 특정 작업 영역 구성의 경우 다른 ARM 템플릿이 필요할 수 있습니다. 이 경우 Databricks 계정 팀에 문의하세요.
Terraform을 사용하여 작업 영역을 업데이트하거나 만들 수도 있습니다. azurerm_databricks_workspace Terraform 공급자를 참조하세요.
ARM 템플릿 필드
이 표에는 작업 영역 스토리지 계정에 대한 방화벽 지원을 위한 아래 ARM 템플릿에 대한 필드 및 해당 설명이 나와 있습니다.
필드 | Description |
---|---|
구독 | 사용할 Azure 구독입니다. |
리소스 그룹 | 사용할 리소스 그룹입니다. 일반적으로 VNet의 리소스 그룹입니다. |
작업 영역 이름 | 작업 영역의 이름입니다. 기존 작업 영역을 사용하는 경우 기존 작업 영역 이름과 정확히 일치해야 합니다. |
관리되는 리소스 그룹 이름 | 작업 영역에 대한 관리되는 리소스 그룹입니다. 양식에서 기본 이름으로 자동 채워집니다. 조직에서 관리되는 리소스 그룹 이름을 사용자 지정하려는 경우 변경합니다. |
Storage 계정 이름 | 관리되는 리소스 그룹의 Azure 작업 영역 스토리지 계정입니다. 양식에서 기본 이름으로 자동 채워집니다. 조직에서 관리되는 리소스 그룹 이름을 사용자 지정하려는 경우 변경합니다. |
작업 영역 VNet 네트워크 ID | VNet의 리소스 ID입니다. 기존 작업 영역의 경우 Azure Portal의 작업 영역으로 이동하여 이를 가져올 수 있습니다.
속성을 클릭합니다. 사용자 지정 가상 네트워크 ID에서 값 보기를 JSON으로 클릭합니다. 필드에 리소스 ID를 복사합니다 value . |
사용자 지정 프라이빗 서브넷 이름 | VNet에 대한 프라이빗 서브넷입니다. 기존 작업 영역의 경우 Azure Portal의 작업 영역으로 이동하여 이를 가져올 수 있습니다.
속성을 클릭합니다. 사용자 지정 프라이빗 서브넷에서 값 보기를 JSON으로 클릭합니다. 필드에 서브넷 이름을 복사합니다 value . |
사용자 지정 공용 서브넷 이름 | VNet에 대한 공용 서브넷입니다. 기존 작업 영역의 경우 Azure Portal의 작업 영역으로 이동하여 이를 가져올 수 있습니다.
속성을 클릭합니다. 사용자 지정 공용 서브넷 아래에서 값 보기를 JSON으로 클릭합니다. 필드에 서브넷 이름을 복사합니다 value . |
위치 | 주 지역 필드와 일치하도록 자동으로 채우는 Azure 지역의 짧은 이름입니다. |
액세스 커넥터 이름 | 일반적인 배포의 경우 이 필드를 수정하지 마세요. Azure Databricks는 새 Access Connector를 만듭니다. |
관리 ID 유형 | 일반적인 배포의 경우 이 필드를 수정하지 마세요. |
사용자 관리 ID 리소스 ID | 일반적인 배포의 경우 이 필드를 수정하지 마세요. |
스토리지 계정 방화벽 | 작업 영역 스토리지 계정에 대해 방화벽 지원을 사용할지 여부를 지정합니다. |
공용 IP 사용 안 함 | 이 값은 .로 true 설정해야 합니다. 이렇게 하면 작업 영역 스토리지 계정에 대한 방화벽 지원에 필요한 보안 클러스터 연결이 가능합니다. |
공용 네트워크 액세스 | 일반적으로 이 설정을 사용으로 설정합니다. Private Link를 사용하도록 설정하는 경우 사용할 설정에 대한 Azure Private Link 백 엔드 및 프런트 엔드 연결 사용을 참조하세요. |
필수 Nsg 규칙 | 일반적으로 모든 규칙으로 설정합니다. Private Link를 사용하도록 설정하는 경우 사용할 설정에 대한 Azure Private Link 백 엔드 및 프런트 엔드 연결 사용을 참조하세요. |
고객 관리형 키 사용 | 관리되는 서비스 또는 관리 디스크에 고객 관리형 키를 사용하는 경우 이 true를 설정합니다. 암호화에 대한 고객 관리 키를 참조하세요. |
고객 관리형 키 유형 | 고객 관리형 키를 사용하는 경우 이 작업 영역에 대해 고객 관리형 키 유형을 선택합니다. Managed Services, ManagedDisks 또는 둘 다를 선택합니다. |
관리되는 Srvc Key Vault 키 ID | 관리되는 서비스에 고객 관리형 키를 사용하는 경우 키 자격 증명 모음 키 ID를 지정합니다. |
Managed Disk Key Vault Key Id | 관리 디스크에 고객 관리형 키를 사용하는 경우 키 자격 증명 모음 키 ID를 지정합니다. |
관리 디스크 자동 회전 | 관리 디스크에 고객 관리형 키를 사용하는 경우 새 키 버전을 자동으로 선택할지 여부를 지정합니다. |
작업 영역 스토리지 계정에 대한 방화벽 지원을 위한 ARM 템플릿
다음 ARM 템플릿을 복사하여 작업 영역 스토리지 계정에 대한 방화벽 지원을 사용하거나 사용하지 않도록 설정합니다. 샘플 ARM 템플릿을 배포할 수도 있습니다.
- 사용자 할당 관리 ID를 사용하는 작업 영역 스토리지 방화벽용 Azure Databricks 템플릿입니다.
- 시스템 할당 관리 ID를 사용하는 작업 영역 스토리지 방화벽용 Azure Databricks 템플릿
{
"$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')]"
}
]
}