通过安全方法的 Apache Airflow Ldap 身份验证
Apache Airflow Ldap Authentication Via Secure Method
我们使用apacheairflow
但我们想使用 ldap 身份验证
正如我看到配置文件想要 AUTH_LDAP_BIND_PASSWORD = "**********" 我们不能这样写密码。
因为这种方法不安全。
如何在此行隐藏 ldap 绑定密码,我们对此一无所知,也许有人可以帮助我?
这种方法通常通过管道或 bash 脚本进行,我们所做的是
- 我们将密码导出为变量,
- 模板化并生成值文件,
- 使用 helm 安装,
- 删除 values.yaml 文件
您可以将密码导出到脚本中,例如
export LDAP_PASSWORD=$(cat ./ldappassword)
现在你可以把values.yaml.j2
中的webserver_config写成
webserver:
webserverConfig: |
#... the other values
AUTH_LDAP_BIND_PASSWORD = "{{ LDAP_PASSWORD }}"
请注意。这需要安装 j2cli
并且 values.yaml 文件的扩展名是 .j2
现在您可以通过调用
来替换这些模板
j2 ./values.yaml.j2 > ./values.yaml
此命令用相应的环境变量替换 **{{ variables }}**
下的模板。
执行此命令后,您可以通过以下方式安装气流
helm upgrade --install $RELEASE_NAME apache/airflow -n $NAMESPACE -f values.yaml
然后删除模板化的 values.yaml
.
还有一种方法。
为密码创建 Kubernetes Secret
kubectl create secret generic ldap-secret --from-file=ldap-password="ldappassword" -n $NAMESPACE
通过values.yaml
在网络服务器中挂载kubernetes secret
webserver:
extraVolumes:
- name: ldap
secret:
secretName: ldap-secret
extraVolumeMounts:
- name: ldap
mountPath: /usr/local/airflow/ldappassword
readOnly: true
- 在
values.yaml
中也参考 webserver_config
中的此卷。
webserver:
webserverConfig: |
# ... your other ldap values
with open('/usr/local/airflow/ldappassword/ldap-password','r') as fp:
x = fp.read()
AUTH_LDAP_BIND_PASSWORD = x
我们使用apacheairflow 但我们想使用 ldap 身份验证 正如我看到配置文件想要 AUTH_LDAP_BIND_PASSWORD = "**********" 我们不能这样写密码。 因为这种方法不安全。 如何在此行隐藏 ldap 绑定密码,我们对此一无所知,也许有人可以帮助我?
这种方法通常通过管道或 bash 脚本进行,我们所做的是
- 我们将密码导出为变量,
- 模板化并生成值文件,
- 使用 helm 安装,
- 删除 values.yaml 文件
您可以将密码导出到脚本中,例如
export LDAP_PASSWORD=$(cat ./ldappassword)
现在你可以把values.yaml.j2
中的webserver_config写成
webserver:
webserverConfig: |
#... the other values
AUTH_LDAP_BIND_PASSWORD = "{{ LDAP_PASSWORD }}"
请注意。这需要安装 j2cli
并且 values.yaml 文件的扩展名是 .j2
现在您可以通过调用
来替换这些模板j2 ./values.yaml.j2 > ./values.yaml
此命令用相应的环境变量替换 **{{ variables }}**
下的模板。
执行此命令后,您可以通过以下方式安装气流
helm upgrade --install $RELEASE_NAME apache/airflow -n $NAMESPACE -f values.yaml
然后删除模板化的 values.yaml
.
还有一种方法。 为密码创建 Kubernetes Secret
kubectl create secret generic ldap-secret --from-file=ldap-password="ldappassword" -n $NAMESPACE
通过
在网络服务器中挂载kubernetes secretvalues.yaml
webserver:
extraVolumes:
- name: ldap
secret:
secretName: ldap-secret
extraVolumeMounts:
- name: ldap
mountPath: /usr/local/airflow/ldappassword
readOnly: true
- 在
values.yaml
中也参考webserver_config
中的此卷。
webserver:
webserverConfig: |
# ... your other ldap values
with open('/usr/local/airflow/ldappassword/ldap-password','r') as fp:
x = fp.read()
AUTH_LDAP_BIND_PASSWORD = x