다음을 통해 공유


Azure 관리 디스크용 고객 관리형 키 구성

컴퓨팅 평면의 Azure Databricks 컴퓨팅 워크로드는 Azure 관리 디스크에 임시 데이터를 저장합니다. 기본적으로 관리 디스크에 저장된 데이터는 Microsoft 관리형 키와 함께 서버 측 암호화를 사용하여 미사용 시 암호화됩니다. 이 문서에서는 관리되는 디스크 암호화에 사용할 Azure Databricks 작업 공간에 대해 Azure Key Vault 볼트의 고객 관리 키를 구성하는 방법을 설명합니다. Azure Key Vault HSM에서 키를 사용하는 방법에 대한 지침은 Azure 관리 디스크에 대한 HSM 고객 관리형 키 구성을 참조하세요.

Important

  • 관리 디스크 스토리지에 대한 고객 관리형 키는 데이터 디스크에 적용되지만 운영 체제(OS) 디스크에는 적용되지 않습니다.
  • 관리형 디스크 스토리지에 대한 고객 관리 키는 서버리스 SQL Warehouse모델 서비스 제공과 같은 서버리스 컴퓨팅 리소스에는 적용되지 않습니다. 서버리스 컴퓨팅 리소스에 사용되는 디스크는 수명이 짧고 서버리스 워크로드의 수명 주기에 연결되어 있습니다. 컴퓨팅 리소스가 중지되거나 크기 조정되면 VM과 해당 스토리지가 제거됩니다.

요구 사항

1단계: 주요 자격 증명 모음 만들기

Azure Portal, Azure CLI, Powershell 및 선택적으로 ARM 템플릿을 사용하는 등 다양한 방법으로 Key Vault를 만들 수 있습니다. 다음 섹션에서는 Azure CLI 및 Powershell 사용 절차에 대해 설명합니다. 다른 방법은 Microsoft 설명서를 참조하세요.

Azure CLI 사용

  1. Key Vault 만들기:

    az keyvault create --name <keyVaultName> --resource-group <resourceGroupName> --location <location> --sku <sku> --enable-purge-protection
    
  2. 자격 증명 모음 URI 가져오기:

    az keyvault show --name <key-vault-name>
    

    응답에서 vaultUri 값을 복사합니다.

PowerShell 사용

새 자격 증명 모음 만들기:

$keyVault = New-AzKeyVault -Name <key-vault-name> -ResourceGroupName <resource-group-name> -Location <location> -Sku <sku> -EnablePurgeProtection

기존 Key Vault 받기:

$keyVault = Get-AzKeyVault -VaultName <key-vault-name>

2단계: 키 준비

Azure Portal, Azure CLI, Powershell 및 선택적으로 ARM 템플릿을 사용하여 Azure Key Vault에 저장된 키를 만들거나 기존 키를 검색할 수 있습니다. 이 섹션에서는 Azure CLI 및 Powershell에 대한 절차를 제공합니다. 다른 방법은 Azure 키 설명서를 참조하세요.

Azure CLI 사용

키를 만들거나 기존 키를 검색할 수 있습니다.

키 만들기:

  1. 다음 명령을 실행합니다.

    az keyvault key create \
    --name <key-name> \
    --vault-name <key-vault-name> \
    --protection software
    
  2. 출력에서 다음 값을 기록해 둡니다.

    • Key vault name: Key Vault의 이름
    • Key name: 키의 이름
    • Key version: 키의 버전
    • Key vault resource group: Key Vault의 리소스 그룹
  3. 키 정보 가져오기:

    az keyvault key show --vault-name <keyVaultName> --name <keyName>
    

    키 ID인 kid 필드 값을 복사합니다.

    전체 키 ID의 형식은 일반적으로 https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>입니다. 퍼블릭이 아닌 클라우드에 있는 Azure Key Vault 키의 형식은 다릅니다.

