在Airflow上存储登录凭证的最佳方法是什么?

时间:2018-11-04 23:24:38

标签: python hook credentials airflow directed-acyclic-graphs

我发现有很多方法可以将其存储为变量,挂钩和其他使用加密的方法。我想知道什么是最好的方法。

1 个答案:

答案 0 :(得分:2)

目前有2种存储密码的方式:

1)气流变量:如果键中包含以下任何单词(“密码”,“秘密”,“密码”,“授权”,“ api_key”,“默认为'apikey','access_token'),但可以将其配置为以明文形式显示,如下图所示。

enter image description here

但是,存在一个已知的错误,任何有权访问UI的人都可以导出所有暴露秘密的变量。

2)气流连接

您可以使用Airflow连接中的 Passwords (密码)字段,如果您安装了crypto程序包(pip install apache-airflow[crypto]),则会对该字段进行加密。如屏幕截图所示,密码字段在用户界面中只会显示为空白。

有关确保连接安全的更多信息:https://airflow.apache.org/howto/secure-connections.html

enter image description here

我建议使用第二种方法,因为即使有人可以访问UI,他/她也将无法获取您的秘密。请记住,尽管您需要为此安装crypto软件包。

然后您可以按以下方式访问机密:

from airflow.hooks.base_hook import BaseHook

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

您可以将CONN_ID设置为连接的名称。