Povolte klíče spravované zákazníkem pro spravované služby

Poznámka:

Tato funkce vyžaduje plán Premium.

Pro další kontrolu nad daty můžete přidat vlastní klíč pro ochranu a řízení přístupu k některým typům dat. Azure Databricks má několik klíčových funkcí spravovaných zákazníkem. Informace o porovnání souvisejících funkcí najdete v tématu Klíče spravované zákazníkem pro šifrování.

Tip

Tento článek popisuje, jak nakonfigurovat vlastní klíč z trezorů služby Azure Key Vault pro spravované služby. Pokyny k použití klíče ze spravovaného HSM služby Azure Key Vault najdete v tématu Povolení klíčů spravovaných zákazníkem HSM pro spravované služby.

Data spravovaných služeb v řídicí rovině Azure Databricks se šifrují v klidovém stavu. Můžete přidat klíč spravovaný zákazníkem pro spravované služby, který pomáhá chránit a řídit přístup k následujícím typům šifrovaných dat:

Po přidání šifrování klíče spravovaného zákazníkem pro pracovní prostor použije Azure Databricks váš klíč k řízení přístupu ke klíči, který šifruje budoucí operace zápisu do dat spravovaných služeb vašeho pracovního prostoru. Existující data nejsou znovu zašifrována. Šifrovací klíč dat se ukládá do mezipaměti pro několik operací čtení a zápisu a vyřadí se z paměti v pravidelných intervalech. Nové žádosti o tato data vyžadují další požadavek na systém správy klíčů cloudové služby. Pokud klíč odstraníte nebo odvoláte, čtení nebo zápis do chráněných dat selže na konci časového intervalu mezipaměti.

Klíč spravovaný zákazníkem můžete později otočit (aktualizovat). Viz Otočení klíče později.

Tato funkce nešifruje data uložená mimo řídicí rovinu. Další funkce klíčů spravovaných zákazníkem najdete v tématu Klíče spravované zákazníkem pro šifrování.

Požadavky

Krok 1: Nastavení služby Key Vault

Musíte vytvořit instanci služby Azure Key Vault a nastavit její oprávnění. Můžete to provést prostřednictvím webu Azure Portal, rozhraní příkazového řádku nebo rozhraní API.

Důležité

Key Vault musí být ve stejném tenantovi Azure jako váš pracovní prostor Azure Databricks.

Tyto pokyny nabízejí podrobnosti o několika možnostech nasazení:

Použití webu Azure Portal

  1. Vytvoření nebo výběr služby Key Vault:
    • Pokud chcete vytvořit službu Key Vault, přejděte na stránku webu Azure Portal pro vytvoření služby Key Vault. Klikněte na + Vytvořit. Zadejte název skupiny prostředků, název služby Key Vault, oblast a cenovou úroveň. Klikněte na Zkontrolovat a vytvořit a pak klikněte na Vytvořit.
    • Pokud chcete použít existující službu Key Vault, zkopírujte její název služby Key Vault pro další krok.
  2. Získejte ID objektu aplikace AzureDatabricks :
    1. Na webu Azure Portal přejděte na Microsoft Entra ID.
    2. V nabídce na bočním panelu vyberte Podnikové aplikace.
    3. Ve výsledcích vyhledejte AzureDatabricks a klikněte na podnikovou aplikaci.
    4. Z části Vlastnosti zkopírujte ID objektu.
  3. Přidejte zásadu přístupu ke službě Key Vault pomocí webu Azure Portal:
    1. Přejděte do služby Azure Key Vault, kterou použijete ke konfiguraci klíčů spravovaných zákazníkem pro spravované služby pro váš pracovní prostor.

    2. Na levém panelu klikněte na kartu Zásady přístupu.

    3. Vyberte tlačítko Vytvořit, které se nachází v horní části stránky.

    4. V oddílu Oprávnění ke klíči povolte na kartě Oprávnění možnosti Získat, Rozbalit klíč a Sbalit klíč.

    5. Klikněte na tlačítko Další.

    6. Na kartě Objekt zabezpečení zadejte AzureDatabricks a posuňte se na první výsledek podnikové aplikace s ID aplikace a vyberte ho2ff814a6-3304-4ab8-85cb-cd0e6f879c1d.

      Výběr aplikace AzureDatabricks s ID 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d

    7. Pokračujte na kartu Zkontrolovat a vytvořit a klikněte na b.

Použití Azure CLI

K dokončení následujících pokynů použijte Azure CLI.

  1. Vytvořte službu Key Vault nebo vyberte existující službu Key Vault:

    • Pokud chcete vytvořit službu Key Vault, použijte následující příkaz Azure CLI a nahraďte položky v závorkách vaší oblastí, názvem služby Key Vault, názvem skupiny prostředků a umístěním:

      az keyvault create --location <region> \
                         --name <key-vault-name> \
                         --resource-group <resource-group-name> \
                         --location <location> \
                         --enable-purge-protection
      
    • Pokud chcete použít existující službu Key Vault, zkopírujte název služby Key Vault pro další krok.

  2. Získejte ID objektu aplikace AzureDatabricks pomocí Azure CLI.

    az ad sp show --id "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d" \
                  --query "id" \
                  --output tsv
    
  3. Ověřte, že používáte správné předplatné Azure:

    az account set --subscription {subscription_id}
    

Použití Azure PowerShellu

Můžete vytvořit novou službu Key Vault nebo použít existující trezor klíčů.

Vytvoření služby Key Vault:

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

Použijte existující službu Key Vault:

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

Krok 2: Příprava klíče

Můžete vytvořit klíč nebo použít existující klíč. Použijte libovolné nástroje, které chcete použít: Azure Portal, Azure CLI nebo jiné nástroje.

Použití Azure CLI

Vytvořte klíč ve službě Key Vault. KeyType musí být RSA.

Pokud chcete vytvořit klíč v rozhraní příkazového řádku, spusťte tento příkaz:

az keyvault key create --name <key-name> \
                       --vault-name <key-vault-name> \
                       --protection software

Poznamenejte si následující hodnoty, které můžete získat z ID klíče ve kid vlastnosti v odpovědi. Použijete je v následujících krocích:

  • Adresa URL trezoru klíčů: Počáteční část ID klíče, která obsahuje název služby Key Vault. Má formulář https://<key-vault-name>.vault.azure.net.
  • Název klíče: Název klíče.
  • Verze klíče: Verze klíče.

Úplné ID klíče má obvykle formulář https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>. Klíče služby Azure Key Vault, které jsou v neveřejném cloudu, mají jiný tvar.

Pokud chcete místo vytvoření použít existující klíč, získejte a zkopírujte tyto hodnoty pro klíč, abyste je mohli použít v dalších krocích. Než budete pokračovat, zkontrolujte, že je váš existující klíč povolený.

Použití Azure PowerShellu

  1. Pokud plánujete vytvořit klíč, budete možná muset nastavit zásady přístupu v závislosti na tom, jak a kdy jste ho vytvořili. Pokud jste například nedávno vytvořili službu Key Vault pomocí PowerShellu, může nová služba Key Vault obsahovat zásady přístupu potřebné k vytvoření klíče. Následující příklad používá EmailAddress parametr k nastavení zásady. Související podrobnosti najdete v článku o Set-AzKeyVaultAccessPolicy.

    Nastavte zásady přístupu v nové službě Key Vault:

    Set-AzKeyVaultAccessPolicy \
    -VaultName $keyVault.VaultName \
    -PermissionsToKeys all \
    -EmailAddress <email-address>
    
  2. Můžete vytvořit klíč nebo načíst existující klíč:

    • Vytvoření klíče:

      $key = Add-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name> \
      -Destination 'Software'
      
    • Načtení existujícího klíče:

      $key = Get-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name>
      
  3. Přidejte zásadu přístupu s oprávněními ke službě Key Vault:

    $managedService = Get-AzureADServicePrincipal \
    -Filter "appId eq '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d'"
    
    Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \
    -ObjectId $managedService.ObjectId \
    -PermissionsToKeys wrapkey,unwrapkey,get
    

Krok 3: Přidání klíče do pracovního prostoru

Můžete nasadit nový pracovní prostor s klíčem spravovaným zákazníkem pro spravované služby nebo přidat klíč do existujícího pracovního prostoru. Obojí můžete provést pomocí Azure CLI, PowerShellu, šablon ARM, webu Azure Portal nebo jiných nástrojů. Tato část obsahuje podrobnosti o několika možnostech nasazení:

