J'ai une pile cfn qui (entre autres), crée un VPC, plusieurs groupes de sécurité et une poignée d'instances EC2. Il est trivial d'affecter des groupes de sécurité créés dans la pile à des instances qui sont également créées par la pile. Cependant, je suis intéressé par le VPC SG par défaut.
Lorsqu'un VPC est créé (que ce soit manuellement via l'interface graphique, par cloudformation ou par tout autre moyen), AWS crée un groupe de sécurité par défaut avec une règle «autoriser tout» pour toute instance de ce groupe.
Ce que j'essaie de faire est d'assigner ce groupe de sécurité par défaut avec plusieurs autres SG aux instances créées par la pile. Cela s'avère beaucoup plus difficile que je ne l'avais prévu. Voici quelques extraits montrant ce que je fais:
"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"} ]
}
}
Dans l'extrait ci-dessus, je crée un groupe de sécurité "allow ssh" et l'assigne à une instance. Comme mentionné, ma pile crée également un VPC (dans lequel cette instance est lancée), qui à son tour crée un groupe de sécurité par défaut. Malheureusement, puisque ce groupe est créé automatiquement par AWS, son ID de groupe n'est pas disponible pour la pile, ce qui rend impossible la référence par ID. J'ai d'abord pensé que la SecurityGroups
propriété serait une option, car cela me permettrait de référencer le SG par défaut par son nom default
,. Cela ne fonctionne pas, cependant, car la SecurityGroups
propriété est uniquement pour les groupes de sécurité EC2, pas les groupes de sécurité VPC.
Je suis donc coincé. Je l' ai ouvert une affaire avec le soutien AWS à ce sujet , mais jusqu'à présent, ils ont pas été utiles. Des idées sur la façon dont je peux y arriver?
SecurityGroupIngress
, en vous référant à votre groupe de sécurité par défaut synthétique, vous pouvez obtenir l'auto-référence que vous souhaitez, au sein d'un déploiement de pile uniqueGroupId
etSourceSecurityGroupId
défini sur{ "Ref": "<SecurityGroupResource>" }