我正在开发一个 lambda 函数来使用 soap api。 soap api 需要使用 ssl 证书进行身份验证。我通过使用二进制加载程序 (webpack) 导入 pfx 文件,然后将其写回 lambda 容器中的“/tmp/”路径,设法让它在本地工作,如下所示:
const cert = require('/etc/ssl/certs/cert.pfx')
const certPath = '/tmp/cert.pfx'
fs.writeFileSync(certPath, Buffer.from(cert, 'binary'))
client.setSecurity('/tmp/cert.pfx', 'secretPassphrase', {...options});
这实际上不是一个可行的策略,因为它要么需要将 pfx 文件添加到版本控制中,要么需要采取其他复杂的措施。
我希望能够只从 AWS 的某处(secretsmanager/paramstore/someotherservice)请求 pfx 二进制文件。但我似乎无法找到一种方法来让它与二进制 pfx 格式一起工作。
解决这个问题的聪明方法是什么?
感谢一百万!
最佳答案
我的第一个想法是将 pfx 文件存储在您帐户的 S3 存储桶中,并在存储文件时指定 KMS 加密。然后授予 Lambda 函数的 IAM 角色权限以从 S3 读取文件。
在一些initialization code outside of your Lambda function's handler ,您只需使用 AWS 开发工具包调用 S3 复制函数,将 pfx 文件复制到 Lambda 函数的 /tmp
文件夹。
关于amazon-web-services - 如何安全地将 .pfx 证书添加到 aws lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61389417/