GeheimnisseSecrets

Ein geheimer Schlüssel ist ein Schlüssel-Wert-Paar, das Geheimnis Material speichert, wobei ein Schlüssel Name innerhalb eines geheimen Bereichseindeutig ist.A secret is a key-value pair that stores secret material, with a key name unique within a secret scope. Jeder Bereich ist auf 1000 geheime Schlüssel beschränkt.Each scope is limited to 1000 secrets. Die maximal zulässige Größe für einen geheimen Schlüssel beträgt 128 KB.The maximum allowed secret value size is 128 KB.

Erstellen eines GeheimnissesCreate a secret

Bei Namen von Geheimnissen wird Groß- und Kleinschreibung beachtet.Secret names are case insensitive.

Die Methode zum Erstellen eines Geheimnisses hängt davon ab, ob Sie einen Azure Key Vault gesicherten Bereich oder einen databricks-gestützten Bereich verwenden.The method for creating a secret depends on whether you are using an Azure Key Vault-backed scope or a Databricks-backed scope.

Einen geheimen Schlüssel in einem Azure Key Vault gesicherten Bereich erstellenCreate a secret in an Azure Key Vault-backed scope

Zum Erstellen eines Geheimnisses in Azure Key Vault Sie die Azure setsecret -Rest-API oder Azure-Portal-Benutzeroberfläche verwenden.To create a secret in Azure Key Vault you use the Azure SetSecret REST API or Azure portal UI.

Azure Key VaultAzure Key Vault

Einen geheimen Schlüssel in einem mit databricks gesicherten Bereich erstellenCreate a secret in a Databricks-backed scope

So erstellen Sie einen geheimen Schlüssel in einem databricks-gesicherten Bereich mithilfe der databricks -Befehlszeilenschnittstelle (Version 0.7.1 und höher):To create a secret in a Databricks-backed scope using the Databricks CLI (version 0.7.1 and above):

databricks secrets put --scope <scope-name> --key <key-name>

Ein Editor wird geöffnet und zeigt Inhalt wie den folgenden an:An editor opens and displays content like this:

# ----------------------------------------------------------------------
# Do not edit the above line. Everything that follows it will be ignored.
# Please input your secret value above the line. Text will be stored in
# UTF-8 (MB4) form and any trailing new line will be stripped.
# Exit without saving will abort writing secret.

Fügen Sie den geheimen Wert oberhalb der Zeile ein, und speichern und beenden Sie den Editor.Paste your secret value above the line and save and exit the editor. Ihre Eingabe wird aus den Kommentaren entfernt und im Bereich gespeichert, der dem Schlüssel zugeordnet ist.Your input is stripped of the comments and stored associated with the key in the scope.

Wenn Sie eine Schreib Anforderung mit einem bereits vorhandenen Schlüssel ausgeben, wird der vorhandene Wert durch den neuen Wert überschrieben.If you issue a write request with a key that already exists, the new value overwrites the existing value.

Sie können auch einen geheimen Schlüssel aus einer Datei oder über die Befehlszeile bereitstellen.You can also provide a secret from a file or from the command line. Weitere Informationen zum Schreiben von Geheimnissen finden Sie unter Geheimnisse-CLI.For more information about writing secrets, see Secrets CLI.

Auflisten geheimer SchlüsselList secrets

So Listen Sie Geheimnisse in einem bestimmten Bereich auf:To list secrets in a given scope:

databricks secrets list --scope <scope-name>

In der Antwort werden Metadateninformationen zum geheimen Schlüssel angezeigt, z. b. der Name des geheimen Schlüssels und der letzte Aktualisierung am Zeitstempel (in Millisekunden seit der Epoche).The response displays metadata information about the secret, such as the secret key name and last updated at timestamp (in milliseconds since epoch). Sie verwenden die Geheimnisse von Geheimnissen in einem Notebook oder Auftrag, um einen geheimen Schlüssel zu lesen.You use the Secrets utilities in a notebook or job to read a secret. Zum Beispiel:For example:

databricks secrets list --scope jdbc
Key name    Last updated
----------  --------------
password    1531968449039
username    1531968408097

Lesen eines GeheimnissesRead a secret

Sie können geheime Schlüssel mit der Rest-API oder der CLI erstellen, aber Sie müssen die Geheimnisse der Geheimnisse in einem Notebook oder Auftrag verwenden, um ein Geheimnis zu lesen.You create secrets using the REST API or CLI, but you must use the Secrets utilities in a notebook or job to read a secret.

Geheime Pfade in den Spark-Konfigurations Eigenschaften und Umgebungsvariablen Secret paths in Spark configuration properties and environment variables

Wichtig

Dieses Feature befindet sich in der Public Preview.This feature is in Public Preview.

Hinweis

Verfügbar in Databricks Runtime 6,1 und höher.Available in Databricks Runtime 6.1 and above.

Sie können den Pfad zu einem geheimen Schlüssel in einer Spark-Konfigurations Eigenschaft oder einer Umgebungsvariablen speichern.You can store the path to a secret in a Spark configuration property or environment variable. Abgerufene Geheimnisse werden aus Notebook-Ausgabe und Spark-Treiber-und Executor-Protokollen redtet.Retrieved secrets are redacted from notebook output and Spark driver and executor logs.

Wichtig

