簡體   English   中英

如何在 Django 中保密 SECRET_KEY?

[英]How to keep a SECRET_KEY secret in Django?

Django 文檔建議將 SECRET_KEY 保留在環境變量中,而不是在 settings.py 文件中。

為什么這被認為更安全? 環境變量是純文本文件,提供與 settings.py 相同級別的保護。 即使文件 rw 權限設置為 root-only,我認為這並不難破解。

我的問題是:還有哪些其他選項可以存儲 SECRET_KEY?

或用於加密的主密鑰。 來自django-encrypted-secrets

django-encrypted-secrets 通過使用密鑰(本地存儲在 master.key 文件中或從環境變量DJANGO_MASTER_KEY 讀取)和讀取/寫入加密文件 secrets.yml.enc 的秘密來工作。

如果除了本地存儲的純文本文件或環境變量之外別無選擇。 如何妥善保護這一點?

它被認為更安全的原因是因為您應該在 git 或其他一些 VCS 中擁有您的設置文件以擁有一致的開發環境,但您的秘密應該在它之外。 這樣,即使開發人員不需要生產機密,他們也沒有生產機密。

只要您注意如何部署代碼、誰可以訪問服務器等,它就不需要任何額外的保護。

您的問題還詢問其他方法,所以...

您可以像在那里一樣對其進行加密,但這總是需要一個也需要以某種方式保護的主密鑰。

另一種選擇是使用服務器上的文本文件。

如果您想加密秘密,一個不錯的選擇是將它們加密存儲在您的持續集成解決方案中,這會在部署時將它們注入環境中。 Travis CI,GitHub Actions,或多或少任何 CI 解決方案都可以做到這一點。

但一般來說,將其排除在 VCS 之外並限制對機密的訪問通常就足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM