Saya punya cfn stack yang (antara lain), membuat VPC, beberapa grup keamanan, dan beberapa instance EC2. Sangat mudah untuk menetapkan grup keamanan yang dibuat di dalam stack ke instance yang juga dibuat oleh stack. Namun, saya tertarik dengan default VPC SG.
Ketika VPC dibuat (apakah secara manual melalui GUI, oleh cloudformation, atau cara lain), AWS membuat grup keamanan default dengan aturan "izinkan semua" untuk setiap instance dalam grup itu.
Apa yang saya coba lakukan adalah menetapkan grup keamanan default ini bersama dengan beberapa SG lain untuk instance yang dibuat oleh stack. Ini terbukti jauh lebih sulit daripada yang saya perkirakan. Berikut beberapa cuplikan yang menunjukkan apa yang telah saya lakukan:
"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"} ]
}
}
Dalam cuplikan di atas, saya membuat grup keamanan "bolehkan ssh" dan tetapkan itu sebagai contoh. Seperti yang disebutkan, tumpukan saya juga membuat VPC (tempat instance ini diluncurkan), yang pada gilirannya membuat grup keamanan default. Sayangnya, karena grup ini dibuat secara otomatis oleh AWS, ID grupnya tidak tersedia untuk stack, sehingga tidak mungkin untuk referensi dengan ID. Saya awalnya berpikir bahwa SecurityGroups
properti akan menjadi pilihan, karena itu akan memungkinkan saya untuk referensi SG default dengan namanya default
,. Itu tidak berfungsi, karena SecurityGroups
properti ini hanya untuk Grup Keamanan EC2, bukan Grup Keamanan VPC.
Jadi saya mandek. Saya telah membuka kasing dengan dukungan AWS tentang hal ini, tetapi sejauh ini, mereka belum membantu. Ada ide tentang bagaimana saya bisa mencapai ini?
SecurityGroupIngress
, merujuk pada grup keamanan default sintetis Anda, Anda bisa mendapatkan referensi-sendiri yang Anda inginkan, dalam satu penempatan tumpukanGroupId
danSourceSecurityGroupId
disetel ke{ "Ref": "<SecurityGroupResource>" }