Usando o grupo de segurança provisionado Cloud Formation com sub-rede específica

2

Resumo

Estou tentando criar um modelo do AWS CloudFormation que contenha uma instância para a qual desejo selecionar uma sub-rede específica. Se eu especificar o ID da sub-rede, obtenho o seguinte erro The parameter groupName cannot be used with the parameter subnet . Ao ler este tópico , é necessário fornecer IDs do grupo de segurança - não nomes. Como posso criar um grupo de segurança no CloudFormation e depois obter seu ID após o fato?

Detalhes

A parte relevante da configuração da instância é a seguinte

"WebServerHost": {
  "Type" : "AWS::EC2::Instance",
 <..skipping metadata...>
 "Properties": {
    "ImageId" : { "ami-1234" },
    "InstanceType" : { "Ref" : "WebServerInstanceType" },
    "SecurityGroups" : [ {"Ref" : "WebServerSecurityGroup"} ],
    "SubnetId"       : "subnet-abcdef123",

e o grupo de segurança tem a seguinte aparência

"WebServerSecurityGroup" : {
  "Type" : "AWS::EC2::SecurityGroup",
  "Properties" : {
    "GroupDescription" : "Enable HTTP and SSH",
    "SecurityGroupIngress" : [
      {"IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "CidrIp" : "0.0.0.0/0"},
      {"IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "0.0.0.0/0"}
    ]
  }
},

Como posso criar e obter o ID desse grupo de segurança?

    
por Fred Clausen 19.08.2014 / 04:12

1 resposta

5

Você só precisa alterar esta linha:

"SecurityGroups" : [ {"Ref" : "WebServerSecurityGroup"} ],

para isso:

"SecurityGroupIds" : [ {"Ref" : "WebServerSecurityGroup"} ],

De acordo com a documentação do Cloudformation no tópico, o atributo SecurityGroups é válido apenas para grupos de segurança do EC2. Você está usando o VPC, então você precisa usar SecurityGroupIds .

    
por 19.08.2014 / 04:45