我對Node.js非常陌生& Express.js我用它來編寫Web API服務。 要啓用HTTPS服務使用下面的代碼:NodeJS/Express + HTTPS:如何將密鑰和證書部署到AWS EC2節點?
const server = https
.createServer({
key: fs.readFileSync('./cert/myservice.key'),
cert: fs.readFileSync('./cert/myservice.crt')
})
.listen(serverConfig.server.port,() => logger.info(`MyService is up and running`));
因爲它很容易看到,該代碼假定.key
和.crt
文件可在本地服務應用程序的位置。 如果我想將服務部署到單個AWS EC2主機(出於簡單的原因),這些文件必須在那裏,這似乎不是一個安全的解決方案。
我在考慮使用AWS IAM來保護機密。 問題在於無法將IAM的機密「直接」部署到EC2節點。 我不得不使用IAM的API來獲取祕密,但問題是如何使EC2上的AWS憑證可用。
問題:是否存在向AWS EC2節點部署機密(包括證書和密鑰)的建議安全方法?
如果我在EC2實例前的ELB級別上應用SSL,我可以擺脫我服務中的HTTPS設置代碼,是否正確?我還假設如果我將ELB配置爲不在單個實例之上增長(我的項目甚至不在早期的alpha中,所以我根本不需要它來自動調整),所以沒有[重大]成本更改。 –
正確。那麼涉及的成本很小。查看ELB定價。 https://aws.amazon.com/elasticloadbalancing/classicloadbalancer/pricing – Manoj
如果您擔心成本,可以通過將應用程序遷移到無服務器來進一步降低成本。 (Lambda和API網關)。看看這個。 https://github.com/awslabs/aws-serverless-express – Manoj