Секреты

Секрет — это пара "ключ-значение", которая хранит секретный материал с именем ключа, уникальным в пределах секретной области. Каждая область ограничена 1000 секретов. Максимально допустимый размер секретного значения — 128 КБ.

Создание секрета

В именах секретов учитывается регистр.

Метод создания секрета зависит от того, используется ли Azure Key Vaultная или резервная область.

Создание секрета в области с поддержкой Azure Key Vault

Чтобы создать секрет в Azure Key Vault вы используете Azure сетсекрет REST API или пользовательский интерфейс портал Azure.

Хранилище ключей Azure

Создание секрета в области с поддержкой Databricks

Для создания секрета в области с резервными копиями, использующей интерфейс командной строки (версии 0.7.1 и выше):

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

Откроется редактор и отобразится примерно следующее содержимое:

# ----------------------------------------------------------------------
# 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.

Вставьте значение секрета над строкой и сохраните и закройте редактор. Входные данные удаляются из комментариев и сохраняются, связанные с ключом в области.

При выдаче запроса на запись с уже существующим ключом новое значение перезаписывает существующее значение.

Также можно указать секрет из файла или из командной строки. Дополнительные сведения о записи секретов см. в разделе секреты CLI.

получение списка секретов;

Вывод списка секретов в заданной области:

databricks secrets list --scope <scope-name>

В ответе отображаются метаданные о секрете, такие как имя секретного ключа и Последнее обновление по метке времени (в миллисекундах с момента создания эпохи). Для чтения секрета используется служебная программа Secret в записной книжке или задании. Пример:

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

Чтение секрета.

Секреты создаются с помощью REST API или CLI, но для чтения секрета необходимо использовать служебную программу Secret в записной книжке или задании.

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

Важно!

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

Примечание

Доступно в Databricks Runtime 6,4 и более поздних версий.

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

Важно!

Секреты не показана исправленная версия из STDOUT и stderr. Для решения этой проблемы необходимо установить свойство конфигурации Spark, spark.databricks.acl.needAdminPermissionToViewLogs true чтобы разрешить доступ к странице stdout только пользователям, имеющим разрешение на управление.

Требования и ограничения

  • Владельцы кластера должны иметь разрешение на Чтение в области секрета.
  • Только владельцы кластера могут добавить путь к секрету в свойстве конфигурации Spark или переменной среды и изменить существующую область и имя. Владельцы меняют секрет, используя API-интерфейс размещения секретов . Необходимо перезапустить кластер, чтобы снова получить секрет.
  • Пользователи с разрешением " может управлять " в кластере могут удалить секретное свойство конфигурации Spark или переменную среды.

Значение пути

Синтаксис свойства конфигурации Spark или пути переменной среды должен иметь значение {{secrets/<scope-name>/<secret-name>}} .

Значение должно начинаться с {{secrets/ и заканчиваться на }} . Переменные для свойства конфигурации Spark или переменной среды имеют следующие значения:

  • <secret-prop-name>: Имя свойства секрета в конфигурации Spark.
  • <scope-name>: Имя области, с которой связан секрет.
  • <secret-name>: Уникальное имя секрета в области.

Примечание

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

Получение свойства конфигурации Spark из секрета

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

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

spark.<secret-prop-name> — Это имя свойства конфигурации Spark, которое сопоставляется с путем к секрету. Можно добавить несколько секретов в конфигурацию Spark при условии, что имена свойств секрета являются уникальными.

Пример

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

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

Языке

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

SQL

%sql SELECT ${spark.password};

Сохранение пути к секрету в переменной среды

Путь к секрету указывается в переменной среды и используется в скрипте инициализации с областью действия кластера. Эти переменные среды недоступны из программы, работающей в Spark.

SPARKPASSWORD=<path-value>

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

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

Удаление секрета.

Чтобы удалить секрет из области, поддерживаемой Azure Key Vault, используйте пользовательский интерфейс Azure сетсекрет REST API или портал Azure.