Интеграция с HashiCorp Vault для хранения секретов
Обзор
В Airflow под secret backend понимается механизм безопасного хранения и получения конфиденциальных данных, таких как пароли или API-ключи. Airflow поддерживает работу с различными видами secret backend (например, системные переменные, БД метаданных, локальная файловая система), но для безопасности рекомендуется использовать HashiCorp Vault.
Подготовка
Перед тем как проводить настройку в ADCM, убедитесь, что у вас установлен, настроен и доступен экземпляр Vault (см. Установка Vault).
Для подготовки к интеграции с ADO выполните следующие действия:
-
Создайте точку монтирования для Airflow:
$ vault secret enable -path=airflow -version=2 kv -
Сгенерируйте данные для входа (например, токен):
$ vault token create -period=30m
Сохраните полученный токен в файл или скопируйте его, т.к. он вам понадобится далее.
Настройка в ADCM
Для интеграции ADO с HashiCorp Vault следуйте шагам ниже:
-
В ADCM выберите ваш кластер ADO и перейдите в раздел Services → Airflow.
-
Активируйте переключатель Show advanced.
-
Активируйте переключатель Use secret backend with Vault и присвойте параметрам необходимые значения (см. Конфигурационные параметры Airflow):
Настройки Vault в ADCMПРИМЕЧАНИЕПри активированном параметре Manage sensitive configuration data ADO берет на себя как создание секретов (перемещение их из настроек в Vault), так и их обновление. Для подобных действий требуются права на создание секретов в Vault. -
Сохраните конфигурацию и перезапустите Airflow.
Ротация fernet-ключа
При включенной интеграции ADO с HashiCorp Vault меняется поведение сервисного действия Rotate fernet key.
| Autogenerate new fernet key активен | Autogenerate new fernet key неактивен | |
|---|---|---|
Manage sensitive configuration data активен |
Fernet-ключ изменится в Vault, значение не будет сохранено на хосте |
Если в качестве кастомного fernet-ключа предоставить пустое значение, то действие выполнится, но ни в Vault, ни на хосте никаких изменений не будет |
Manage sensitive configuration data неактивен |
Fernet-ключ изменится на хосте, в Vault не произойдет никаких изменений |
Если в качестве кастомного fernet-ключа предоставить пустое значение, то действие завершится с ошибкой из-за невозможности ротации ключа с пустым значением |
Во всех остальных случаях (например, при непустом валидном/невалидном кастомном fernet-ключе), действие ведет себя одинаково вне зависимости от упомянутых выше параметров.