Použití webu Azure Portal bez šablony

  1. Přejděte na domovskou stránku webu Azure Portal.

  2. V levém horním rohu stránky klikněte na Vytvořit prostředek .

  3. Na panelu hledání zadejte Azure Databricks a klikněte na možnost Azure Databricks .

  4. Klikněte na Vytvořit ve widgetu Azure Databricks.

  5. Zadejte hodnoty pro vstupní pole na kartách Základy a Sítě .

  6. Po dosažení karty Šifrování :

    • Pokud chcete vytvořit pracovní prostor, povolte v části Spravované služby vlastní klíč .
    • Pokud chcete aktualizovat pracovní prostor, povolte spravované služby.
  7. Nastavte pole šifrování.

    Zobrazení polí v části Spravované disky okna Azure Databricks

    • Do pole Identifikátor klíče vložte identifikátor klíče vašeho klíče služby Azure Key Vault.
    • V rozevíracím seznamu Předplatné zadejte název předplatného klíče služby Azure Key Vault.
  8. Dokončete zbývající karty a klikněte na Zkontrolovat a vytvořit (pro nový pracovní prostor) nebo Uložit (pro aktualizaci pracovního prostoru).

Důležité

Pokud klíč otočíte, musíte nechat starý klíč dostupný po dobu 24 hodin.

Použití Azure CLI bez šablony

  1. Pomocí následujícího příkazu přidejte zásadu přístupu do služby Key Vault. Nahraďte <key-vault-name> názvem trezoru, který jste použili v předchozím kroku, a nahraďte <object-id> ID objektu AzureDatabricks aplikace.

    az keyvault set-policy -n <key-vault-name> \
                           --key-permissions get wrapKey unwrapKey  \
                           --object-id <object-id>
    
  2. Vytvoření nebo aktualizace pracovního prostoru:

    Pro vytvoření i aktualizaci přidejte do příkazu tato pole:

    • managed-services-key-name: Název klíče
    • managed-services-key-vault: Identifikátor URI trezoru klíčů
    • managed-services-key-version: Verze klíče

    Příklad vytvoření pracovního prostoru pomocí těchto polí:

    az databricks workspace create --name <workspace-name> \
    --resource-group <resource-group-name> \
    --location <location> \
    --sku premium \
    --managed-services-key-name <key-name> \
    --managed-services-key-vault <key-vault-uri> \
    --managed-services-key-version <key-version>
    

    Příklad aktualizace pracovního prostoru pomocí těchto polí:

    az databricks workspace update --name <workspace-name> \
    --resource-group <resource-group-name> \
    --managed-services-key-name <key-name> \
    --managed-services-key-vault <key-vault-uri> \
    --managed-services-key-version <key-version>
    

Důležité

Pokud klíč otočíte, musíte nechat starý klíč dostupný po dobu 24 hodin.

Použití PowerShellu bez šablony

Pokud chcete vytvořit nebo aktualizovat pracovní prostor, přidejte do příkazu nový klíč následující parametry:

  • ManagedServicesKeyVaultPropertiesKeyName: Název klíče
  • ManagedServicesKeyVaultPropertiesKeyVaultUri: Identifikátor URI klíče
  • ManagedServicesKeyVaultPropertiesKeyVersion: Verze klíče

Příklad vytvoření pracovního prostoru s těmito poli:

New-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-location $keyVault.Location \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version

Ukázková aktualizace pracovního prostoru s těmito poli:

Update-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version

Důležité

Pokud klíč otočíte, musíte nechat starý klíč dostupný po dobu 24 hodin.

Použití změn pomocí šablony ARM

Následující šablona ARM vytvoří nový pracovní prostor s klíčem spravovaným zákazníkem pomocí verze 2023-02-01 rozhraní API pro prostředek Microsoft.Databricks/workspaces. Uložte tento text místně do souboru s názvem databricks-cmk-template.json.

Tato ukázková šablona neobsahuje všechny možné funkce Azure Databricks, jako je například poskytnutí vlastní virtuální sítě , do které se má pracovní prostor nasadit.

Důležité

