Каков наилучший способ хранения учетных данных для входа в систему Airflow? - PullRequest
0 голосов
/ 05 ноября 2018

Я обнаружил, что есть много способов сохранить его в виде переменных, хуков и других способов с использованием шифрования. Я хотел бы знать, как лучше всего это сделать.

1 Ответ

0 голосов
/ 05 ноября 2018

В настоящее время существует 2 способа хранения секретов:

1) Переменные воздушного потока : значение переменной будет скрыто, если ключ содержит какие-либо слова в ('password', 'secret', 'passwd', 'authorization', 'api_key', ' apikey ',' access_token ') по умолчанию, но его можно настроить для отображения в виде открытого текста, как показано на рисунке ниже.

enter image description here

Однако существует известная ошибка, при которой любой, имеющий доступ к пользовательскому интерфейсу, может экспортировать все переменные, которые будут раскрывать секреты.

2) Соединения воздушного потока :

Вы можете использовать поле Passwords в соединениях Airflow, которое будет шифровать это поле, если вы установили пакет crypto (pip install apache-airflow[crypto]). Поле пароля будет выглядеть пустым в пользовательском интерфейсе, как показано на скриншоте.

Подробнее о защите соединений: https://airflow.apache.org/howto/secure-connections.html

enter image description here

Я рекомендую второй подход, так как даже если кто-то получит доступ к пользовательскому интерфейсу, он / она не сможет получить ваши секреты. Имейте в виду, что для этого вам нужно установить пакет crypto.

Вы можете получить доступ к секретам, как показано ниже:

from airflow.hooks.base_hook import BaseHook

connection = BaseHook.get_connection(CONN_ID)
slack_token = connection.password

Вы можете установить CONN_ID в качестве имени вашего соединения.

...