使用云形成创建安全组时出现“ Property IpProtocol不能为空”错误

时间:2019-04-11 18:31:02

标签: amazon-web-services amazon-cloudformation aws-security-group

我正在使用AWS上的云形成来创建一个基本的安全组,但是却收到 Property IpProtocol不能为空。错误。以下是我正在运行的yml代码:

Resources:
    testsecuritygroup:
    Type: AWS::EC2::SecurityGroup
    Properties: 
      GroupName: test-group
      GroupDescription: test security group
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
        - SourceSecurityGroupId: sg-xxxxxxxxxx
      SecurityGroupEgress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0
      Tags:
        - Key: group
          Value: test
      VpcId: !ImportValue VPC

当我运行create-stack命令时,它已成功运行,但是堆栈回滚并显示 CREATE_FAILED 状态,并且 Property IpProtocol不能为空错误。我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

您的cidr无效。应该是0.0.0.0/0

答案 1 :(得分:1)

我解决了这个问题。要添加安全组,我们必须创建一个Ingress规则并将其附加到安全组,而不是在安全组中进行定义。

Resources:
    test:
    Type: AWS::EC2::SecurityGroup
    Properties: 
      VpcId: !ImportValue VPC
      GroupName: test-group
      GroupDescription: test security group
      SecurityGroupEgress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
      Tags:
        - Key: group
          Value: test
  TestInboundRule:
    Type: AWS::EC2::SecurityGroupIngress
    Properties: 
      GroupId: !GetAtt test.GroupId
      IpProtocol: tcp
      FromPort: 80
      ToPort: 80
      SourceSecurityGroupId: sg-xxxxxxxxx