如何使用CloudFormation将安全组添加到现有EC2实例

Tie*_*ran 5 amazon-web-services aws-cloudformation aws-security-group

目前,我们的AWS基础架构有许多实例附加到我在控制台中创建的安全组.

我们正在使用CloudFormation重新构建我们的安全组,因此我们可以在每个规则中添加注释和描述.

我的问题是:

  • 当我使用CloudFormation创建新的安全组时,如何在不删除实例的情况下将其添加到现有EC2实例
  • 我在AWS中看到了一些堆栈模板,但是它们只有一个模板来创建一个带有安全组的新实例,因此我不知道如何仅为安全组创建堆栈.如果我更新堆栈,它是否立即适用于所有实例?
  • 如何将当前安全组导出为JSON,因此我不必在CloudFormation中重新创建所有安全组?

Joh*_*ein 5

你不能.

Amazon CloudFormation模板可以创建资源,这些资源可以引用同一模板中的其他资源.例如,您可以创建安全组和实例,并将实例配置为使用安全组.在模板中进行此类引用时,可以通过名称引用资源(例如SecurityGroup1,Web Server).

如果您希望CloudFormation中的资源与已存在的资源相关联,则需要通过其唯一ID引用外部资源.

例如,可以在CloudFormation模板中创建Amazon EC2实例,并引用现有安全组.

但是,你的需求恰恰相反!您希望修改现有资源以指向新资源.例如,修改现有实例以指向新的安全组.这在CloudFormation模板中是不可能的,因为它只能创建资源并配置这些资源 - 它无法修改模板外部的资源.

从逻辑上讲,在创建Amazon EC2实例之前,安全组需要存在,因为实例链接到安全组.

导出为JSON

如果您希望将现有资源导出到CloudFormation模板(例如,导出当前安全组定义),您可以使用: