Иногда для доступа к данным нужна проверка подлинности во внешних источниках данных через JDBC. Вместо прямого ввода учетных данных в записную книжку можно использовать секреты Azure Databricks для хранения учетных данных и ссылки на них в записных книжках и заданиях. В этой статье представлен обзор секретов Azure Databricks.
Общие сведения о секретах
Чтобы настроить и использовать секреты, выполните следующие действия.
Создание области секрета. Область секретов — это коллекция секретов, идентифицируемых по имени.
Администраторы, создатели секретов и пользователи с соответствующим разрешением, могут читать секреты Azure Databricks. Хотя Databricks делает попытку изменить значения секретов, которые могут отображаться в записных книжках, невозможно запретить таким пользователям читать секреты. См. раздел "Секретный редакт".
Управление областями секретов
Область секретов — это коллекция секретов, идентифицируемых по имени. Databricks рекомендует сопоставлять области секретов с ролями или приложениями, а не отдельными пользователями.
Существует два типа области секрета:
С поддержкой Azure Key Vault можно ссылаться на секреты, хранящиеся в Azure Key Vault, с помощью областей секретов, поддерживаемых Azure Key Vault. Область секрета, поддерживаемая Azure Key Vault, — это интерфейс только для чтения в Key Vault. Необходимо управлять секретами в области секретов, поддерживаемых Azure Key Vault, в Azure.
Databricks-backed: область секрета, поддерживаемая Databricks, хранится в зашифрованной базе данных, принадлежащей и управляемой Azure Databricks.
После создания области секрета можно назначить разрешения для предоставления пользователям доступа к чтению, записи и управлению секретными областями.
Создание области секретов на основе Azure Key Vault
В этом разделе описывается создание области секрета, поддерживаемой Azure Key Vault, с помощью портал Azure и пользовательского интерфейса рабочей области Azure Databricks. Вы также можете создать резервную область секрета Azure Key Vault с помощью интерфейса командной строки Databricks.
У вас должна быть роль участника Key Vault, участника или владельца в экземпляре хранилища ключей Azure, который вы хотите использовать для резервного копирования области секрета.
Примечание
Для создания области секрета, поддерживаемой Azure Key Vault, требуется роль участника или владельца в экземпляре хранилища ключей Azure, даже если служба Azure Databricks ранее была предоставлена доступ к хранилищу ключей.
Если хранилище ключей существует в другом арендаторе, отличном от рабочей области Azure Databricks, пользователь Azure AD, создающий область секретов, должен иметь разрешение на создание субъектов-служб в арендаторе хранилища ключей. В противном случае возникнет следующая ошибка:
Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
Настройка экземпляра хранилища ключей Azure для Azure Databricks
Войдите на портал Azure, найдите и выберите экземпляр хранилища ключей Azure.
В разделе "Параметры" перейдите на вкладку конфигурации Access.
Задайте модели разрешений для политики доступа Vault.
Примечание
Создание роли области секрета, поддерживаемой Azure Key Vault, предоставляет получение и разрешение list идентификатору приложения для службы Azure Databricks с помощью политик доступа к хранилищу ключей. Модель разрешений управления доступом на основе ролей Azure не поддерживается в Azure Databricks.
В разделе Параметрывыберите Сеть.
В брандмауэрах и виртуальных сетях задать Разрешить доступ:разрешить общедоступный доступ из определенных виртуальных сетей и IP-адресов.
В разделе "Исключение" установите флажок разрешить доверенным службы Майкрософт, чтобы обойти этот брандмауэр.
Примечание
Вы также можете задать Разрешить доступ из: на разрешить общедоступный доступ из всех сетей.
Создание области секретов с поддержкой Azure Key Vault
Переход к https://<databricks-instance>#secrets/createScope. Замените <databricks-instance>URL-адресом рабочей области для развертывания Azure Databricks. Этот URL-адрес учитывает регистр. Например, scope в ней createScope должен использоваться верхний регистр S).
Введите имя области секретов. В именах областей секретов учитывается регистр.
В Управление принципалом выберите Creator или Все пользователи рабочей области, чтобы указать, какие пользователи имеют разрешение MANAGE в секретной области.
Разрешение MANAGE позволяет пользователям читать, записывать и предоставлять разрешения на область. Ваша учетная запись должна иметь план "Премиум" для выбора создателя.
Введите DNS-имя (например, https://databrickskv.vault.azure.net/) и идентификатор ресурса, например:
Эти свойства доступны на > параметров" в Azure Key Vault в портал Azure.
Нажмите кнопку Создать.
Используйте команду CLIdatabricks secrets list-scopes Databricks, чтобы убедиться, что область создана успешно.
Создание области секрета, поддерживаемой Databricks
В этом разделе описывается, как создать область секрета с помощью CLI Databricks (версия 0.205 и выше). Вы также можете использовать API секретов.
Имена областей секрета:
Должно быть уникальным в пределах рабочей области.
Должен состоять из буквенно-цифровых символов, дефисов, @символов подчеркивания и периодов и не может превышать 128 символов.
Не учитывается регистр.
Имена областей секретов считаются нечувствительными и доступны для чтения всеми пользователями в рабочей области.
Создание области с помощью интерфейса командной строки Databricks:
Bash
databricks secrets create-scope <scope-name>
По умолчанию области создаются с разрешением MANAGE для пользователя, создавшего область. После создания области секретов, поддерживаемой Databricks, вы можете добавить в нее секреты.
Список секретных областей
Чтобы получить список существующих областей в рабочей области с помощью интерфейса командной строки:
Bash
databricks secrets list-scopes
Вы также можете перечислить области секретов с помощью API секретов .
Удаление области секрета
При удалении области секретов удаляются все секреты и списки контроля доступа, примененные для области. Чтобы удалить область с помощью интерфейса командной строки, выполните следующую команду:
Bash
databricks secrets delete-scope <scope-name>
Вы также можете удалить область секретов с помощью API секретов.
Управление секретами
Секрет — это пара "ключ-значение", которая хранит конфиденциальный материал с использованием имени ключа, уникального в пределах области секрета.
В этом разделе описывается, как создать область секрета с помощью CLI Databricks (версия 0.205 и выше). Вы также можете использовать API секретов. В именах секретов учитывается регистр.
Создание секрета
Метод создания секретов зависит от того, используется ли область с поддержкой Azure Key Vault или область с поддержкой Databricks.
Создание секрета в области с поддержкой Azure Key Vault
Создание секрета в области с поддержкой Databricks
В этом разделе описывается, как создать секрет с помощью Интерфейса командной строки Databricks (версия 0.205 и более поздней) или в записной книжке с помощью пакета Databricks SDK для Python. Вы также можете использовать API секретов. В именах секретов учитывается регистр.
Интерфейс командной строки Databricks
При создании секрета в области, поддерживаемой Databricks, можно указать значение секрета одним из трех способов:
Укажите значение в виде строки с помощью флага -string-value.
Введите секрет при интерактивном появлении запроса (секреты с одной строкой).
Передайте секрет с помощью стандартных входных данных (многострочный секрет).
В ответе отображаются метаданные о секретах, таких как имена ключей секретов. С помощью служебной программы секретов (dbutils.secrets) в записной книжке или задании можно перечислить эти метаданные. Например:
dbutils.secrets.list('my-scope')
Удаление секрета.
Чтобы удалить секрет из области с помощью Databricks CLI:
Чтобы удалить секрет из области с поддержкой Azure Key Vault, используйте вызов API REST Azure SetSecret или портал Azure.
Управление разрешениями области секретов
По умолчанию пользователь, создающий области секретов, предоставляется разрешение MANAGE. Это позволяет создателю области читать секреты в области, записывать секреты в область и управлять разрешениями на область.
Примечание
Списки управления секретами находятся на уровне области. Если вы используете области, поддерживаемые Azure Key Vault, пользователи, которым предоставлен доступ к области, имеют доступ ко всем секретам в Azure Key Vault. Чтобы ограничить доступ, используйте отдельные экземпляры хранилища ключей Azure.
В этом разделе описано, как управлять доступом к секретам с помощью Databricks CLI (версия 0.205 и выше). Вы также можете использовать API секретов. Сведения о уровнях разрешений секрета см. в разделе "Списки управления доступом к секретам"
Предоставление пользователям разрешений на область секрета
Чтобы предоставить пользователю разрешения на секретную область с помощью CLI Databricks:
Выполнение запроса на размещение для субъекта, который уже имеет примененное разрешение, перезаписывает существующий уровень разрешений.
Поле principal указывает существующий субъект Azure Databricks. Пользователь указывается с помощью своего адреса электронной почты, субъекта-службы, используя его applicationId значение, и группу, используя ее имя группы. Дополнительные сведения см. в разделе "Субъект".
Просмотр разрешений области секрета
Чтобы просмотреть все разрешения области секретов для заданной области секрета:
Bash
databricks secrets list-acls <scope-name>
Чтобы получить разрешения на доступ к секретной области, примененные к субъекту для данной секретной области:
Хранение учетных данных в виде секретов Azure Databricks упрощает защиту учетных данных при запуске записных книжек и заданий. Но вы можете случайно вывести секрет в стандартные буферы вывода или отобразить его значение при назначении переменной.
Чтобы предотвратить это, Azure Databricks редактирует все значения секретов, которые считываются с помощью dbutils.secrets.get(). При отображении в выходных данных ячейки записной книжки секретные значения заменяются на [REDACTED].
Например, если задать для переменной значение секрета с помощью dbutils.secrets.get(), а затем распечатать эту переменную, эта переменная заменяется [REDACTED].
Предупреждение
Скрытие секретов в выходных данных ячейки записной книжки применяется только к литералам. Функциональность секретного редактирования не предотвращает преднамеренное и произвольное преобразование секретного литерала. Чтобы обеспечить надлежащий контроль секретов, следует использовать списки управления доступом , чтобы ограничить разрешения для выполнения команд. Это предотвращает несанкционированный доступ к контекстам общей записной книжки.
В этом модуле вы узнаете об управлении секретами в приложениях Java в Azure. Вы ознакомитесь с такими подходами, как "Никому не доверяй" и "Никаких секретов в коде", а также узнаете, как применять их в реальных проектах Java с помощью Azure Key Vault.
As an Information Security Administrator, you plan and implement information security of sensitive data by using Microsoft Purview and related services. You’re responsible for mitigating risks by protecting data inside collaboration environments that are managed by Microsoft 365 from internal and external threats and protecting data used by AI services. You also implement information protection, data loss prevention, retention, insider risk management, and manage information security alerts and activities.