繁体   English   中英

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

[英]How to add a security group to an existing EC2 instance with CloudFormation

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

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

我的问题是:

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

你不能。

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

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

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

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

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

导出为JSON

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

添加安全组不会重新创建您的实例只是修改它。

你可以测试一下:

  • 添加安全组,执行更改集
  • 将该安全组添加到您的实例(在同一模板中)并再次进行更改集
 YourSecurityGroup: < enter code here > YourInstance: Properties: SecurityGroupIds: - !Ref YourSecurityGroup 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM