【问题标题】:In a CloudFormation template, how can I use the output of a command of a deployed EC2 instance as a stack output?在 CloudFormation 模板中,如何将已部署 EC2 实例的命令输出用作堆栈输出?
【发布时间】:2018-01-13 07:47:59
【问题描述】:

在 CloudFormation 模板中,我创建了一个 EC2 实例,我想从实例本身安全地获取一些数据并将其用于堆栈输出变量。我该怎么做?

特别是,我想将部署时自动生成的 SSH 主机密钥保存为堆栈输出变量,以便在故障排除期间需要通过 SSH 连接时轻松验证它们。

感谢您的帮助

【问题讨论】:

  • 我不确定这是否可行,但另一种解决方案是使用已知的主机密钥。 alestic.com/2012/04/ec2-ssh-host-key 稍微谈到了这个问题。他们的解决方案比盲目信任要好得多,但仍然不是很完美......
  • 写下您当前的尝试/模板,如果可能我们会帮助您。
  • 嗯,上传 SSH 主机密钥是一个有趣的想法。如果必须,我可能会尝试这样做,但我更愿意在 EC2 实例本身上安全地生成它。

标签: amazon-web-services amazon-ec2 amazon-cloudformation


【解决方案1】:

了解您打算如何处理堆栈导出会很有用,但是您有几个选择。 Matt 在您的问题的 cmets 中提到了一个非常好的问题(它应该作为答案发布)。这将允许您将密钥作为参数传递给堆栈,然后直接导出。

根据您的使用案例,另一种选择是让您的实例在处理其用户数据期间将其主机密钥保存到安全存储桶中的 S3。从那里您可以稍后检索它。这种方法带有一个风险因素,您可能会通过更改存储桶的安全性而无意中将您的密钥提供给其他人。要解决此问题,您可以先使用 AWS CLI 使用 KMS 加密您的密钥,然后在您去其他地方使用它时解密它。

这两个选项都让人感觉不舒服,但也许如果你解释你的用例,可能会有另一种方法来实现你想要的。

【讨论】:

  • 嗯,在实例上生成它然后让实例将它保存到 S3 是一个有趣的想法。我只需要保存公钥,这不会造成安全风险。一个有趣的想法。关于我的用例,您需要我提供什么样的信息?一般来说,我希望能够部署 EC2 实例并立即安全地连接到它,而不会冒 MITM 风险或泄露 SSH 主机密钥。这是您需要的信息,还是需要更多细节?
猜你喜欢
  • 2014-12-29
  • 2020-07-26
  • 2013-02-22
  • 2020-10-31
  • 2017-05-16
  • 2017-05-13
  • 2022-08-17
  • 2020-09-17
  • 2018-10-01
相关资源
最近更新 更多