Текущий подход
Мы используем SQOOP для получения всех видов реляционных данных и в последнее время движемся к среде Google Cloud Composer. Мы шифруем пароли с использованием симметричного ключа GCP KMS и храним пароли в GCS.
Наш подход состоит в том, чтобы запустить конвейер с задачей PythonOperator, чтобы прочитать и расшифровать файл пароля, а затем передать его с помощью XCOM airflow (Composer) для последующих задач sqoop в конвейере.
Шаги
- Шифровать файлы паролей с помощью симметричного ключа (или асимметричного ключа, если он помогает) и сохранять в GCS.
- В начале конвейера данных, сначала создайте задачу PythonOperator для расшифровки файла паролей.
- Затем передайте дешифрованный пароль через XCOM Airflow (Composer) другим задачам sqoop.
Проблема с подходом
При передаче данных в XCOM они отображаются в пользовательском интерфейсе композитора. Даже в противном случае пользовательский интерфейс будет отображать всю запущенную команду. Можно просмотреть пароль, который не является безопасным.
Вопрос:
Посоветуйте, пожалуйста, есть ли лучший способ использования KMS для нашего варианта использования?
Как настроить компоновщиксреда для отображения только зашифрованных значений для данных XCOM и / или выполняющейся команды?
Хранение секретов внутри соединений Airflow не является для нас вариантом по соображениям безопасности. Поэтому sqoopOperator также исключен.