Konfigurera externa hemligheter i Unity-katalogen

Important

Den här funktionen finns i Beta.

Den här sidan visar hur man kopplar ett Unity Catalog-schema till en extern hemlig hanterare så att dess hemlighetsvärden stannar kvar i Azure Key Vault.

För hur externa hemligheter fungerar och deras begränsningar, se Externa hemligheter i Unity-katalogen.

Requirements

  • Uppfylla kraven för hemligheter i Unity Catalog.
  • Betaversionen av Externa hemligheter måste vara aktiverad för din arbetsyta.
  • Schemat du vill backa externt får inte innehålla några Azure Databricks-hanterade hemligheter. Radera befintliga hemligheter innan du byter backend.
  • Du måste ha en Unity Catalog-anslutning till din externa hemliga manager och en Unity Catalog-tjänstelegitimation som anslutningen använder för autentisering. För att skapa dessa måste du ha USE CONNECTION en befintlig anslutning eller CREATE CONNECTION på metastore för att skapa en, och tillgång till en tjänstelegitimation, eller CREATE CREDENTIAL på metastore för att skapa en.
  • Stöd för Azure Key Vault är endast tillgängligt i Azure Databricks i Azure, med en AZURE_KEY_VAULT-anslutning.

Konfigurera externa hemligheter

Skapa en tjänstelegitimation

Anslutningen autentiseras till din externa hemliga hanterare med en Unity Catalog-tjänstelegitimation.

Skapa en tjänstelegitimation som backas upp av en hanterad identitet eller tjänstehuvudperson och ge den behörighet att lista och läsa hemligheter från mål-Key Vault. Till exempel, tilldela rollen Key Vault Secrets User eller en motsvarande åtkomstpolicy med hemlighetsbehörigheterna get och list. För instruktioner, se Skapa tjänsteuppgifter.

Skapa en anslutning

Skapa en Unity Catalog-anslutning som refererar till tjänstelegitimationen från föregående steg och pekar på din externa hemliga hanterare.

Katalogutforskaren

  1. I Azure Databricks, öppna Katalogutforskaren, klicka på menyn + och välj Skapa en anslutning.
  2. Ange ett anslutningsnamn och välj anslutningstypen Azure Key Vault.
  3. Välj tjänstelegitimationen för att autentisera dig med och ställ in valvnamnet på din Key Vault.
  4. Klicka på Skapa.

Databricks kommandoradsgränssnitt (CLI)

Passa anslutningskroppen med --json, med anslutningstypen AZURE_KEY_VAULT . Ange vault_name som namnet på ditt Key Vault och credential som namnet på tjänstautentiseringsuppgiften:

databricks connections create --json '{
  "name": "my_key_vault_connection",
  "connection_type": "AZURE_KEY_VAULT",
  "options": {
    "vault_name": "my-vault",
    "credential": "my_key_vault_credential"
  }
}'

REST API

Använd slutpunkten /api/2.1/unity-catalog/connections med anslutningstypen AZURE_KEY_VAULT . Azure Databricks översätter vault_name till https://<vault_name>.vault.azure.net:

curl -X POST \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "my_key_vault_connection",
    "connection_type": "AZURE_KEY_VAULT",
    "options": {
      "vault_name": "my-vault",
      "credential": "my_key_vault_credential"
    }
  }' \
  "$DATABRICKS_HOST/api/2.1/unity-catalog/connections"

Säkerhetskopiera ett databasschema med hjälp av anslutningen

Konfigurera schemats hemliga backend i Catalog Explorer.

  1. I Azure Databricks, öppna Catalog Explorer och gå till schemat.

  2. I schemats detaljer, hitta inställningen för extern hemlighetshanterare och klicka på Aktivera.

    Schemat får inte innehålla några Azure Databricks-hanterade hemligheter. Om det gör det, ta bort dem först. Aktivera förblir inaktiverat tills schemat inte har några hemligheter.

  3. Välj anslutningen du skapade i föregående steg och bekräfta sedan.

Schemat stöds nu av din externa hemliga hanterare, och dess hemligheter visas i Unity-katalogen.

För att rikta schemat mot en annan anslutning, använd Edit. För att returnera schemat till Azure Databricks-managed storage, redigera schemat och inaktivera externa hemligheter.

Att ange eller ändra ett schemas hemlighetsbackend kräver USE CATALOG på den överordnade katalogen, att man äger schemat eller har MANAGE på det, samt USE CONNECTION på anslutningen.

Läs externa hemligheter

Efter att schemat backats externt visas dess hemligheter i Unity-katalogen och du läser dem som vilken annan Unity-kataloghemlighet som helst. Att lista ett schema triggar en import, så en nyligen tillagd hemlighet visas först efter nästa lista. Läskommandona är desamma på båda molnen.

Dbutils

dbutils Applicerar Secret Redaction och är det rekommenderade sättet att läsa ett värde. Kräver Databricks Runtime 17.3 LTS eller senare, eller en serverlös miljö av version 4 eller senare.

# List the secrets in the schema
all_secrets = dbutils.secrets.list(catalog="main", schema="default")

# Read a specific secret value from the external secret manager
my_secret = dbutils.secrets.get(catalog="main", schema="default", key="example_secret")

REST API

Ställ in include_value=true och läs effective_value fältet för att returnera värdet. REST API:et redigerar inte returnerade värden, men granskar fortfarande åtkomst; Azure Databricks rekommenderar det dbutils istället.

curl -G \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  --data-urlencode "include_value=true" \
  "$DATABRICKS_HOST/api/2.1/unity-catalog/secrets/main.default.example_secret"

Du kan också bläddra bland och lista externa hemligheter i Catalog Explorer, på samma sätt som Azure Databricks-hanterade hemligheter. Se Läs en hemlighet.

Om en hemlighet ännu inte finns i Unity-katalogen kan du fortfarande läsa den vid namn. Ange namnet så som det visas i den externa hemlighetshanteraren, med de teckenersättningar som har tillämpats enligt Namnbegränsningar.

Ytterligare resurser

Egenskap Beskrivning
Externa hemligheter i Unity-katalogen Lär dig hur Unity Catalog importerar, styr och läser externt backade hemligheter, och granska begränsningarna.
Hemligheter i Unity-katalogen Skapa, styr och hantera hemligheter som Azure Databricks lagrar i Unity Catalog.
Skapa autentiseringsuppgifter för tjänsten Skapa Unity Catalog-tjänstelegitimationen som anslutningen använder för autentisering.