如何从AWS云形成模板中的其他VPC在SecurityGroupIngress中添加安全组?

时间:2019-10-18 10:36:23

标签: amazon-cloudformation aws-security-group

我们有多个AWS账户。在创建用于安全组创建的CFTemplate时,我应从其他VPC添加SG作为入站规则。当我使用“ CidrIp”尝试相同的代码时,创建的堆栈没有错误,但是当我给出SourceSecurityGroupId和SourceSecurityGroupOwnerId时,由于给定的VPC不存在,我遇到了错误。这是我使用的代码。

"Resources" : {
    "PrivateWindowsSg" : {
      "Type" : "AWS::EC2::SecurityGroup",
      "Properties" : {
         "GroupDescription" : "Ingress from AD & DC in CS",
         "VpcId" : {
           "Ref" : "VPCID"
         }
      }
    },
    "PrivateWindowsSgIngress" : {
      "Type" : "AWS::EC2::SecurityGroupIngress",
      "Properties" :{
          "Description" : "Ingress from AD & DC in CS",
          "GroupId" : {
            "Ref" : "PrivateWindowsSg"
          },
          "IpProtocol" : "UDP",
          "FromPort" : "49152",
          "ToPort" : "65535",
          "SourceSecurityGroupId" : "SG from Other VPC",
          "SourceSecurityGroupOwnerId" :"AWSAccountID"
          }
        }
      }

我每次遇到的错误是“默认VPC'none'中不存在安全组'sg-055f0xxxx'(Service:AmazonEC2; Status Code:400; Error Code:InvalidGroup.NotFound; Request ID:056cc269 -421d-4985-a15a-b672f20041c8)”。

有没有人帮助解决这个问题?

2 个答案:

答案 0 :(得分:0)

您要添加的源安全组是否符合以下条件:

  

另一个安全组。这允许与指定安全组关联的实例访问与此安全组关联的实例。这不会将规则从源安全组添加到此安全组。您可以指定以下安全组之一:

     
      
  • 当前的安全组
  •   
  • 同一VPC的不同安全组
  •   
  • VPC对等连接中对等VPC的不同安全组
  •   

如果没有,您将无法添加它。有关更多信息,请参见here。您也可以尝试通过管理控制台手动进行测试。如果它在那里工作,那么您应该可以使用CloudFormation进行操作,否则,您应该知道问题出在哪里。

答案 1 :(得分:-1)

我发现我的代码可以正常工作。问题不是来自代码,而是来自错误的VPC的测试模板,该VPC没有与目标VPC的对等连接。