기존 키 검색:

  1. 다음 명령을 실행합니다.

    az keyvault key show --name <key-name> --vault-name <key-vault-name>
    
  2. 기존 키에 대한 다음 세부 정보를 기록해 둡니다.

    • Key vault name: Key Vault의 이름
    • Key name: 키의 이름
    • Key version: 키의 버전
    • Key vault resource group: Key Vault의 리소스 그룹
  3. 키 정보 가져오기:

    az keyvault key show --vault-name <keyVaultName> --name <keyName>
    

    키 ID인 kid 필드 값을 복사합니다.

    전체 키 ID의 형식은 일반적으로 https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>입니다. 퍼블릭이 아닌 클라우드에 있는 Azure Key Vault 키의 형식은 다릅니다.

  4. az keyvault key show --name <key name>을 다시 실행하여 계속하기 전에 기존 키가 사용하도록 설정되어 있는지 확인합니다. 출력에 "enabled": true가 표시됩니다.

PowerShell 사용

  1. 키를 만들려는 경우 키 생성 방법과 시기에 따라 액세스 정책을 설정해야 할 수 있습니다. 예를 들어 최근에 PowerShell을 사용하여 Key Vault를 만든 경우 새 Key Vault에 키를 만드는 데 필요한 액세스 정책이 부족할 수 있습니다. 다음 예제에서는 EmailAddress 매개 변수를 사용하여 정책을 설정합니다. 관련 세부 정보는 Set-AzKeyVaultAccessPolicy에 대한 Microsoft 문서를 참조하세요.

    새 Key Vault에 대한 액세스 정책 설정:

    Set-AzKeyVaultAccessPolicy \
    -VaultName $keyVault.VaultName \
    -PermissionsToKeys all \
    -EmailAddress <email-address>
    
  2. 키를 만들거나 기존 키를 검색할 수 있습니다.

    • 키 만들기:

      $key = Add-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name> \
      -Destination 'Software'
      
    • 기존 키 검색:

      $key = Get-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name>
      

3단계: 모든 컴퓨팅 리소스 중지

작업 영역에서 모든 컴퓨팅 리소스(클러스터, 풀 및 SQL Warehouse)를 종료합니다.

4단계: 작업 영역 만들기 또는 업데이트

관리 디스크에 대한 고객 관리형 키를 사용하여 작업 영역을 만들거나 업데이트하려면 다음 배포 전략 중 하나를 선택합니다.

Azure Portal 사용(템플릿 없음)

이 섹션에서는 Azure Portal을 사용하여 템플릿을 사용하지 않고 관리 디스크에 대한 고객 관리형 키를 사용하여 작업 영역을 만들거나 업데이트하는 방법을 설명합니다.

  1. 작업 영역 만들기 또는 업데이트 시작하기:

    키를 사용하여 새 작업 영역을 만듭니다.

    1. Azure Portal 홈페이지로 이동하여 페이지 왼쪽 상단에 있는 리소스 만들기를 클릭합니다.
    2. 검색 창에서 Azure Databricks를 입력하고 Azure Databricks을 클릭합니다.
    3. Azure Databricks 위젯 내에서 만들기를 선택합니다.
    4. 기본네트워킹 탭의 양식 필드에 값을 입력합니다.
    5. 암호화 탭의 Managed Disks 섹션에서 사용자 고유의 키 사용 확인란을 선택합니다.

    처음에 기존 작업 영역에 키를 추가합니다.

    1. Azure Databricks에 대한 Azure Portal의 홈페이지로 이동합니다.
    2. 기존 Azure Databricks 작업 영역으로 이동합니다.
    3. 왼쪽 패널에서 암호화 탭을 엽니다.
    4. 고객 관리형 키 섹션에서 Managed Disks를 사용하도록 설정합니다.
  2. 암호화 필드를 설정합니다.

    • 키 식별자 필드에 Azure Key Vault 키의 키 식별자를 붙여넣습니다.
    • 구독 드롭다운에서 Azure Key Vault 키의 구독 이름을 입력합니다.
    • 키의 자동 회전을 사용하도록 설정하려면 키 자동 회전을 사용하도록 설정합니다.
  3. 나머지 탭을 완료하고 검토 + 만들기(새 작업 영역의 경우) 또는 저장(작업 영역 업데이트의 경우)을 클릭합니다.

  4. 작업 영역이 배포된 후 새 Azure Databricks 작업 영역으로 이동합니다.

  5. Azure Databricks 작업 영역의 개요 탭에서 관리되는 리소스 그룹을 클릭합니다.

  6. 관리되는 리소스 그룹의 개요 탭에서 이 리소스 그룹에서 만들어진 디스크 암호화 집합 형식의 개체를 찾습니다. 디스크 암호화 집합의 이름을 복사합니다.

  7. Azure 포털에서 이 기능에 사용 중인 키를 구성하는 데 사용된 Azure Key Vault로 이동합니다.

  8. 왼쪽 패널에서 액세스 정책 탭을 엽니다. 탭이 열리면 페이지 맨 위에 있는 만들기를 클릭합니다.

  9. 권한 탭의 키 권한 섹션 아래에서 가져오기, 키 래핑 해제 및 키 래핑을 사용 설정합니다.

  10. 다음을 클릭합니다.

  11. 보안 주체 탭에서 검색 창에 Azure Databricks 작업 영역의 관리되는 리소스 그룹 내에 설정된 디스크 암호화 이름을 입력합니다. 결과를 선택하고 다음을 클릭합니다.

    디스크 암호화 집합의 이름을 입력하고 결과를 선택합니다.

  12. 검토 + 만들기 탭을 클릭하고 만들기를 클릭합니다.

