Delen via


Geheimenbeheer

Als u gegevens wilt openen, is het soms vereist dat u zich via JDBC bij externe gegevensbronnen verifieert. In plaats van uw referenties rechtstreeks in te voeren in een notebook, kunt u Azure Databricks-geheimen gebruiken om uw referenties op te slaan en ernaar te verwijzen in notebooks en taken. Dit artikel bevat een overzicht van Azure Databricks-geheimen.

Overzicht van geheimen

Geheimen configureren en gebruiken:

  1. Maak een geheim bereik. Een geheim bereik is verzameling geheimen geïdentificeerd door een naam.
  2. Geheimen toevoegen aan het bereik
  3. Wijs machtigingen toe voor het geheime bereik.
  4. Toegang tot geheimen met databricks-hulpprogramma's, zie het hulpprogramma Geheimen (dbutils.secrets).

Zie zelfstudie: Een Databricks-geheim maken en gebruiken voor een end-to-end-voorbeeld van het gebruik van geheimen in uw werkstromen. Zie Een geheim gebruiken in een Spark-configuratie-eigenschap of omgevingsvariabele als u een geheim wilt gebruiken in een Spark-configuratie-eigenschap of omgevingsvariabele.

Waarschuwing

Beheerders, makers van geheimen en gebruikers die toestemming hebben verleend, kunnen Azure Databricks-geheimen lezen. Hoewel Databricks moeite doet om geheime waarden te redacteren die in notebooks kunnen worden weergegeven, is het niet mogelijk om te voorkomen dat dergelijke gebruikers geheimen lezen. Zie Geheime redaction.

Geheime bereiken beheren

Een geheim bereik is verzameling geheimen geïdentificeerd door een naam. Databricks raadt aan geheime bereiken uit te lijnen op rollen of toepassingen in plaats van personen.

Er zijn twee typen geheimbereik:

  • Door Azure Key Vault ondersteund: u kunt verwijzen naar geheimen die zijn opgeslagen in een Azure Key Vault met behulp van geheime bereiken met Azure Key Vault-ondersteuning. Geheim bereik met Azure Key Vault-ondersteuning is een alleen-lezen interface voor de Key Vault. U moet geheimen beheren in met Azure Key Vault ondersteunde geheime bereiken in Azure.
  • Databricks ondersteund: een geheim bereik met Databricks-ondersteuning wordt opgeslagen in een versleutelde database die eigendom is van en wordt beheerd door Azure Databricks.

Nadat u een geheim bereik hebt gemaakt, kunt u machtigingen toewijzen om gebruikers toegang te verlenen tot lees-, schrijf- en beheerbereiken.

Een geheim bereik met Azure Key Vault-ondersteuning maken

In deze sectie wordt beschreven hoe u een geheim bereik met Azure Key Vault-ondersteuning maakt met behulp van Azure Portal en de gebruikersinterface van de Azure Databricks-werkruimte. U kunt ook een geheim bereik met Azure Key Vault-ondersteuning maken met behulp van de Databricks CLI.

Vereisten

  • U moet een Azure Key Vault-exemplaar hebben. Als u geen sleutelkluisexemplaren hebt, volgt u de instructies in Een sleutelkluis maken met behulp van Azure Portal.
  • U moet de rol Key Vault-inzender, Inzender of Eigenaar hebben op het Azure Key Vault-exemplaar dat u wilt gebruiken om het geheime bereik te herstellen.

Notitie

Voor het maken van een geheim bereik met Azure Key Vault-ondersteuning is de rol Inzender of Eigenaar van het Azure Key Vault-exemplaar vereist, zelfs als de Azure Databricks-service eerder toegang heeft gekregen tot de sleutelkluis.

Als de sleutelkluis zich in een andere tenant bevindt dan de Azure Databricks-werkruimte, moet de Azure AD-gebruiker die het geheime bereik maakt, gemachtigd zijn om service-principals te maken in de tenant van de sleutelkluis. Anders treedt de volgende fout op:

Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}

Uw Azure Key Vault-exemplaar configureren voor Azure Databricks

  1. Meld u aan bij Azure Portal, zoek en selecteer het Azure Key Vault-exemplaar.

  2. Klik onder Instellingen op het tabblad Configuratie van Access.

  3. Stel machtigingsmodel in op Vault-toegangsbeleid.

    Notitie

    Het aanmaken van een geheimbereikrol ondersteund door Azure Key Vault verleent de Get en List machtigingen aan de applicatie-id voor de Azure Databricks-service via het gebruik van toegangsbeleid voor de key vault. Het machtigingsmodel voor op rollen gebaseerd toegangsbeheer van Azure wordt niet ondersteund met Azure Databricks.

  4. Onder Instellingen, selecteer Netwerken.

  5. Stel in firewalls en virtuele netwerkenToegang toestaan vanaf: tot Openbare toegang vanaf specifieke virtuele netwerken en IP-adressen toestaan.

    Schakel onder Uitzondering het selectievakje Vertrouwde Microsoft-services toestaan om deze firewall te omzeilen.

    Notitie

    U kunt ook instellen dat Toegang toestaat vanaf: om openbare toegang vanaf alle netwerken toe te staan .

