如何使用 Amazon Lambda 中的 .pem 文件访问 EC2 实例

How to use .pem file inside Amazon Lambda to access EC2 instance

我目前正在从事一个在 AWS 环境中进行的项目。我配置了一个 S3 存储桶以接收邮件(邮件来自 SES,但这不相关)。

我想要做的是创建一个能够访问 EC2 实例并启动 python 脚本的 Lambda 函数。到目前为止,我有下面的代码。问题是当我创建我的 ec2 实例时,我没有创建任何用户名或密码来通过 SSH 连接。我只有一个 .pem 文件(证书文件)来对实例进行身份验证。

我做了一些研究,但找不到任何有用的东西。

var SSH = require('simple-ssh');
var ssh = new SSH({
    host: 'localhost',
    user: 'username',
    pass: 'password'
});

ssh.exec('python3.6 path/to/my/python/script.py', {
    out: function(stdout) {
        console.log(stdout);
    }
}).start();

我一直在考虑几种解决方案,但我一点也不确定:

感谢您的宝贵时间。

更好的选择是使用 AWS Systems Manager 在您的 Amazon EC2 实例上远程 运行 命令。

如果您仍然选择使用 simple-ssh,那么您需要在创建 SSH 对象时在 config.key 中提供 SSH 密钥。您可以将私钥存储在 Parameter Store 或 Secrets Manager 中,并在 Lambda 中检索它。在这种情况下,您绝对应该使用无密码 SSH(使用密钥对)。