Azure CLI 사용(템플릿 없음)

새 작업 영역과 업데이트된 작업 영역 모두에 대해 다음 매개 변수를 명령에 추가합니다.

  • disk-key-name: 키 이름입니다.
  • disk-key-vault: 자격 증명 모음의 이름
  • disk-key-version: 키 버전입니다. 가 아닌 latest특정 키 버전을 사용합니다.
  • disk-key-auto-rotation: 키(true 또는 false)의 자동 회전을 사용하도록 설정합니다. 이 필드는 선택적 필드입니다. 기본값은 false입니다.

다음 명령에서는 <key-vault-uri> 대신 이전 단계의 응답에 있는 볼트 URI 값을 사용합니다. 또한 키 이름과 키 버전 값은 이전 단계의 응답에 있는 kid 값에서 찾을 수 있습니다.

  1. 작업 영역 만들기 또는 업데이트:

    • 다음 관리 디스크 매개 변수를 사용하여 작업 영역을 만드는 예제:

      az databricks workspace create --name <workspace-name> \
      --resource-group <resource-group-name> \
      --location <location> \
      --sku premium --disk-key-name <key-name> \
      --disk-key-vault <key-vault-uri> \
      --disk-key-version <key-version> \
      --disk-key-auto-rotation <true-or-false>
      
    • 다음 관리 디스크 매개 변수를 사용하여 작업 영역을 업데이트하는 예제:

      az databricks workspace update \
      --name <workspace-name> \
      --resource-group <resource-group-name> \
      --disk-key-name <key-name> \
      --disk-key-vault <key-vault-uri> \
      --disk-key-version <key-version> \
      --disk-key-auto-rotation <true-or-false>
      

    이러한 명령의 출력에는 managedDiskIdentity 개체가 있습니다. 이 객체 내에 principalId 속성 값을 저장합니다. 이는 이후 단계에서 보안 주체 ID로 사용됩니다.

  2. KeyVault에 대한 권한이 있는 액세스 정책 추가: 이전 단계의 자격 증명 모음 이름 및 보안 주체 ID를 사용합니다.

    az keyvault set-policy \
    --name <key-vault-name> \
    --object-id <principal-id> \
    --key-permissions get wrapKey unwrapKey
    

PowerShell 사용(템플릿 없음)