Een geheim bereik voor Azure Key Vault-back-ups maken (Engelstalig)

  1. Ga naar https://<databricks-instance>#secrets/createScope. Vervang door <databricks-instance> de werkruimte-URL van uw Azure Databricks-implementatie. Deze URL is hoofdlettergevoelig. In dat geval moet u bijvoorbeeld scopecreateScope een hoofdletter Sgebruiken).

    Bereik maken

  2. Voer de naam van het geheime bereik in. Namen van geheime bereiken zijn niet hoofdlettergevoelig.

  3. Selecteer in Beheer PrincipalCreator of Alle werkruimtegebruikers om aan te geven welke gebruikers de machtiging BEHEREN hebben voor de geheime scope.

    Met de BEHEREN-machtiging kunnen gebruikers machtigingen binnen het gegeven bereik lezen, schrijven en verlenen. Uw account moet het Premium-abonnement hebben om Creator te kiezen.

  4. Voer de DNS-naam (bijvoorbeeld https://databrickskv.vault.azure.net/) en de resource-id in, bijvoorbeeld:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Deze eigenschappen zijn beschikbaar op het tabblad Instellingeneigenschappen > van een Azure Key Vault in Azure Portal.

  5. Klik op Create.

  6. Gebruik de Opdracht Databricks CLIdatabricks secrets list-scopes om te controleren of het bereik is gemaakt.

Een geheim bereik met Databricks-ondersteuning maken

In deze sectie wordt beschreven hoe u een geheim bereik maakt met behulp van de Databricks CLI (versie 0.205 en hoger). U kunt ook de Geheimen-API gebruiken.

Namen van geheime bereiken:

  • Moet uniek zijn binnen een werkruimte.
  • Moet bestaan uit alfanumerieke tekens, streepjes, onderstrepingstekens @en punten en mag niet langer zijn dan 128 tekens.
  • Zijn niet hoofdlettergevoelig.

Namen van geheime bereiken worden beschouwd als niet-gevoelig en kunnen worden gelezen door alle gebruikers in de werkruimte.

Een bereik maken met behulp van de Databricks CLI:

databricks secrets create-scope <scope-name>

Standaard worden bereiken gemaakt met de machtiging BEHEREN voor de gebruiker die het bereik heeft gemaakt. Nadat u een geheim bereik met Databricks-ondersteuning hebt gemaakt, kunt u er geheimen aan toevoegen.

Geheime bereiken weergeven

Om de bestaande scopes in een werkruimte met behulp van de CLI weer te geven:

databricks secrets list-scopes

U kunt ook geheime scopes weergeven met de Secrets-API.

Een geheim bereik verwijderen

Als u een geheim bereik verwijdert, worden alle geheimen en ACL's verwijderd die op het bereik zijn toegepast. Als u een bereik wilt verwijderen met behulp van de CLI, voert u het volgende uit:

databricks secrets delete-scope <scope-name>

U kunt ook een geheim bereik verwijderen met behulp van de Geheimen-API.

Geheimen beheren

Een geheim is een sleutel-waardepaar waarin gevoelig materiaal wordt opgeslagen met behulp van een sleutelnaam die uniek is binnen een geheim bereik.

In deze sectie wordt beschreven hoe u een geheim bereik maakt met behulp van de Databricks CLI (versie 0.205 en hoger). U kunt ook de Geheimen-API gebruiken. Namen van geheimen zijn niet hoofdlettergevoelig.

Een geheim maken

De methode voor het maken van een geheim is afhankelijk van of u een bereik met Azure Key Vault-ondersteuning of een door Databricks ondersteund bereik gebruikt.

Een geheim maken in een bereik met azure Key Vault-ondersteuning

Als u een geheim wilt maken in Azure Key Vault, gebruikt u Azure Portal of Azure Geheim instellen REST API. Zie stap 4 voor een voorbeeld: Het clientgeheim toevoegen aan Azure Key Vault.

Azure Key Vault

Een geheim maken in een door Databricks ondersteund bereik

In deze sectie wordt beschreven hoe u een geheim maakt met behulp van de Databricks CLI (versie 0.205 en hoger) of in een notebook met behulp van de Databricks SDK voor Python. U kunt ook de Geheimen-API gebruiken. Namen van geheimen zijn niet hoofdlettergevoelig.

Databricks CLI

Wanneer u een geheim maakt in een bereik met databricks-ondersteuning, kunt u de geheime waarde op drie manieren opgeven:

  • Geef de waarde op als een tekenreeks met behulp van de vlag –tekenreekswaarde.
  • Voer het geheim in wanneer u hierom interactief wordt gevraagd (geheimen met één regel).
  • Geef het geheim door met behulp van standaardinvoer (geheimen met meerdere regels).

Voorbeeld:

databricks secrets put-secret --json '{
  "scope": "<scope-name>",
  "key": "<key-name>",
  "string_value": "<secret>"
}'

