我发现有很多方法可以将其存储为变量、挂钩和其他使用加密的方式。我想知道最好的方法是什么。
9016 次
1 回答
18
目前有两种存储秘密的方式:
1) Airflow Variables : 默认情况下,如果 key 包含 ('password', 'secret', 'passwd', 'authorization', 'api_key', 'apikey', 'access_token') 中的任何单词,则变量的值将被隐藏,但可以配置为以明文显示,如下图所示。
但是,有一个已知错误,任何有权访问 UI 的人都可以导出所有将暴露秘密的变量。
2)气流连接:
您可以使用 Airflow 连接中的Passwords字段,如果您已安装crypto软件包 ( pip install apache-airflow[crypto]),它将对该字段进行加密。如屏幕截图所示,密码字段将在 UI 中显示为空白。
有关保护连接的更多信息:https ://airflow.apache.org/howto/secure-connections.html
我推荐第二种方法,因为即使有人可以访问 UI,他/她也无法获取您的秘密。请记住,您需要为此安装crypto软件包。
然后,您可以访问以下秘密:
from airflow.hooks.base_hook import BaseHook
connection = BaseHook.get_connection(CONN_ID)
slack_token = connection.password
您可以将 设置CONN_ID为连接的名称。
于 2018-11-05T10:46:50.983 回答