새 작업 영역과 업데이트된 작업 영역 모두에 대해 다음 매개 변수를 명령에 추가합니다.

  • location: 작업 영역 위치
  • ManagedDiskKeyVaultPropertiesKeyName: 키 이름
  • ManagedDiskKeyVaultPropertiesKeyVaultUri: Key Vault URI
  • ManagedDiskKeyVaultPropertiesKeyVersion: 키 버전입니다. 가 아닌 latest특정 키 버전을 사용합니다.
  • ManagedDiskRotationToLatestKeyVersionEnabled: 키(true 또는 false)의 자동 회전을 사용하도록 설정합니다. 이 필드는 선택적 필드입니다. 기본값은 false입니다.
  1. 작업 영역 만들기 또는 업데이트:

    • 관리 디스크 매개 변수를 사용하여 작업 영역을 만드는 예제:

      $workspace = New-AzDatabricksWorkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -location $keyVault.Location \
      -Sku premium \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
    • 관리 디스크 매개 변수를 사용하여 작업 영역을 업데이트하는 예제:

      $workspace = Update-AzDatabricksworkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
  2. KeyVault에 대한 키 권한이 있는 액세스 정책 추가:

    Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \
    -ObjectId $workspace.ManagedDiskIdentityPrincipalId \
    -PermissionsToKeys wrapkey,unwrapkey,get
    

Azure Portal 또는 ARM 템플릿을 사용합니다

Azure 설명서에서 Azure 빠른 시작 템플릿을 탐색할 수 있습니다. ARM 템플릿 배포 옵션 목록은 ARM 템플릿 설명서를 참조하세요.

작업 영역을 만들 때 디스크 암호화 집합 리소스도 작업 영역의 관리 리소스 그룹 내에 만들어집니다. Key Vault에 액세스하는 데 사용되도록 시스템이 할당한 관리 ID가 있습니다. Azure Databricks 컴퓨팅에서 이 키를 사용하여 데이터를 암호화하기 전에 먼저 디스크 암호화 집합의 보안 주체 ID를 검색한 다음 Key Vault에 대한 GET, WRAPUNWRAP 키 권한을 ID에 부여해야 합니다.

Databricks는 작업 영역을 만들거나 업데이트하고 동일한 템플릿 배포에서 Key Vault 권한을 부여하는 것을 권장합니다. 한 가지 예외를 제외하고 Key Vault 권한을 부여하기 전에 작업 영역을 만들거나 업데이트해야 합니다. 새 Key Vault에서 새 키를 사용하도록 기존 관리 디스크 고객 관리형 키 작업 영역을 업데이트하는 경우 새 Key Vault에 대한 액세스 권한을 기존 디스크 암호화 집합에 부여하고 작업 영역을 새 키 구성으로 업데이트해야 합니다.

이 섹션의 예제 템플릿은 다음 두 가지를 모두 수행합니다.

  • 작업 영역을 만들거나 업데이트하여 관리 디스크 고객 관리형 키 설정을 추가
  • Key Vault에 대한 디스크 암호화 집합 액세스 권한 부여

다음 예제 ARM 템플릿을 사용할 수 있습니다. 이 템플릿은 두 가지 작업을 수행합니다.

  • 관리 디스크 고객 관리 키로 작업 영역을 만들거나 업데이트합니다.
  • 키 액세스 정책을 만듭니다.

