Udostępnij za pośrednictwem


Używanie wpisu tajnego we właściwości konfiguracji platformy Spark lub zmiennej środowiskowej

Ten artykuł zawiera szczegółowe informacje na temat odwołowania się do wpisu tajnego we właściwości konfiguracji platformy Spark lub zmiennej środowiskowej. Pobrane wpisy tajne są redacted z danych wyjściowych notesu, a sterownik spark i dzienniki funkcji wykonawczej.

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Zagadnienia dotyczące zabezpieczeń

Usługa Databricks nie zaleca przechowywania wpisów tajnych w zmiennych środowiskowych klastra, jeśli nie mogą być dostępne dla wszystkich użytkowników w klastrze. Podczas odwoływania się do wpisów tajnych w właściwości konfiguracji platformy Spark lub zmiennej środowiskowej należy pamiętać o następujących implikacjach zabezpieczeń:

  • Każdy użytkownik z uprawnieniami CAN ATTACH TO w klastrze lub Uprawnienia Uruchom w notesie może odczytywać zmienne środowiskowe klastra z poziomu notesu.

  • Jeśli kontrola dostępu do tabel nie jest włączona w klastrze, każdy użytkownik z uprawnieniami CAN ATTACH TO w klastrze lub Uprawnienia Uruchom w notesie może odczytać właściwości konfiguracji platformy Spark z poziomu notesu. Obejmuje to użytkowników, którzy nie mają bezpośrednich uprawnień do odczytywania wpisu tajnego.

  • Wpisy tajne nie są redagowane z dziennika stdout i stderr strumieni sterowników platformy Spark. Aby chronić dane poufne, domyślnie dzienniki sterowników platformy Spark są widoczne tylko przez użytkowników z uprawnieniami CAN MANAGE w zadaniu, trybie dostępu pojedynczego użytkownika i klastrach trybu dostępu współdzielonego.

    W przypadku klastrów z trybem dostępu wspólnego bez izolacji dzienniki sterowników platformy Spark mogą być wyświetlane przez użytkowników z uprawnieniem CAN ATTACH TO lub CAN MANAGE. Aby ograniczyć, kto może odczytywać dzienniki tylko użytkownikom z uprawnieniami CAN MANAGE, ustaw wartość spark.databricks.acl.needAdminPermissionToViewLogs true.

Wymagania

Następujące wymagania dotyczą odwoływania się do wpisów tajnych we właściwościach konfiguracji platformy Spark i zmiennych środowiskowych:

  • Właściciele klastrów muszą mieć uprawnienie CAN READ w zakresie wpisu tajnego.
  • Musisz być właścicielem klastra, aby dodać lub edytować wpis tajny we właściwości konfiguracji platformy Spark lub zmiennej środowiskowej.
  • Jeśli wpis tajny zostanie zaktualizowany, należy ponownie uruchomić klaster, aby ponownie pobrać wpis tajny.
  • Aby usunąć właściwość konfiguracji tajnej platformy Spark lub zmienną środowiskową, musisz mieć uprawnienie CAN MANAGE w klastrze.

Odwołanie do wpisu tajnego z właściwością konfiguracji platformy Spark

Należy określić odwołanie do wpisu tajnego we właściwości konfiguracji platformy Spark w następującym formacie:

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

Wymiana:

  • <scope-name> z nazwą zakresu wpisu tajnego.
  • <secret-name> z unikatową nazwą wpisu tajnego w zakresie.
  • <property-name> z właściwością konfiguracji platformy Spark

Każda właściwość konfiguracji platformy Spark może odwoływać się tylko do jednego wpisu tajnego, ale można skonfigurować wiele właściwości platformy Spark w celu odwołowania się do wpisów tajnych.

Na przykład:

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

Aby pobrać wpis tajny w notesie i użyć go:

Python

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

SQL

SELECT ${spark.password};

Odwołanie do wpisu tajnego w zmiennej środowiskowej

Ścieżkę wpisu tajnego należy określić w zmiennej środowiskowej w następującym formacie:

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

Podczas odwołuje się do wpisu tajnego można użyć dowolnej prawidłowej nazwy zmiennej. Dostęp do wpisów tajnych, do których odwołuje się zmienna środowiskowa, jest określany przez uprawnienia użytkownika, który skonfigurował klaster. Mimo że wpisy tajne przechowywane w zmiennych środowiskowych są dostępne dla wszystkich użytkowników klastra, są one redacted z wyświetlania zwykłego tekstu, podobnie jak inne odwołania do wpisów tajnych.

Zmienne środowiskowe odwołujące się do wpisów tajnych są dostępne ze skryptu inicjowania o zakresie klastra. Zobacz Set and use environment variables with init scripts (Ustawianie i używanie zmiennych środowiskowych za pomocą skryptów inicjowania).

Na przykład:

Należy ustawić zmienną środowiskową, aby odwoływać się do wpisu tajnego:

SPARKPASSWORD={{secrets/scope1/key1}}

Aby pobrać wpis tajny w skrypcie init, uzyskaj dostęp $SPARKPASSWORD przy użyciu następującego wzorca:

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