2

目前,我们的AWS基础架构有许多实例附加到我在控制台中创建的安全组。如何使用CloudFormation将安全组添加到现有EC2实例

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

我的问题是:

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

回答

2

你不能。

亚马逊CloudFormation模板可以创建资源,而那些资源可以参考同一模板内的其他资源。例如,您可以创建安全组和实例,并将实例配置为使用安全组。当在模板内进行这样的引用时,可以通过名称引用资源(例如SecurityGroup1,Web Server)。

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

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

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

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

导出到JSON

如果您希望现有的资源导出到一个CloudFormation模板(例如出口电流安集团的定义),你可以使用:

+0

谢谢。所以我想我只是通过cloudformation创建安全组,然后我会去aws控制台手动更改每个实例。在我需要更改安全组中的某些内容后,我将在云构建和更新堆栈中进行编辑。是否有意义? –

+0

是的,根据你的情况,这是正确的路要走。 –

+0

@JohnRotenstein,这似乎是基本要求之一。如果我无法用云信息修改现有资源,那么我可以通过修改现有资源来获得哪些优势。 – PMat

0

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

你可以测试一下:

  • 添加一个安全组,执行变更
  • 该安全组添加到您的实例(在同一模板)和 做出变更再次
YourSecurityGroup: 
    < enter code here > 

YourInstance: 
    Properties: 
    SecurityGroupIds: 
    - !Ref YourSecurityGroup 
相关问题