이미 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 create"
           }
       },
       "pricingTier": {
           "type": "string",
           "defaultValue": "premium",
           "allowedValues": [
               "premium"
           ],
           "metadata": {
               "description": "The pricing tier of workspace"
           }
       },
       "apiVersion": {
           "type": "string",
           "defaultValue": "2023-02-01",
           "allowedValues": [
               "2023-02-01",
               "2022-04-01-preview"
           ],
           "metadata": {
               "description": "The API version to use to create the workspace resources"
           }
       },
       "keyVaultName": {
           "type": "string",
           "metadata": {
               "description": "The Key Vault name used for CMK"
           }
       },
       "keyName": {
           "type": "string",
           "metadata": {
               "description": "The key name used for CMK"
           }
       },
       "keyVersion": {
           "type": "string",
           "metadata": {
               "description": "The key version used for CMK. Use the specific key version and not `latest`."
           }
       },
       "keyVaultResourceGroupName": {
           "type": "string",
           "metadata": {
               "description": "The resource group name of the Key Vault used for CMK"
           }
       },
       "enableAutoRotation": {
           "type": "bool",
           "defaultValue": false,
           "allowedValues": [
               true,
               false
           ],
           "metadata": {
               "description": "Whether managed disk picks up new key versions automatically"
           }
       }
   },
   "variables": {
       "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
   },
   "resources": [
       {
           "type": "Microsoft.Databricks/workspaces",
           "name": "[parameters('workspaceName')]",
           "location": "[resourceGroup().location]",
           "apiVersion": "[parameters('apiVersion')]",
           "sku": {
               "name": "[parameters('pricingTier')]"
           },
           "properties": {
               "managedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
               "encryption": {
                   "entities": {
                       "managedDisk": {
                           "keySource": "Microsoft.Keyvault",
                           "keyVaultProperties": {
                               "keyVaultUri": "[concat('https://', parameters('keyVaultName'), environment().suffixes.keyvaultDns)]",
                               "keyName": "[parameters('keyName')]",
                               "keyVersion": "[parameters('keyVersion')]"
                           },
                           "rotationToLatestKeyVersionEnabled": "[parameters('enableAutoRotation')]"
                       }
                   }
               }
           }
       },
       {
           "type": "Microsoft.Resources/deployments",
           "apiVersion": "2020-06-01",
           "name": "addAccessPolicy",
           "resourceGroup": "[parameters('keyVaultResourceGroupName')]",
           "dependsOn": [
               "[resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName'))]"
           ],
           "properties": {
               "mode": "Incremental",
               "template": {
                   "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
                   "contentVersion": "0.9.0.0",
                   "resources": [
                       {
                           "type": "Microsoft.KeyVault/vaults/accessPolicies",
                           "apiVersion": "2019-09-01",
                           "name": "[concat(parameters('keyVaultName'), '/add')]",
                           "properties": {
                               "accessPolicies": [
                                   {
                                       "objectId": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')), '2023-02-01').managedDiskIdentity.principalId]",
                                       "tenantId": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')), '2023-02-01').managedDiskIdentity.tenantId]",
                                       "permissions": {
                                           "keys": [
                                               "get",
                                               "wrapKey",
                                               "unwrapKey"
                                           ]
                                       }
                                   }
                               ]
                           }
                       }
                   ]
               }
           }
       }
   ],
   "outputs": {
       "workspace": {
           "type": "object",
           "value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
       }
   }
}

Azure Portal, CLI 또는 기타 도구를 포함하여 원하는 도구와 함께 템플릿을 사용합니다. 다음 템플릿 배포 전략에 대한 세부 정보가 포함됩니다.

Azure Portal을 사용하는 ARM 템플릿

Azure Portal에서 ARM 템플릿을 사용하여 작업 영역을 만들거나 업데이트하려면 다음을 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 리소스 만들기를 클릭하고, 템플릿 배포(사용자 지정 템플릿을 사용하여 배포)를 클릭합니다.

  3. 사용자 지정 배포 페이지에서 편집기에서 사용자 고유의 템플릿 빌드를 클릭합니다.

  4. 예제 템플릿의 콘텐츠를 편집기에 붙여넣습니다.

    Azure 사용자 지정 배포 포털의 배포 편집 페이지

  5. 저장을 클릭합니다.

  6. 매개 변수 값을 입력합니다.

    기존 작업 영역을 업데이트하려면 작업 영역을 만드는 데 사용한 것과 동일한 매개 변수를 사용합니다. 고객 관리 키를 처음으로 추가하려면 위 템플릿에 표시된 대로 resources.properties.encryption.entities.managedDisk 아래에 키 관련 매개변수를 추가합니다. 키를 회전하려면 키 관련 매개 변수의 일부 또는 전부를 변경합니다.

    Important

    작업 영역을 업데이트하는 경우 템플릿의 리소스 그룹 이름과 작업 영역 이름이 기존 작업 영역의 리소스 그룹 이름 및 작업 영역 이름과 동일해야 합니다.

    Azure 사용자 지정 배포 포털의 프로젝트 세부 정보 페이지

  7. 검토 + 만들기를 클릭합니다.

  8. 유효성 검사 문제를 해결한 다음 만들기를 클릭합니다.

Important

키를 회전하는 경우 작업 영역 업데이트가 완료될 때까지 이전 키를 삭제하지 마세요.

Azure CLI를 사용하여 ARM 템플릿 적용