Pokud už šablonu používáte, sloučíte do stávající šablony další parametry, prostředky a výstupy této šablony.

{
  "$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": [
        "standard",
        "premium"
      ],
      "metadata": {
        "description": "The pricing tier of workspace."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "apiVersion": {
      "type": "string",
      "defaultValue": "2023-02-01",
      "allowedValues":[
        "2023-02-01",
        "2021-04-01-preview"
      ],
      "metadata": {
        "description": "The api version to create the workspace resources"
      }
    },
    "keyvaultUri": {
      "type": "string",
      "metadata": {
        "description": "The Key Vault URI for customer-managed key for managed services"
      }
    },
    "keyName": {
      "type": "string",
      "metadata": {
        "description": "The key name used for customer-managed key for managed services"
      }
    },
    "keyVersion": {
      "type": "string",
      "metadata": {
        "description": "The key version used for customer-managed key for managed services"
      }
    }
  },
  "variables": {
    "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Databricks/workspaces",
      "name": "[parameters('workspaceName')]",
      "location": "[parameters('location')]",
      "apiVersion": "[parameters('apiVersion')]",
      "sku": {
        "name": "[parameters('pricingTier')]"
      },
      "properties": {
        "ManagedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
        "encryption": {
          "entities": {
             "managedServices": {
                "keySource": "Microsoft.Keyvault",
                "keyVaultProperties": {
                   "keyVaultUri": "[parameters('keyvaultUri')]",
                   "keyName": "[parameters('keyName')]",
                   "keyVersion": "[parameters('keyVersion')]"
                }
             }
          }
        }
      }
    }
  ],
  "outputs": {
    "workspace": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
    }
  }
}

Pokud už používáte jinou šablonu, můžete sloučit parametry, prostředky a výstupy této šablony do stávající šablony.

Pokud chcete tuto šablonu použít k vytvoření nebo aktualizaci pracovního prostoru, zvolte jednu z těchto možností nasazení:

Použití šablony pomocí Azure CLI

Pokud chcete vytvořit nový pracovní prostor pomocí Azure CLI, spusťte následující příkaz:

az deployment group create --resource-group <resource-group-name>  \
                           --template-file <file-name>.json \
                           --parameters workspaceName=<new-workspace-name> \
                           keyvaultUri=<keyvaultUrl> \
                           keyName=<keyName> keyVersion=<keyVersion>

Pokud chcete existující pracovní prostor aktualizovat tak, aby používal pracovní prostor klíčů spravovaný zákazníkem (nebo abyste mohli stávající klíč otočit) pomocí Azure CLI:

  1. Pokud vaše šablona ARM, která nasadila pracovní prostor, nikdy nepřidávala klíče spravované zákazníkem, přidejte resources.properties.encryption oddíl a související parametry. Viz šablona dříve v tomto článku.

    1. resources.properties.encryption Přidejte oddíl ze šablony.
    2. parameters V části přidejte tři nové parametry keyvaultUrikeyNamea keyVersion ze šablony.
  2. Spusťte stejný příkaz jako pro vytvoření nového pracovního prostoru. Pokud je název skupiny prostředků a název pracovního prostoru identické s vaším existujícím pracovním prostorem, tento příkaz aktualizuje stávající pracovní prostor místo vytvoření nového pracovního prostoru.

    az deployment group create --resource-group <existing-resource-group-name>  \
                               --template-file <file-name>.json \
                               --parameters workspaceName=<existing-workspace-name> \
                               keyvaultUri=<keyvaultUrl> \
                               keyName=<keyName> keyVersion=<keyVersion>
    

    Kromě změn v parametrech souvisejících s klíči použijte stejné parametry, které byly použity k vytvoření pracovního prostoru.

    Důležité

    Pokud klíč otočíte, musíte nechat starý klíč dostupný po dobu 24 hodin.

Použití šablony pomocí webu Azure Portal

Použití šablony na webu Azure Portal k vytvoření nebo aktualizaci pracovního prostoru:

  1. Přejděte na stránku Vlastní nasazení .

  2. V editoru klikněte na Vytvořit vlastní šablonu.

  3. Vložte json.

  4. Klikněte na Uložit.

  5. Vyplňte parametry.

    Pokud chcete aktualizovat existující pracovní prostor, použijte stejné parametry, které jste použili k vytvoření pracovního prostoru. Pokud chcete klíč přidat poprvé, přidejte tři parametry související s klíči. Pokud chcete klíč otočit, změňte některé nebo všechny parametry související s klíči. Ujistěte se, že název skupiny prostředků a název pracovního prostoru jsou shodné s vaším existujícím pracovním prostorem. Pokud jsou stejné, tento příkaz aktualizuje existující pracovní prostor místo vytvoření nového pracovního prostoru.

    Kromě změn v parametrech souvisejících s klíči použijte stejné parametry, které byly použity k vytvoření pracovního prostoru.

  6. Klikněte na Zkontrolovat a vytvořit.

  7. Pokud neexistují žádné problémy s ověřením, klikněte na Vytvořit.

    Důležité

    Pokud klíč otočíte, musíte nechat starý klíč dostupný po dobu 24 hodin.

Další podrobnosti najdete v článku Azure Rychlý start: Vytvoření a nasazení šablon ARM pomocí webu Azure Portal.

Krok 4 (volitelné): Opětovné import poznámkových bloků

Po počátečním přidání klíče pro spravované služby pro existující pracovní prostor budou klíč používat jenom budoucí operace zápisu. Existující data nejsou znovu zašifrována.

Všechny poznámkové bloky můžete exportovat a pak je znovu importovat, aby klíč, který šifruje data, je chráněný a řízený vaším klíčem. Můžete použít rozhraní API pro export a import pracovních prostorů.

Otočení klíče později

Pokud už používáte klíč spravovaný zákazníkem pro spravované služby, můžete pracovní prostor aktualizovat novou verzí klíče nebo zcela novým klíčem. Tomu se říká obměna klíčů.

  1. Vytvořte nový klíč nebo obměňte existující klíč ve službě Key Vault. Viz Krok 1: Nastavení trezoru Azure Key Vault.

    Ujistěte se, že nový klíč má správná oprávnění.

  2. Ověřte, že vaše šablona má správnou verzi rozhraní API. Musí být roven nebo vyšší než 2021-04-01-preview.

  3. Aktualizujte pracovní prostor pomocí nového klíče pomocí portálu, rozhraní příkazového řádku nebo PowerShellu. Viz krok 3: Přidejte do pracovního prostoru klíč a postupujte podle pokynů pro aktualizaci pracovního prostoru. Ujistěte se, že pro název skupiny prostředků a název pracovního prostoru používáte stejné hodnoty, aby aktualizoval existující pracovní prostor, a nevytvoli nový pracovní prostor. Kromě změn v parametrech souvisejících s klíči použijte stejné parametry, které byly použity k vytvoření pracovního prostoru.

    Důležité

    Pokud klíč otočíte, musíte nechat starý klíč dostupný po dobu 24 hodin.

  4. Volitelně můžete exportovat a znovu importovat existující poznámkové bloky, abyste měli jistotu, že všechny existující poznámkové bloky používají nový klíč.

Řešení problému

Náhodné odstranění klíče

Pokud odstraníte klíč ve službě Azure Key Vault, přihlášení k pracovnímu prostoru se nezdaří a Azure Databricks nebude číst žádné poznámkové bloky. Pokud se tomu chcete vyhnout, doporučujeme povolit obnovitelné odstranění. Tato možnost zajišťuje, že v případě odstranění klíče je možné ho do 30 dnů obnovit. Pokud je povolené obnovitelné odstranění, můžete tento problém snadno vyřešit opětovným povolením klíče.

Selhání aktualizace klíče kvůli oprávněním služby Key Vault

Pokud máte potíže s vytvořením pracovního prostoru, zkontrolujte, jestli má služba Key Vault správná oprávnění. Chyba, která je vrácena z Azure, to nemusí správně indikovat, jako kořenovou příčinu. Požadovaná oprávnění jsou gettaké , wrapKeya unwrapKey. Viz Krok 1: Nastavení trezoru Azure Key Vault.

Ztracené klíče jsou neobnovitelné

Pokud svůj klíč ztratíte a nemůžete ho obnovit, nebude možné obnovit žádná data poznámkových bloků šifrovaná tímto klíčem.