Dav*_*ver 34 security google-app-engine
是否存在为Google App Engine存储密钥的非常糟糕的方法?或者,至少,比检查它们进入源代码管理更不可怕?
Rem*_*mko 10
与此同时,Google添加了密钥管理服务:https://cloud.google.com/kms/
您可以使用它来加密您的秘密,然后将它们存储在数据库中,或者将它们存储在加密的源代码管理中.只有同时"解密"访问KMS和您的秘密的人才能使用它们.
事实上,能够部署代码的人总能找到你的秘密(假设你的GAE应用程序需要能够使用这些秘密),但就我所能想到的那样,没有办法解决这个问题.
这里没有简单的解决方案.检查密钥到存储库是不好的,因为它检查不相关的配置详细信息,因为它可能会暴露敏感数据.我通常只为一个实体创建一个配置模型,并在第一次部署后(或者每次更改时)在其上设置相关的配置选项和密钥.
或者,您可以签入示例配置文件,然后将其从版本控制中排除,并在本地保留实际的密钥.但是,这需要某种方式来分发密钥,并且使得开发人员无法部署,除非他们拥有生产密钥(并且所有这些都很容易意外地将示例配置文件部署到实时密钥上).
不完全是答案:
在一天结束时,任何可以部署的人都可以获得密钥,因此问题是您是否认为通过将密钥存储在数据存储区(例如,您可以备份)或部署者的计算机上来最小化风险.
一个可行的替代方案可能是将两者结合起来:将加密的API密钥存储在数据存储区中,并将主密钥放在配置文件中.这有一些潜在的好功能:
当然,那么你是将加密上传到谷歌的服务器,这可能会或可能不会被视为"导出"加密与通常的法律问题(例如,如果谷歌设立亚太数据中心怎么办?).
| 归档时间: |
|
| 查看次数: |
10119 次 |
| 最近记录: |