Tengo una pila de cfn que (entre otras cosas) crea una VPC, varios grupos de seguridad y un puñado de instancias de EC2. Es trivial asignar grupos de seguridad que se crean dentro de la pila a instancias que también son creadas por la pila. Sin embargo, estoy interesado en el VPC SG predeterminado.
Cuando se crea una VPC (ya sea manualmente a través de la GUI, por formación en la nube o por cualquier otro medio), AWS crea un grupo de seguridad predeterminado con una regla de "permitir todo" para cualquier instancia en ese grupo.
Lo que intento hacer es asignar este grupo de seguridad predeterminado junto con varias otras SG a instancias creadas por la pila. Esto está demostrando ser mucho más difícil de lo que esperaba. Aquí hay algunos fragmentos que muestran lo que estoy pasando:
"AllowSSHSecGroup":{
"Type":"AWS::EC2::SecurityGroup",
"Properties":{
"GroupDescription":"Allow SSH from anywhere",
"VpcId":{
"Ref":"DevVPC"
},
"SecurityGroupIngress":[
{
"IpProtocol":"tcp",
"FromPort":"22",
"ToPort":"22",
"CidrIp":"0.0.0.0/0"
}
]
}
},
"Instance001" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"ImageId" : "ami-7eab224e",
"InstanceType" : "m1.large",
"AvailabilityZone" : "us-west-2a",
"PrivateIpAddress" : "10.22.0.110",
"SecurityGroupIds" : [ {"Ref" : "AllowSSHSecGroup"} ],
"SubnetId" : { "Ref" : "PublicSubnet" },
"KeyName" : "erik-key",
"DisableApiTermination" : "false",
"Tags" : [ { "Key": "Name", "Value": "Instance001"} ]
}
}
En el fragmento anterior, estoy creando un grupo de seguridad "permitir ssh" y lo asigno a una instancia. Como se mencionó, mi pila también crea una VPC (en la que se inicia esta instancia), que a su vez crea un grupo de seguridad predeterminado. Desafortunadamente, dado que AWS crea este grupo automáticamente, su ID de grupo no está disponible para la pila, por lo que es imposible hacer referencia por ID. Al principio pensé que elSecurityGroups
propiedad sería una opción, ya que eso me permitiría hacer referencia a la SG predeterminada por su nombre default
,. Sin embargo, eso no funciona, ya que la SecurityGroups
propiedad es solo para Grupos de seguridad EC2, no para Grupos de seguridad VPC.
Entonces estoy atascado. Yo he abierto un caso con el apoyo de AWS en esto, pero hasta ahora, no he sido de ayuda. ¿Alguna idea sobre cómo puedo lograr esto?
SecurityGroupIngress
, refiriéndose a su grupo de seguridad predeterminado sintético, puede obtener la autorreferencia que desea, dentro de una implementación de una sola pilaGroupId
y seSourceSecurityGroupId
configurará en{ "Ref": "<SecurityGroupResource>" }