我发现有很多方法可以将其存储为变量,挂钩和其他使用加密的方法。我想知道什么是最好的方法。
答案 0 :(得分:2)
目前有2种存储密码的方式:
1)气流变量:如果键中包含以下任何单词(“密码”,“秘密”,“密码”,“授权”,“ api_key”,“默认为'apikey','access_token'),但可以将其配置为以明文形式显示,如下图所示。
但是,存在一个已知的错误,任何有权访问UI的人都可以导出所有暴露秘密的变量。
2)气流连接:
您可以使用Airflow连接中的 Passwords (密码)字段,如果您安装了crypto
程序包(pip install apache-airflow[crypto]
),则会对该字段进行加密。如屏幕截图所示,密码字段在用户界面中只会显示为空白。
有关确保连接安全的更多信息: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
设置为连接的名称。