이 섹션에서는 Azure CLI에서 ARM 템플릿을 사용하여 키로 작업 영역을 만들거나 업데이트하는 방법을 설명합니다.

  1. 템플릿에 resources.properties.encryption.entities.managedDisk 및 관련 매개변수 keyvaultName, keyName, keyVersionkeyVaultResourceGroupName에 대한 섹션이 포함되어 있는지 확인합니다. 없는 경우 이 섹션의 앞부분에서 예제 템플릿을 참조하고 해당 섹션의 병합 및 매개 변수를 템플릿에 병합합니다.

  2. az deployment group create 명령을 실행합니다. 리소스 그룹 이름과 작업 영역 이름이 기존 작업 영역의 리소스 이름 및 작업 영역 이름과 동일한 경우 이 명령은 새 작업 영역을 만드는 대신 기존 작업 영역을 업데이트합니다. 기존 배포를 업데이트하는 경우 이전에 사용한 것과 동일한 리소스 그룹 및 작업 영역 이름을 사용해야 합니다.

    az deployment group create --resource-group <existing-resource-group-name>  \
                               --template-file <file-name>.json \
                               --parameters workspaceName=<workspace-name> \
                                            keyvaultName=<key-vault-name> \
                                            keyName=<key-name> keyVersion=<key-version> \
                                            keyVaultResourceGroupName=<key-vault-resource-group>
    

    Important

    키를 회전하는 경우 작업 영역 업데이트가 완료된 후에만 이전 키를 삭제할 수 있습니다.

5단계: 컴퓨팅 리소스에서 키를 사용하는지 확인(선택 사항)

