You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单个CloudFormation脚本创建多台带独立安全组的EC2实例?

使用单个CloudFormation模板创建带专属安全组的多台EC2实例

以下是满足需求的CloudFormation YAML模板,每台EC2实例对应独立的安全组,且安全组开放不同数量的指定端口:

AWSTemplateFormatVersion: '2010-09-09'
Description: 创建3台EC2实例,每台对应专属安全组及自定义端口规则

Parameters:
  InstanceType:
    Type: String
    Default: t2.micro
    Description: EC2实例类型
  LatestAmiId:
    Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
    Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'
    Description: 最新Amazon Linux 2 AMI ID(通过SSM参数自动获取)

Resources:
  # EC2 1 及对应安全组SG1(开放22、80端口)
  EC2SecurityGroup1:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: EC2 Instance 1专属安全组 - 开放22、80端口
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
      Tags:
        - Key: Name
          Value: SG-EC2-Instance-1

  EC2Instance1:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref InstanceType
      ImageId: !Ref LatestAmiId
      SecurityGroups:
        - !Ref EC2SecurityGroup1
      Tags:
        - Key: Name
          Value: EC2-Instance-1

  # EC2 2 及对应安全组SG2(开放8080、3000、5432端口)
  EC2SecurityGroup2:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: EC2 Instance 2专属安全组 - 开放8080、3000、5432端口
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 8080
          ToPort: 8080
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 3000
          ToPort: 3000
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 5432
          ToPort: 5432
          CidrIp: 0.0.0.0/0
      Tags:
        - Key: Name
          Value: SG-EC2-Instance-2

  EC2Instance2:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref InstanceType
      ImageId: !Ref LatestAmiId
      SecurityGroups:
        - !Ref EC2SecurityGroup2
      Tags:
        - Key: Name
          Value: EC2-Instance-2

  # EC2 3 及对应安全组SG3(开放9000、27017、443、8443端口)
  EC2SecurityGroup3:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: EC2 Instance 3专属安全组 - 开放9000、27017、443、8443端口
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 9000
          ToPort: 9000
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 27017
          ToPort: 27017
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 443
          ToPort: 443
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 8443
          ToPort: 8443
          CidrIp: 0.0.0.0/0
      Tags:
        - Key: Name
          Value: SG-EC2-Instance-3

  EC2Instance3:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref InstanceType
      ImageId: !Ref LatestAmiId
      SecurityGroups:
        - !Ref EC2SecurityGroup3
      Tags:
        - Key: Name
          Value: EC2-Instance-3

关键说明:

  • 专属安全组:每台EC2实例对应独立的AWS::EC2::SecurityGroup资源,确保安全组规则完全隔离
  • 端口规则:根据需求为每个安全组配置不同数量的Ingress规则,示例中SG1开放2个端口、SG2开放3个、SG3开放4个,端口可根据实际需求修改
  • 灵活配置:通过Parameters定义实例类型和AMI ID,使用SSM参数获取最新Amazon Linux 2 AMI,避免硬编码过时的AMI ID
  • 标签管理:为安全组和EC2实例添加名称标签,便于在AWS控制台识别和管理

内容的提问来源于stack exchange,提问作者Pravin RC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:55:29