Javascript Express App 中的最佳实践存储秘密
Best practice store secrets in Javascript Express App
我使用 express 和 AWS lambda 创建了一个简单的 NodeJS REST API。我开始使用环境变量,现在 process.env 遍及我的 API。
但是,我刚刚开始在 AWS 中测试 secretmanager。它似乎工作正常。我构建了一个模块 getAWSsecrets.js,我可以通过简单的 运行:
轻松访问它
async function testFunc() {
let credentials = await getSecrets();
console.log(credentials);
}
这是按预期工作的,getSecrets() 方法 returns 一个 json 包含我需要的所有秘密的对象。但是在我的应用程序的每个位置,我都需要发出这个 API 请求来获取秘密。是否有更好的方法以某种方式缓存机密以避免不得不一遍又一遍地调用 secretmanager。
说到这里,也许是最稳妥的吧?我该如何进行,什么是最佳实践?也许这不是问题,只是我的直觉说这看起来“笨拙”。
在每次冷启动时(第一个 运行)获取所有机密并使用它们。
let credentials;
let coldstart = false;
exports.handler = async (event, context) => {
if(!coldstart){
credentials = await getSecrets();
coldstart=true;
}
}
我使用 express 和 AWS lambda 创建了一个简单的 NodeJS REST API。我开始使用环境变量,现在 process.env 遍及我的 API。
但是,我刚刚开始在 AWS 中测试 secretmanager。它似乎工作正常。我构建了一个模块 getAWSsecrets.js,我可以通过简单的 运行:
轻松访问它async function testFunc() {
let credentials = await getSecrets();
console.log(credentials);
}
这是按预期工作的,getSecrets() 方法 returns 一个 json 包含我需要的所有秘密的对象。但是在我的应用程序的每个位置,我都需要发出这个 API 请求来获取秘密。是否有更好的方法以某种方式缓存机密以避免不得不一遍又一遍地调用 secretmanager。
说到这里,也许是最稳妥的吧?我该如何进行,什么是最佳实践?也许这不是问题,只是我的直觉说这看起来“笨拙”。
在每次冷启动时(第一个 运行)获取所有机密并使用它们。
let credentials;
let coldstart = false;
exports.handler = async (event, context) => {
if(!coldstart){
credentials = await getSecrets();
coldstart=true;
}
}