Поделиться через


Использование секретов в свойстве конфигурации Spark или переменной среды

В этой статье содержатся сведения о том, как ссылаться на секрет в свойстве конфигурации Spark или переменной среды. Полученные секреты удаляются из записной книжки, драйверов Spark и журналов исполнителя.

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

Вопросы безопасности

Databricks не рекомендует хранить секреты в переменных среды кластера, если они не должны быть доступны всем пользователям в кластере. Помните о влиянии на безопасность при создании ссылок на секреты в свойстве конфигурации Spark или переменной среды:

  • Любой пользователь с разрешениями CAN ATTACH TO в кластере или разрешениях запуска записной книжки может считывать переменные среды кластера из записной книжки.

  • Если управление доступом к таблицам не включено в кластере, любой пользователь с разрешениями CAN ATTACH TO в кластере или разрешениями запуска записной книжки может считывать свойства конфигурации Spark из записной книжки. Сюда также входят пользователи, не имеющие прямого разрешения на чтение секрета.

  • Секреты не редактируются из журнала stdout и stderr потоков драйвера Spark. Для защиты конфиденциальных данных журналы драйверов Spark по умолчанию доступны только пользователям с разрешением CAN MANAGE для задания, режима доступа одного пользователя и кластеров общего доступа.

    В кластерах режимов общего доступа без изоляции журналы драйверов Spark могут просматриваться пользователями с разрешением на ПОДКЛЮЧЕНИЕ или разрешением на УПРАВЛЕНИЕ. Чтобы ограничить, кто может считывать журналы только пользователям с разрешением CAN MANAGE, установите значение spark.databricks.acl.needAdminPermissionToViewLogs true.

Требования

Следующие требования применяются к ссылке на секреты в свойствах конфигурации Spark и переменных среды:

  • Владельцы кластера должны иметь разрешение CAN READ в области секрета.
  • Необходимо быть владельцем кластера, чтобы добавить или изменить секрет в свойстве конфигурации Spark или переменной среды.
  • Если секрет обновлен, необходимо перезапустить кластер, чтобы снова получить секрет.
  • Чтобы удалить свойство конфигурации Spark или переменную среды Spark, необходимо разрешение CAN MANAGE в кластере.

Ссылка на секрет со свойством конфигурации Spark

Ссылка на секрет указывается в свойстве конфигурации Spark в следующем формате:

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

Замена:

  • <scope-name> с именем области секрета.
  • <secret-name> с уникальным именем секрета в области.
  • <property-name> с свойством конфигурации Spark

Каждое свойство конфигурации Spark может ссылаться только на один секрет, но можно настроить несколько свойств Spark для создания ссылок на секреты.

Например:

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

Для получения секрета в записной книжке и его использования:

Python

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

SQL

SELECT ${spark.password};

Ссылка на секрет в переменной среды

Путь к секрету указывается в переменной среды в следующем формате:

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

При создании ссылки на секрет можно использовать любое допустимое имя переменной. Доступ к секретам, на которые есть ссылки в переменных среды, определяется разрешениями пользователя, настроившего кластер. Хотя секреты, хранящиеся в переменных среды, доступны всем пользователям кластера, они редактируются из открытого текста, как и другие ссылки на секреты.

Переменные среды, ссылающиеся на секреты, доступны из скрипта инициализации в области кластера. См. раздел "Установка и использование переменных среды" с скриптами инициализации.

Например:

Переменная среды указывается для создания ссылки на секрет:

SPARKPASSWORD={{secrets/scope1/key1}}

Чтобы получить секрет в скрипте инициализации, получите доступ $SPARKPASSWORD с помощью следующего шаблона:

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