【发布时间】:2020-06-05 00:26:02
【问题描述】:
是否可以将 kubernetes-secrets 与 Google Composer 一起使用以访问来自 Airflow 工作人员的机密?
我们在现有的独立 k8s Airflow 集群中使用 k8s Secret,并希望我们可以通过 Google Composer 实现同样的目标。
【问题讨论】:
标签: airflow google-cloud-composer
是否可以将 kubernetes-secrets 与 Google Composer 一起使用以访问来自 Airflow 工作人员的机密?
我们在现有的独立 k8s Airflow 集群中使用 k8s Secret,并希望我们可以通过 Google Composer 实现同样的目标。
【问题讨论】:
标签: airflow google-cloud-composer
Kubernetes 机密可供 Airflow 工作人员使用。您可以为您希望调用的任何 API 贡献组件以在 Airflow 中本地工作,以便凭据可以作为连接存储在 Airflow 的元数据数据库中,该数据库是静态加密的。使用Airflow connection 涉及使用适当的ACL 将密钥存储在GCS 中,并将Composer 设置为secure the connection。
您可以编写自己的自定义运算符来访问 Kubernetes 中的秘密并使用它。看看SimpleHttpOperator——这个模式可以应用于任何任意的秘密管理方案。这适用于访问 Airflow Connections、Hooks 和 Operators 未明确支持的外部服务的场景。
希望对你有帮助。
【讨论】:
默认情况下,Kubernetes 机密不会暴露给 Cloud Composer 部署的 Airflow 工作人员。您可以修补部署以添加它们(airflow-worker 和 airflow-scheduler),但不能保证如果您对环境执行更新(例如配置更新或就地升级)它们不会被还原.
可能最简单的方法是使用 Airflow 连接(使用 Fernet 在元数据数据库中加密),或者使用 KubernetesPodOperator/GKEPodOperator 启动 new pod 并将相关机密安装到pod 启动时的 pod。
【讨论】: