首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Airflow fernet键不遮掩凭据。

Airflow fernet键不遮掩凭据。
EN

Stack Overflow用户
提问于 2022-04-13 10:15:02
回答 1查看 910关注 0票数 0

我在Python3.9中使用Airflow 2.2.3,并在docker容器中运行所有内容。当我在气流中添加连接时,我通过GUI进行连接,因为这样的话,密码就应该被加密。为了使加密有效,我在本地机器上安装了python包"apache-airflowcrypto“,并生成了一个Fernet密钥,然后我将其作为变量"AIRFLOW__CORE__FERNET_KEY:'MY_KEY'”放入我的docker-compe.yaml中。我还在我的气流存储库requirements.txt中添加了“apache- airflow fernet”包,这样气流就可以处理fernet键。

我的问题如下:

当我按描述的方式将fernet键作为环境变量添加到

  1. 时,我可以在坞中看到fernet键--Compose.yaml,以及当我进入容器并使用显示的os.environ"AIRFLOW__CORE__FERNET_KEY“时,这不是不安全吗?据我所知,凭据可以使用此fernet密钥进行解密。
  2. 当我向气流添加连接时,可以通过容器CLI通过“气流连接获取CONNECTION_NAME”获得它们的属性。虽然我添加了Fernet键,但我在这里看到了纯文本中的密码--这不是应该隐藏的吗?
  3. 与密码不同,GUI的“额外”字段中的值(/connection字符串)不会消失,甚至在GUI中也是可读的。如何向GUI和CLI隐藏这些凭据?

气流图形用户界面告诉我,我的连接是加密的,所以我认为加密在某种程度上确实有效。但是,当我能清楚地看到密码时,这句话意味着什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-13 10:47:20

我认为你对“加密”和“安全”做了错误的假设。假设您可以阻止用户访问运行中的软件(这是气流CLI给您的),这是不现实的,也不是真正的“物理上可以实现”的。

  1. Fernet密钥用于加密数据库中的“rest”数据。如果您的数据库内容被窃取(但不是您的气流程序/配置)-您的数据是受保护的。这是费内特·基的唯一原因。它保护存储在数据库中的数据“处于静止状态”。但是一旦你有了密钥(从气流运行时),你可以解密它。通常,数据库位于某个远程服务器中,并且有一些备份。如果你的气流实例是“安全的”,但是你的数据库或备份被“窃取”,没有人能够使用这些数据。

  1. 是的。如果您可以访问气流运行实例,您应该能够以明文读取密码。你还指望气流能起什么作用?它需要读取密码来进行身份验证。如果您可以运行气流程序,数据需要是可访问的。没有工作围绕它,你不能做不同的,这是不可能的设计。您可以做些什么来更好地保护您的数据--您可以使用“秘密管理器”( secrets Manager https://airflow.apache.org/docs/apache-airflow/stable/security/secrets/secrets-backend/index.html )--但它们给您提供了频繁轮换机密的最大可能性。气流-当运行需要访问那些密码,否则你将无法很好地认证。一旦您能够访问气流运行时(例如使用CLI),就没有办法阻止访问那些风流在运行时必须知道的密码。这是任何需要与外部系统进行身份验证并在运行时可访问的系统的基本属性。气流是用Python编写的,您可以轻松地编写使用它的运行时的任何代码,因此您无法实际保护运行时密码,这些密码需要知道为“气流核心”。在运行时,它需要知道身份验证才能与外部系统连接和通信。一旦您访问了系统,您就可以--根据定义--访问系统在运行时使用的所有秘密。世界上没有任何一个系统能够以不同的方式去做--这就是它的本质。频繁轮换和临时身份验证是处理此问题的唯一方法,以便在很长一段时间内不会使用可能泄漏的身份验证。

  1. 现代气流(我相信是2.1+)有一个隐秘的掩蔽器,当你指定它的时候,它也会隐藏敏感数据。https://airflow.apache.org/docs/apache-airflow/stable/security/secrets/mask-sensitive-values.html。秘密掩蔽还掩盖了日志中的敏感数据,因为日志也可以存档和备份,因此--类似于数据库--保护它是有意义的。UI不像CLI (它允许您访问气流“core”的运行时)只是一个前端,它不允许您访问运行中的核心,因此对敏感数据进行掩蔽也是有意义的。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71855759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档