Использование секретов в свойстве конфигурации 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