假设您使用 Django 和一堆代码创建一个 docker-compose.yml,并使用环境变量在 settings.py 中配置 SECRET_KEY。
如果您分发该 Docker 镜像,您将不会共享 SECRET_KEY。
部署您的 Docker 镜像时应该使用什么 SECRET_KEY?
他们不能编造自己的 SECRET_KEY 对吗?
According to the documentation, changing the secret key will invalidate:
- All sessions if you are using any other session backend than django.contrib.sessions.backends.cache, or are using the default get_session_auth_hash().
- All messages if you are using CookieStorage or FallbackStorage.
- All PasswordResetView tokens.
- Any usage of cryptographic signing, unless a different key is provided.
使用您创建的一堆代码部署 Docker 容器后,“重新生成” key 的最佳方法是什么?
(我搜索了又搜索,但感觉我正在寻找错误的东西或完全错过了一些东西:-)
最佳答案
每个独立部署服务的人都应该拥有自己的SECRET_KEY
。 (您确实不希望您描述的内容在安装之间共享:如果我已经登录到您的服务副本,我不应该能够在您的副本上重用我的 session cookie。)我通常使用的命令这是
dd if=/dev/urandom bs=60 count=1 | base64
这将生成一个 80 个字符的高质量随 secret 钥。
由此推论,您无法随图像一起分发加密数据。这通常不是问题(在 Docker 中分发预填充的关系数据库很困难),如果您通过在首次启动时运行数据库迁移和种子作业来执行此操作,那么它们应该能够使用您在安装时设置的任何 key 。
关于django - Docker+Django+SECRET_KEY : regenerate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57873434/