【问题标题】:Using kubernetes-secrets with Google Composer将 kubernetes-secrets 与 Google Composer 一起使用
【发布时间】:2020-06-05 00:26:02
【问题描述】:

是否可以将 kubernetes-secrets 与 Google Composer 一起使用以访问来自 Airflow 工作人员的机密?

我们在现有的独立 k8s Airflow 集群中使用 k8s Secret,并希望我们可以通过 Google Composer 实现同样的目标。

【问题讨论】:

    标签: airflow google-cloud-composer


    【解决方案1】:

    Kubernetes 机密可供 Airflow 工作人员使用。您可以为您希望调用的任何 API 贡献组件以在 Airflow 中本地工作,以便凭据可以作为连接存储在 Airflow 的元数据数据库中,该数据库是静态加密的。使用Airflow connection 涉及使用适当的ACL 将密钥存储在GCS 中,并将Composer 设置为secure the connection

    您可以编写自己的自定义运算符来访问 Kubernetes 中的秘密并使用它。看看SimpleHttpOperator——这个模式可以应用于任何任意的秘密管理方案。这适用于访问 Airflow Connections、Hooks 和 Operators 未明确支持的外部服务的场景。

    希望对你有帮助。

    【讨论】:

    • 感谢@muscat 的建议。您能稍微扩展一下 SimpleHttpOperator 的想法吗,它是如何工作的?
    • 实际上,我找到了另一个KubernetesPodOperator,它允许将秘密公开为环境变量,对你有用吗? Airflow 工作人员可以简单地请求仅使用他们需要的秘密来构建 pod。 Kubernetes documentation.
    【解决方案2】:

    默认情况下,Kubernetes 机密不会暴露给 Cloud Composer 部署的 Airflow 工作人员。您可以修补部署以添加它们(airflow-workerairflow-scheduler),但不能保证如果您对环境执行更新(例如配置更新或就地升级)它们不会被还原.

    可能最简单的方法是使用 Airflow 连接(使用 Fernet 在元数据数据库中加密),或者使用 KubernetesPodOperator/GKEPodOperator 启动 new pod 并将相关机密安装到pod 启动时的 pod。

    【讨论】:

      猜你喜欢
      • 2020-12-08
      • 2017-12-23
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多