大家好,我担心在多克部署气流会有安全隐患.
在Docker合成文件中,您可以为Fernet设置加密密钥。我担心的是,此密钥在此Docker合成文件中是硬编码的。因此,我的问题是,是否可以删除Docker合成文件,但仍然能够停止并运行服务。
最好将这个env.变量包含在一个Dockerfile中并创建一个新的映像?这样是否更安全?
谢谢你的协助
version: '3'
x-airflow-common:
&airflow-common
# In order to add custom dependencies or upgrade provider packages you can use your extended image.
# Comment the image line, place your Dockerfile in the directory where you placed the docker-compose.yaml
# and uncomment the "build" line below, Then run `docker-compose build` to build the images.
image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.5.1}
# build: .
environment:
&airflow-common-env
AIRFLOW__CORE__EXECUTOR: CeleryExecutor
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
# For backward compatibility, with Airflow <2.3
AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
AIRFLOW__CELERY__RESULT_BACKEND: db+postgresql://airflow:airflow@postgres/airflow
AIRFLOW__CELERY__BROKER_URL: redis://:@redis:6379/0
AIRFLOW__CORE__FERNET_KEY: ''
我已经成功地设置了Fernet密钥及其在airflow内部的工作,因为变量是加密的,到目前为止我没有任何运行时错误。
我正在寻找最佳安全做法
1条答案
按热度按时间rryofs0p1#
您 * 可以 * 删除
docker-compose.yml
文件,容器将保持运行,但如果发生任何更改(包括合成文件中的其他容器之一),您将很难重新创建容器。这里最直接的方法是将凭据设置为主机上的环境变量,然后要求Compose将其传递给容器:
绝对不要把这个秘密放在你的Dockerfile中,它不仅会是纯文本的,而且会被保存在你的图片中,任何人只要得到一个图片的副本,就可以轻易地把它拿回来。