Amazon ec2 有没有一种方法可以从云结构中创建节点,这些节点可以在没有密码的情况下通过ssh相互连接?

Amazon ec2 有没有一种方法可以从云结构中创建节点,这些节点可以在没有密码的情况下通过ssh相互连接?,amazon-ec2,amazon-cloudformation,Amazon Ec2,Amazon Cloudformation,我正在创建一个AWS云形成模板,该模板设置了一组节点,这些节点必须允许无密钥ssh登录。i、 e.一个控制器必须能够使用其私钥登录到所有从机。控制器私钥是动态生成的,因此我无法将其硬编码到模板的用户数据中,也无法将其作为参数传递给模板 云形成模板中是否有方法将控制器的公钥添加到从属节点的授权密钥文件中 是否有其他方法使用安全组或IAM来执行所需操作?您必须以用户数据的形式将主服务器上的公钥传递给从属节点。Cloudformation确实支持用户数据。您可能需要找出相同的语法 换句话说,把它看作一

我正在创建一个AWS云形成模板,该模板设置了一组节点,这些节点必须允许无密钥ssh登录。i、 e.一个控制器必须能够使用其私钥登录到所有从机。控制器私钥是动态生成的,因此我无法将其硬编码到模板的用户数据中,也无法将其作为参数传递给模板

云形成模板中是否有方法将控制器的公钥添加到从属节点的授权密钥文件中


是否有其他方法使用安全组或IAM来执行所需操作?

您必须以
用户数据的形式将主服务器上的公钥传递给从属节点。Cloudformation确实支持用户数据。您可能需要找出相同的语法

换句话说,把它看作一个简单的BASH脚本,它将把主服务器的公钥复制给奴隶。然后将这个bash脚本作为suer数据传递,以便在第一次创建实例时执行它


您将在上面的信息上找到大量的goggle搜索。

我将用IAM机器角色来解决这个问题。您可以授予特定机器某些AWS权限。IAM角色不适用于ssh访问,但适用于AWS api调用,如s3 bucket访问或创建ec2实例

因此,解决方案可能如下所示:

  • 创建可以写入特定S3存储桶的控制器计算机角色
  • 创建一个从机角色,该角色可以从该存储桶中读取数据
  • 让控制器创建一个上传公钥到bucket中的命令
  • 由于您不知道控制器是否是在从机之前创建的,因此您必须让cloud init每隔几分钟设置一个cron作业,从bucket下载密钥(如果它还没有这样做的话)

  • 我知道用户数据,但由于密钥对是在控制器启动后生成的,因此无法硬编码到用户数据中。