我正在构建一个需要加密密钥才能运行的GAE应用。我想避免将密钥存储在代码或持久性数据存储区中,而是每当我启动应用程序时上传密钥,以便它在应用程序的生命周期内(仅从我开始)时才会驻留在内存中上传密钥,直到没有实例运行。)
我知道这可能与驻留后端有关,但这似乎太昂贵(最便宜的后端目前为58美元/月)只是为了在内存中保留一个值并按需将其提供给其他实例。
请注意,我并不是在寻找一个通用的强大共享内存解决方案,只需要一个基本上写入一次且多次读取的值。感谢。
答案 0 :(得分:4)
我认为这不会像你希望的那样发挥作用。 GAE中的数据来源:
1和4出局了。 2本身不起作用,因为实例的启动和停止不受你的控制(否则不会扩展),而持久化实例很昂贵。 3本身不起作用,因为Memcache可以随时清除。 5实际上与数据存储区没有什么不同,因为它永久存储在Google的服务器上。也许您可以尝试6(将其存储在其他地方),并在实例启动期间将其检索到每个实例的内存中。但我怀疑安全方面没有更好的安全性(并且,就此而言,与您所说的内容不符)。
答案 1 :(得分:0)
如果您:
,似乎Memcache和本地内存解决方案可能会起作用这样,只要一个实例正在运行,并且很可能在冷启动时就不存在,那么密钥可能会存在。
在密钥更改的情况下,也可以使用相同的机制传播新的密钥和/或循环服务器实例。