Als u een geheim met meerdere regels maakt, kunt u het geheim doorgeven met behulp van standaardinvoer. Voorbeeld:

(cat << EOF
this
is
a
multi
line
secret
EOF
) | databricks secrets put-secret <scope-name> <key-name>

Databricks SDK voor Python

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

w.secrets.put_secret("<secret_scope>","<key-name>",string_value ="<secret>")

een geheim lezen

Als u een geheim wilt lezen in een notebook of taak, moet u het -hulpprogramma Geheimen (dbutils.secrets)gebruiken. Voorbeeld:

password = dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")

Geheimen vermelden

Geheimen in een bepaald bereik weergeven:

databricks secrets list-secrets <scope-name>

In het antwoord worden metagegevensinformatie over de geheimen weergegeven, zoals de sleutelnamen van de geheimen. U gebruikt het hulpprogramma Geheimen (dbutils.secrets) in een notebook of taak om deze metagegevens weer te geven. Voorbeeld:

dbutils.secrets.list('my-scope')

Een geheim verwijderen

Een geheim verwijderen uit een bereik met de Databricks CLI:

databricks secrets delete-secret <scope-name> <key-name>

U kunt ook de Geheimen-API gebruiken.

Als u een geheim wilt verwijderen uit een bereik dat wordt ondersteund door Azure Key Vault, gebruikt u de Azure SetSecret REST API of de gebruikersinterface van Azure Portal.

Machtigingen voor geheimbereik beheren

De gebruiker die de geheime bereiken maakt, krijgt standaard de machtiging MANAGE. Hierdoor kan de maker van het bereik geheimen lezen in het bereik, geheimen naar het bereik schrijven en machtigingen voor het bereik beheren.

Notitie

Geheime ACL's bevinden zich op bereikniveau. Als u met Azure Key Vault ondersteunde bereiken gebruikt, hebben gebruikers die toegang krijgen tot het bereik toegang tot alle geheimen in Azure Key Vault. Gebruik afzonderlijke Azure Key Vault-exemplaren om de toegang te beperken.

In deze sectie wordt beschreven hoe u toegang tot geheimen beheert met behulp van de Databricks CLI (versie 0.205 en hoger). U kunt ook de Geheimen-API gebruiken. Zie Geheime ACL's voor geheime machtigingsniveaus

Een gebruiker machtigingen verlenen voor een geheim bereik

Een gebruiker machtigingen verlenen voor een geheim bereik met behulp van de Databricks CLI:

databricks secrets put-acl <scope-name> <principal> <permission>

Als u een aanvraag indient voor een principal die al een toegepaste machtiging heeft, wordt het bestaande machtigingsniveau overschreven.

In principal het veld wordt een bestaande Azure Databricks-principal opgegeven. Een gebruiker wordt opgegeven met behulp van het e-mailadres, een service-principal met de applicationId waarde en een groep met de groepsnaam. Zie Principal voor meer informatie.

Machtigingen voor geheimbereik weergeven

Alle geheime bereikmachtigingen voor een bepaald geheim bereik weergeven:

databricks secrets list-acls <scope-name>

De geheime bereikmachtigingen die zijn toegepast op een principal voor een bepaald geheim bereik ophalen:

databricks secrets get-acl <scope-name> <principal>

Als er geen ACL bestaat voor de opgegeven principal en het opgegeven bereik, mislukt deze aanvraag.

Een machtiging voor een geheim bereik verwijderen

Een geheime bereikmachtiging verwijderen die is toegepast op een principal voor een bepaald geheim bereik:

databricks secrets delete-acl <scope-name> <principal>

Geheime redaction

Door referenties op te slaan als Azure Databricks-geheimen, kunt u uw referenties eenvoudig beveiligen wanneer u notebooks en taken uitvoert. Het is echter eenvoudig om per ongeluk een geheim af te drukken op standaarduitvoerbuffers of om de waarde weer te geven tijdens het toewijzen van variabelen.

Om dit te voorkomen, redigeert Azure Databricks alle geheime waarden die met behulp van dbutils.secrets.get()gelezen worden. Wanneer deze worden weergegeven in de uitvoer van de notebookcel, worden de geheime waarden vervangen door [REDACTED].

Als u bijvoorbeeld een variabele instelt op een geheime waarde met behulp van dbutils.secrets.get() en die variabele vervolgens afdrukt, wordt die variabele vervangen door [REDACTED].

Waarschuwing

Geheime redaction voor uitvoer van notebookcellen is alleen van toepassing op letterlijke gegevens. De functionaliteit voor geheimredactie voorkomt geen opzettelijke en willekeurige transformaties van een letterlijk geheim. Als u de juiste controle over geheimen wilt garanderen, moet u toegangsbeheerlijsten gebruiken om machtigingen voor het uitvoeren van opdrachten te beperken. Dit voorkomt onbevoegde toegang tot gedeelde notitieblokcontexten.