如何将 .pem 文件导入 AWS Lambda 函数

How to import .pem file to an AWS Lambda function

我正在尝试使用需要私钥文件的 AWS Lambda 连接到 STFP。我能够从本地连接,现在我需要将它部署到 Lambda 函数中。但是 pysftp.connection 需要 filepath 而不是 keystring 才能连接。

我可以使用 YAML 文件将私有文件打包到我的 Lambda 程序包中吗?

import pysftp

ftp = pysftp.Connection(host = hostname , username=user, port=22, private_key='...pem')

我可以将 pem 文件存储在 AWS SSM 中并在连接到 STFP 时访问文件吗?

是的,您可以将 .pem 文件打包为 AWS Lambda 函数代码部署的一部分。这将使它在本地文件系统上可用。

参见:AWS Lambda Deployment Package in Python - AWS Lambda

或者,您可以将 .pem 文件存储在 Amazon S3 中,并让 AWS Lambda 函数在使用前将其下载到 /tmp 目录。

我不会像其他答案所述那样将文件存储在 s3 中,这不是好的安全做法。

这是一个文档,其中包含如何将 SSM 机密与 Lambda 结合使用的示例,我之前成功使用过它。

https://aws.amazon.com/blogs/compute/sharing-secrets-with-aws-lambda-using-aws-systems-manager-parameter-store/

如果您需要有关创建部署包的说明,可以观看下面的视频。除了使用 pip 安装包,您可以简单地替换复制 lambda_function 文件夹中的 .pem 文件。然后执行其余步骤。

https://geektopia.tech/post.php?blogpost=Create_Lambda_Package_Python