작업 영역에 대해 관리 디스크 고객 관리 키 기능이 사용 설정되어 있는지 확인합니다.

  1. 다음 중 하나를 수행하여 Azure Databricks 작업 영역 세부 정보를 검색합니다.

    • Azure Portal

      1. Azure Portal에서 작업 영역을 클릭하고 작업 영역의 이름을 클릭합니다.
      2. 작업 영역 페이지에서 JSON 보기를 클릭합니다.
      3. 2022-04-01-preview API 버전보다 높은 API 버전을 클릭합니다.
    • Azure CLI

      다음 명령을 실행합니다.

      az databricks workspace show --resource-group <resource group name> --name <workspace name>
      

      관리 디스크 암호화 매개 변수는 properties 아래에 있습니다. 예시:

      "properties": {
           "encryption": {
               "entities": {
                   "managedDisk": {
                     "keySource": "Microsoft.Keyvault",
                     "keyVaultProperties": {
                         "keyVaultUri": "<key-vault-uri>",
                         "keyName": "<key-name>",
                         "keyVersion": "<key-version>"
                     },
                     "rotationToLatestKeyVersionEnabled": "<rotation-enabled>"
                 }
            }
        }
      
    • Powershell

      Get-AzDatabricksWorkspace -Name <workspace-name> -ResourceGroupName <resource-group-name> |
        Select-Object -Property ManagedDiskKeySource,
         ManagedDiskKeyVaultPropertiesKeyVaultUri,
         ManagedServicesKeyVaultPropertiesKeyName,
         ManagedServicesKeyVaultPropertiesKeyVersion,
         ManagedDiskRotationToLatestKeyVersionEnabled
      

      출력에서 반환되는 속성의 값을 검토합니다.

      ManagedDiskKeySource                           : Microsoft.Keyvault
      ManagedDiskKeyVaultPropertiesKeyVaultUri       : <key-vault-uri>
      ManagedServicesKeyVaultPropertiesKeyName       : <key-name>
      ManagedServicesKeyVaultPropertiesKeyVersion    : <key-version>
      ManagedDiskRotationToLatestKeyVersionEnabled   : <rotation-enabled>
      
  2. 테스트에 사용할 작업 영역에 대한 컴퓨팅 리소스 만들기:

    컴퓨팅 리소스가 성공적으로 시작되지 않는 경우, 일반적으로 디스크 암호화 세트에 키 볼트에 액세스할 수 있는 적절한 권한을 부여해야 하기 때문입니다.

  3. Azure Portal에서 작업 영역을 클릭하고 작업 영역의 이름을 클릭합니다.

  4. 작업 영역 페이지에서 작업 영역이 속한 관리되는 리소스 그룹의 이름을 클릭합니다.

  5. 리소스 그룹 페이지의 리소스에서 가상 머신의 이름을 클릭합니다.

  6. 가상 머신 페이지의 왼쪽에 있는 설정에서 디스크를 클릭합니다.

    디스크 페이지의 데이터 디스크 아래에서 디스크의 암호화 필드에 값이 SSE with CMK로 설정되어 있는지 확인합니다.

6단계: 이전에 종료된 컴퓨팅 리소스 시작

  1. 작업 영역 업데이트가 완료되었는지 확인합니다. 키가 템플릿의 유일한 변경 사항인 경우 일반적으로 5분 이내에 완료됩니다. 그렇지 않으면 더 많은 시간이 걸릴 수 있습니다.
  2. 이전에 종료한 모든 컴퓨팅 리소스를 수동으로 시작합니다.

컴퓨팅 자원이 성공적으로 시작되지 않는 경우, 일반적으로 디스크 암호화 세트에 키 볼트에 액세스할 수 있는 권한을 부여해야 하기 때문입니다.

나중에 키 회전

기존 작업 영역에는 키가 이미 있는 두 가지 유형의 키 회전이 있습니다.

  • 자동 순환: rotationToLatestKeyVersionEnabled가 작업 영역에 대해 true인 경우 디스크 암호화 집합은 키 버전 변경을 감지하고 최신 키 버전을 가리킵니다.
  • 수동 회전: 기존 관리 디스크 고객 관리형 키 작업 영역을 새 키로 업데이트할 수 있습니다. 기존 작업 영역에 키를 처음 추가하는 것처럼 위의 지침을 따릅니다.

문제 해결

클러스터가 KeyVaultAccessForbidden로 실패함

문제는 클러스터가 다음 오류 와 함께 시작되지 않는다는 것입니다.

Cloud Provider Launch Failure: KeyVaultAccessForbidden

작업 영역의 관리되는 리소스 그룹에 만든 디스크 암호화 집합에 Key Vault에 액세스할 수 있는 권한을 부여합니다. 필요한 권한: GET, WRAPKEY, UNWRAPKEY.

4단계: 배포 유형에 대한 작업 영억 만들기 또는 업데이트 의 하위 섹션을 다시 읽고, 특정 권한을 사용한 Key Vault 액세스 정책 업데이트에 특히 주의해야 합니다.

키 매개 변수가 없습니다.

관리 디스크 고객 관리 키 매개 변수가 누락되었습니다.

ARM 템플릿이 리소스에 대해 Microsoft.Databricks/workspaces 올바른 API 버전을 사용하는지 확인합니다. 관리 디스크 고객 관리형 키 기능은 API 버전 이상 2022-04-01-preview에서만 사용할 수 있습니다. 다른 API 버전을 사용하는 경우 작업 영역이 만들어지거나 업데이트되지만 관리 디스크 매개 변수는 무시됩니다.

ApplicationUpdateFail로 작업 영역 업데이트 실패

이 문제는 관리되는 디스크 사용 작업 영역에 대해 다음 오류와 함께 작업 영역 업데이트 또는 패치 작업이 실패하는 것입니다.

Failed to update application: `<workspace name>`, because patch resource group failure. (Code: ApplicationUpdateFail)

디스크 암호화 집합에 Key Vault에 대한 액세스 권한을 부여한 다음 태그 추가와 같이 작업 영역 업데이트 작업을 수행합니다.

액세스 정책이 없습니다.

문제는 다음과 같은 오류입니다.

ERROR CODE: BadRequest MESSAGE: Invalid value found at accessPolicies[14].ObjectId: <objectId>

위의 개체 ID가 있는 액세스 정책이 Key Vault에서 유효하지 않습니다. Key Vault에 새 액세스 정책을 추가하려면 제거해야 합니다.

분실한 키를 복구할 수 없음

분실한 키는 복구할 수 없습니다. 키를 분실하거나 해지하여 복구할 수 없는 경우 Azure Databricks 컴퓨팅 리소스가 더 이상 작동하지 않습니다. 작업 영역의 다른 기능은 영향을 받지 않습니다.

리소스