Freigeben über


Verwenden eines Geheimnisses in einer Spark-Konfigurationseigenschaft oder -Umgebungsvariable

Dieser Artikel enthält Details zum Verweisen auf einen geheimen Schlüssel in einer Spark-Konfigurationseigenschaft oder Umgebungsvariable. Die abgerufenen Geheimnisse werden in der Ausgabe des Notebooks und in den Protokollen von Spark-Treiber und -Executor unkenntlich gemacht.

Wichtig

Dieses Feature befindet sich in der Public Preview.

Sicherheitshinweise

Databricks rät davon ab, Geheimnisse in Clusterumgebungsvariablen zu speichern, sofern sie nicht allen Benutzern des Clusters zur Verfügung stehen sollen. Beachten Sie die folgenden Sicherheitsaspekte, wenn Sie auf Geheimnisse in einer Spark-Konfigurationseigenschaft oder -Umgebungsvariablen verweisen:

  • Jeder Benutzer mit CAN ATTACH TO-Berechtigungen für einen Cluster oder Ausführen von Berechtigungen für ein Notizbuch kann Clusterumgebungsvariablen aus dem Notizbuch lesen.

  • Wenn die Tabellenzugriffssteuerung für einen Cluster nicht aktiviert ist, kann jeder Benutzer mit CAN ATTACH TO-Berechtigungen für einen Cluster oder Berechtigungen zum Ausführen eines Notizbuchs Spark-Konfigurationseigenschaften aus dem Notizbuch lesen. Dies schließt Benutzer ein, die über keine direkte Berechtigung zum Lesen eines Geheimnisses verfügen.

  • Geheime Schlüssel werden nicht aus dem Spark-Treiberprotokoll stdout und stderr den Datenströmen gewertet. Um vertrauliche Daten zu schützen, können Spark-Treiberprotokolle standardmäßig nur von Benutzern mit Berechtigung KANN VERWALTEN für Auftrag, Einzelbenutzerzugriffsmodus und Cluster des freigegebenen Zugriffsmodus angezeigt werden.

    Auf Clustern des freigegebenen Isolationsmodus können die Spark-Treiberprotokolle von Benutzern mit den Berechtigungen KANN ANFÜGEN AN oder KANN VERWALTEN angezeigt werden. Um die Benutzer, welche die Protokolle lesen können, auf Benutzer mit der Berechtigung KANN VERWALTEN zu beschränken, setzen Sie spark.databricks.acl.needAdminPermissionToViewLogs auf true.

Anforderungen

Die folgenden Anforderungen gelten für das Verweisen auf geheime Schlüssel in Spark-Konfigurationseigenschaften und Umgebungsvariablen:

  • Clusterbesitzer und -besitzerinnen benötigen die Berechtigung KANN LESEN für den Geheimnisbereich.
  • Sie müssen ein Clusterbesitzer sein, um einen geheimen Schlüssel in einer Spark-Konfigurationseigenschaft oder Umgebungsvariable hinzuzufügen oder zu bearbeiten.
  • Wenn ein geheimer Schlüssel aktualisiert wird, müssen Sie den Cluster neu starten, um den geheimen Schlüssel erneut abzurufen.
  • Sie müssen über die CAN MANAGE-Berechtigung für den Cluster verfügen, um eine geheime Spark-Konfigurationseigenschaft oder Umgebungsvariable zu löschen.

Verweisen auf ein Geheimnis mit einer Spark-Konfigurationseigenschaft

Sie geben einen Verweis auf ein Geheimnis in einer Spark-Konfigurationseigenschaft im folgenden Format an:

spark.<property-name> {{secrets/<scope-name>/<secret-name>}}

Ersetzen Sie:

  • <scope-name> mit dem Namen des geheimen Bereichs.
  • <secret-name> mit dem eindeutigen Namen des geheimen Schlüssels im Bereich.
  • <property-name> mit der Spark-Konfigurationseigenschaft

Jede Spark-Konfigurationseigenschaft kann nur auf ein Geheimnis verweisen, aber Sie können mehrere Spark-Eigenschaften so konfigurieren, dass sie auf Geheimnisse verweisen.

Zum Beispiel:

spark.password {{secrets/scope1/key1}}

So wird das Geheimnis im Notebook abgerufen und verwendet

Python

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

SQL

SELECT ${spark.password};

Verweisen auf ein Geheimnis in einer Umgebungsvariablen

Sie geben einen Geheimnispfad in einer Umgebungsvariablen im folgenden Format an:

<variable-name>={{secrets/<scope-name>/<secret-name>}}

Sie können einen beliebigen gültigen Variablennamen verwenden, wenn Sie auf ein Geheimnis verweisen. Der Zugriff auf Geheimnisse, auf die in Umgebungsvariablen verwiesen wird, wird durch die Berechtigungen des Benutzers oder der Benutzerin bestimmt, der oder die den Cluster konfiguriert hat. Obwohl geheime Schlüssel, die in Umgebungsvariablen gespeichert sind, für alle Clusterbenutzer zugänglich sind, werden sie von der Nur-Text-Anzeige abgeblendet, ähnlich wie andere geheime Verweise.

Umgebungsvariablen, die auf Geheimnisse verweisen, sind von einem clusterspezifischen Initiierungsskript aus zugänglich. Weitere Informationen finden Sie unter Festlegen und Verwenden von Umgebungsvariablen mit Initskripts.

Zum Beispiel:

Sie legen eine Umgebungsvariable so fest, dass sie auf ein Geheimnis verweist:

SPARKPASSWORD={{secrets/scope1/key1}}

Greifen Sie mit dem folgenden Muster auf $SPARKPASSWORD zu, um das Geheimnis in einem Initialisierungsskript abzurufen:

if [ -n "$SPARKPASSWORD" ]; then
  # code to use ${SPARKPASSWORD}
fi