Geheimnisse werden nicht aus "stdout" und "stderr" redtet.Secrets are not redacted from stdout and stderr. Eine Problem Umgehung besteht darin, die Spark-Konfigurations Eigenschaft so festzulegen spark.databricks.acl.needAdminPermissionToViewLogs true , dass nur Benutzer mit der Berechtigung "verwalten" die stdout-Seite anzeigen können.A workaround is to set the Spark configuration property spark.databricks.acl.needAdminPermissionToViewLogs true to allow only users who have manage permission to view the stdout page.

Anforderungen und EinschränkungenRequirements and limitations

  • Cluster Besitzer müssen über die Lese Berechtigung für den geheimen Bereich verfügen.Cluster owners must have Read permission on the secret scope.
  • Nur Cluster Besitzer können einen Pfad zu einem geheimen Schlüssel in einer Spark-Konfiguration oder einer Umgebungsvariablen hinzufügen und den vorhandenen Bereich und Namen bearbeiten.Only cluster owners can add a path to a secret in a Spark configuration or environment variable and edit the existing scope and name. Besitzer ändern einen geheimen Schlüssel mithilfe der Put Secret -API.Owners change a secret using the Put secret API. Sie müssen den Cluster neu starten, um den geheimen Schlüssel erneut abzurufen.You must restart your cluster to fetch the secret again.
  • Benutzer mit der Berechtigung " kann verwalten " auf dem Cluster können geheime Eigenschaften und Umgebungsvariablen löschen.Users with the Can Manage permission on the cluster can delete secret properties and environment variables.

PfadwertPath value

Die Syntax für den Pfad Wert der Spark-Eigenschaft oder der Umgebungsvariablen muss lauten {{secrets/<scope-name>/<secret-name>}} .The syntax of the Spark property or environment variable path value must be {{secrets/<scope-name>/<secret-name>}}.

Der Wert muss mit beginnen {{secrets/ und mit enden }} .The value must start with {{secrets/ and end with }}. Die Variablen Teile der Eigenschaft oder der Umgebungsvariablen sind:The variable portions of the property or environment variable are:

  • <secret-prop-name>: Der Name der Eigenschaft "Secret" in der Spark-Konfiguration.<secret-prop-name>: The name of the secret property in the Spark configuration.
  • <scope-name>: Der Name des Bereichs, dem das Geheimnis zugeordnet ist.<scope-name>: The name of the scope in which the secret is associated.
  • <secret-name>: Der eindeutige Name des Geheimnisses im Gültigkeitsbereich.<secret-name>: The unique name of the secret in the scope.

Hinweis

  • Zwischen den geschweiften Klammern dürfen keine Leerzeichen stehen.There should be no spaces between the curly brackets. Wenn Leerzeichen vorhanden sind, werden Sie als Teil des Bereichs oder des geheimen namens behandelt.If there are spaces, they are treated as part of the scope or secret name.
  • Wenn das Wert Format falsch ist, z. b. nur eine Anfangs Klammer oder eine geschweifter geschweifter Klammer, wird der Wert als Spark-Konfigurations Eigenschaft oder Umgebungsvariablen Wert behandelt.If the value format is incorrect, for example, there is only one starting brace or ending brace, the value is treated as a Spark configuration property or environment variable value.

Speichert den Pfad zu einem geheimen Schlüssel in einer Spark-Konfigurations Eigenschaft.Store the path to a secret in a Spark configuration property

Sie geben einen geheimen Pfad in einer Spark-Konfiguration im folgenden Format an:You specify a secret path in a Spark configuration in the following format:

spark.<secret-prop-name> <path-value>

spark.<secret-prop-name> der Name einer Spark-Konfigurations Eigenschaft, die dem geheimen Pfad zugeordnet ist.spark.<secret-prop-name> is a Spark configuration property name that maps to the secret path. Sie können der Spark-Konfiguration mehrere geheime Schlüssel hinzufügen, solange die Namen der geheimen Eigenschaften eindeutig sind.You can add multiple secrets to the Spark configuration as long as the secret property names are unique.

BeispielExample

spark.password {{secrets/testScope/testKey1}}

Um das Geheimnis im Notebook abzurufen und zu verwenden, führen Sie Folgendes aus spark.conf.get("spark.<secret-name>") :To fetch the secret in the notebook and use it, run spark.conf.get("spark.<secret-name>"):

spark.conf.get("spark.password")

Speichert den Pfad zu einem geheimen Schlüssel in einer Umgebungsvariablen.Store the path to a secret in an environment variable

Sie geben einen geheimen Pfad in einer Umgebungsvariablen an und verwenden ihn in einem Init-Skript mit ClusterBereich.You specify a secret path in an environment variable and use it in a cluster-scoped init script. Auf diese Umgebungsvariablen kann nicht von einem Programm aus zugegriffen werden, das in Spark ausgeführt wird.These environment variables are not accessible from a program running in Spark.

SPARKPASSWORD=<path-value>

Zum Abrufen des geheimen Schlüssels in einem Init-Skript greifen Sie auf Folgendes zu $SPARKPASSWORD :To fetch the secret in an init script, access $SPARKPASSWORD:

if [[ $SPARKPASSWORD ]]; then
  use $SPARKPASSWORD
fi

Löschen eines GeheimnissesDelete a secret

Zum Löschen eines geheimen Schlüssels aus einem Bereich, der durch Azure Key Vault gesichert ist, verwenden Sie die Azure setsecret -Rest-API oder Azure-Portal-BenutzeroberflächeTo delete a secret from a scope backed by Azure Key Vault, use the Azure SetSecret REST API or Azure portal UI.