Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Эта функция доступна в бета-версии.
Настройте схему Unity Catalog с Azure Key Vault, чтобы использовать секреты Azure Key Vault в блокнотах, рабочих местах и UDF без их копирования. Значения остаются в Key Vault, а права Unity Catalog контролируют, кто может читать или использовать каждый секрет.
В отличие от секретного скопа, поддерживаемого Azure Key Vault, который открывает целое хранилище в одном рабочем пространстве, схема Unity Catalog с поддержкой Key Vault доступна в каждом рабочем пространстве, привязанном к метамагазину, и предоставляет доступ к каждому секрету отдельно.
Чтобы сравнить внешние секреты с секретами, управляемыми Azure Databricks, и областями секретов рабочего пространства, см. раздел «Выбрать, где хранить секрет».
Как работают внешние секреты
Схема использует одно соединение с вашим облачным менеджером секретов. Два независимых механизма определяют, кто может использовать секретный ключ. Права учетных данных сервиса в вашем секретном менеджере определяют, какие секреты Unity Catalog может импортировать и читать, а привилегии Unity Catalog определяют, какие принципалы могут ими пользоваться.
После того как вы создаёте резервную копию схемы, внешние секреты ведут себя следующим образом:
- Каждое считывание загружает текущее значение: Значение, которое вы ротируете в секретном менеджере, вступает в силу при следующем чтении, без изменений в Azure Databricks. Код, который уже содержит значение, сохраняет его, пока не прочитает секрет снова. Полученные значения могут быть кэшированы на вычислительном устройстве, которое их запросило, как и другие секреты.
- Управляйте секретами в диспетчере секретов: создавайте, обновляйте, ротируйте и удаляйте секреты. В Unity Catalog они доступны только для чтения. Когда вы навсегда удаляете секрет в вашем менеджере секретов, Azure Databricks удаляет секрет Unity Catalog, включая его права и теги.
- Импорт новых секретов через список: Просмотр схемы запускает асинхронный импорт. Секрет, добавленный или удалённый из вашего менеджера секретов, появляется в Unity Catalog при следующем просмотре списка, что может занять несколько минут для крупных хранилищ. Вы можете прочитать секрет по имени, прежде чем он появится в списке.
- Журналы аудита записывают обе стороны: журналы аудита Unity Catalog фиксируют принципал Azure Databricks, который прочитал секрет. Логи на стороне облака относят доступ к учетным данным службы.
Требования
- Соблюдайте требования к секретам в Unity Catalog.
- Для вашего рабочего пространства должна быть включена бета-функция внешних секретов. См. статью "Управление предварительными версиями Azure Databricks".
- Вам нужны учетные данные службы Unity Catalog и соединение Unity Catalog, которое использует их для аутентификации с вашим секретным менеджером. См. Создание учетных данных сервиса и Создание подключения.
- Чтобы создать схему, вам нужны
USE CATALOGдля каталога, владение схемой илиMANAGEна неё, а такжеUSE CONNECTIONдля соединения. Схема не должна содержать секретов, управляемых Azure Databricks, поэтому удаляйте их перед созданием ее резервной копии.
Создайте внешние секреты
Создать удостоверение сервиса
Соединение аутентифицируется в вашем менеджере секретов с помощью учетных данных службы Unity Catalog.
- Создайте учетные данные сервиса, поддерживаемые управляемой идентификацией или субъектом-службой, как описано в разделе «Создание учетных данных сервиса».
- Разрешите субъекту перечислять и читать секреты в Key Vault. Например, назначить роль Key Vault Secrets User или политику доступа с разрешениями на получение и перечисление секретов.
Создание подключения
Создайте соединение Unity Catalog, которое использует учетные данные службы и указывает на ваш менеджер секретов. Вам нужен CREATE CONNECTION в metastore.
Обозреватель каталогов
- В Catalog Explorer нажмите на + меню и выберите Создать подключение.
- Введите имя подключения и выберите тип подключения Azure Key Vault.
- Выберите учетные данные службы и задайте имя хранилища вашего Key Vault.
- Нажмите кнопку Создать.
Интерфейс командной строки Databricks
Чтобы создать соединение, запустите следующее. Укажите vault_name имя вашего Key Vault и credential имя учетных данных сервиса:
databricks connections create --json '{
"name": "my_key_vault_connection",
"connection_type": "AZURE_KEY_VAULT",
"options": {
"vault_name": "my-vault",
"credential": "my_key_vault_credential"
}
}'
REST API
Чтобы создать соединение, запустите следующее. Azure Databricks преобразует vault_name в https://<vault_name>.vault.azure.net:
curl -X POST \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "my_key_vault_connection",
"connection_type": "AZURE_KEY_VAULT",
"options": {
"vault_name": "my-vault",
"credential": "my_key_vault_credential"
}
}' \
"$DATABRICKS_HOST/api/2.1/unity-catalog/connections"
Свяжите схему с подключением
- В обозревателе каталогов перейдите к схеме.
- В деталях схемы найдите настройку внешнего менеджера секретов и нажмите «Включить». Включить остаётся недоступным, пока схема не содержит секретов.
- Выберите созданное вами соединение, затем подтвердите.
Чтобы направить схему на другое подключение, нажмите Редактировать. Чтобы вернуть схему в хранилище, управляемое Azure Databricks, отредактируйте схему и отключите внешние секреты. Любое из этих изменений удаляет ранее импортированные секреты из схемы, включая их права и теги.
Проверка установки
Чтобы убедиться, что Unity Catalog может перечислять и читать ваши секреты, запустите следующее в блокноте:
# List the secrets in the schema. This also starts an import of new secrets.
dbutils.secrets.list(catalog="main", schema="orders_app")
# Read one secret by name
dbutils.secrets.get(catalog="main", schema="orders_app", key="example_secret")
Если список пуст, запустите его снова через несколько минут. Если чтение не удаётся, см. раздел «Устранение неполадок».
Имена секретов в Unity Catalog
Unity Catalog импортирует внешний секрет только если его название соответствует следующим правилам:
- Имена длиннее 255 символов не импортируются.
- Регистр имен не учитывается. Если два секрета различаются только по регистру, Unity Catalog сохраняет первый импортированный и игнорирует остальные.
-
.становится:и/становится|. Azure Databricks рекомендует избегать этих символов в внешних секретных именах.
Чтобы прочитать секрет до того, как он появится в списке, используйте его название с этими заменами.
Troubleshooting
- Секрет отображается в списке, но его не удаётся прочитать: личность может видеть секрет в списке, но не может прочитать его значение, или секрет отключён в Key Vault. Предоставьте роль Key Vault Secrets User или политику доступа с разрешением на получение, либо повторно включите секрет.
- Исчез секрет: Unity Catalog не показывает мягко удалённые секреты Key Vault. Восстановите секрет в Key Vault.
- Новый секрет не появляется: Перечислите схему, подождите несколько минут и снова перечислите её. Проверьте ограничения по названию и квоту схемы.
- Некоторые секреты так и не появляются: схема содержит до 1000 секретов. Когда в вашем менеджере секретов секретов больше, Unity Catalog импортирует самые старые по дате создания и пропускает остальные. Раскрывайте только те секреты, которые нужны в каждой схеме. См. группируйте секреты по тем, кому они нужны.
Ограничения
В дополнение к ограничениям, применимым ко всем секретам Unity Catalog, внешне поддерживаемые секреты имеют следующие ограничения:
- Межоблачный доступ не поддерживается: создавайте резервные копии схем с помощью менеджера секретов, собственного для облака рабочего пространства.
- Задержка чтения и затраты: При каждом чтении значение извлекается из внешнего менеджера секретов, что увеличивает задержку и может повлечь расходы на услуги облачного провайдера.
- Нет фильтрации тегов: Azure Key Vault не поддерживает фильтрацию импортированных секретов по тегу.
Примечание.
Если внешний менеджер секретов, поддерживающий схему, находится в другом регионе от метамагазина или рабочего пространства, которые её читают, значения секретов и их метаданные пересекают регионы. Azure Databricks не гарантирует обработку внешних секретов внутри региона.
Внешние секретные имена и значения могут содержать персональные данные. Вы несёте ответственность за то, чтобы личные данные не попадали туда, если только этого не требует ваш сценарий использования.
Дополнительные ресурсы
| Resource | Description |
|---|---|
| Лучшие практики для секретов Unity Catalog | Организуйте секреты по окружению, приложению или команде, и пусть рабочие нагрузки используют секреты, не читая их. |
| Каталог Secrets in Unity | Создавайте, предоставляйте и читайте секреты Unity Catalog. |