Ich habe einen CFN-Stack, der (unter anderem) eine VPC, mehrere Sicherheitsgruppen und eine Handvoll EC2-Instanzen erstellt. Es ist einfach, Sicherheitsgruppen, die im Stapel erstellt werden, Instanzen zuzuweisen, die auch vom Stapel erstellt werden. Ich bin jedoch an der Standard-VPC-SG interessiert.
Wenn eine VPC erstellt wird (ob manuell über die GUI, durch Cloudformation oder auf andere Weise), erstellt AWS eine Standardsicherheitsgruppe mit einer "Alle zulassen" -Regel für eine Instanz in dieser Gruppe.
Ich versuche, diese Standardsicherheitsgruppe zusammen mit mehreren anderen SGs Instanzen zuzuweisen, die vom Stapel erstellt wurden. Dies erweist sich als weitaus schwieriger als ich erwartet hatte. Hier sind einige Ausschnitte, die zeigen, was ich vorhabe:
"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"} ]
}
}
Im obigen Snippet erstelle ich eine Sicherheitsgruppe "allow ssh" und weise diese einer Instanz zu. Wie bereits erwähnt, erstellt mein Stack auch eine VPC (in der diese Instanz gestartet wird), die wiederum eine Standardsicherheitsgruppe erstellt. Da diese Gruppe von AWS automatisch erstellt wird, ist ihre Gruppen-ID für den Stapel leider nicht verfügbar, sodass es nicht möglich ist, anhand der ID auf sie zu verweisen. Ich dachte anfangs, dass die SecurityGroups
Eigenschaft eine Option sein würde, da dies mir erlauben würde, die Standard - SG anhand ihres Namens zu referenzieren default
. Dies funktioniert jedoch nicht, da die SecurityGroups
Eigenschaft nur für EC2-Sicherheitsgruppen und nicht für VPC-Sicherheitsgruppen gilt.
Also stecke ich fest. Ich habe einen Fall mit AWS-Support zu diesem Thema eröffnet, aber bisher waren sie nicht hilfreich. Irgendwelche Ideen, wie ich das erreichen kann?
SecurityGroupIngress
, die sich auf Ihre synthetischen Standardsicherheitsgruppe, können Sie die Selbstreferenz, die Sie wollen, in einem einzigen Stapel EinsatzGroupId
undSourceSecurityGroupId
auf{ "Ref": "<SecurityGroupResource>" }