【问题标题】:Is there a way to create nodes from cloud formation that can ssh to each other without passwords?有没有办法从云形成中创建节点,无需密码即可相互连接?
【发布时间】:2014-05-27 00:53:36
【问题描述】:

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

Cloud Formation 模板中有没有办法将控制器的公钥添加到从节点的授权密钥文件中?

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

【问题讨论】:

    标签: amazon-ec2 amazon-cloudformation


    【解决方案1】:

    您必须将主服务器的公钥以user-data 的形式传递给从节点。 Cloudformation 确实支持用户数据。您可能必须弄清楚相同的语法。

    换句话说,将其视为一个简单的 bash 脚本,它将主服务器的公钥复制到从服务器。然后将此 bash 脚本作为 suer-data 传递,以便在第一次创建实例时执行它。

    你会发现关于上述信息的大量 goggle 搜索。

    【讨论】:

    • 我知道用户数据,但由于密钥对是在控制器启动后生成的,因此无法将其硬编码到用户数据中。
    【解决方案2】:

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

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

    1. 创建可以写入特定 S3 存储桶的控制器机器角色。
    2. 创建一个可以从该存储桶读取的从机角色。
    3. 让控制器创建一个将公钥上传到存储桶中。
    4. 由于您不知道控制器是否在从属服务器之前创建,因此您必须让 cloud-init 每隔几分钟设置一个 cron 作业,以从存储桶中下载密钥(如果尚未这样做) .

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      相关资源
      最近更新 更多