У мене є стек cfn, який (серед іншого) створює VPC, кілька груп безпеки та кілька примірників EC2. Тривіально призначати групи безпеки, створені в стеку, екземплярам, які також створюються стеком. Однак мене цікавить VPC SG за замовчуванням.
Коли VPC створюється (вручну, незважаючи на GUI, за допомогою хмарної інформації або будь-яким іншим способом), AWS створює групу безпеки за замовчуванням з правилом "дозволити всім" для будь-якого екземпляра цієї групи.
Що я намагаюся зробити - це призначити цю групу безпеки за замовчуванням разом з декількома іншими SG-повідомленнями екземплярам, створеним стеком. Це виявляється набагато складніше, ніж я передбачав. Ось кілька фрагментів, які показують, що я відбуваю:
"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"} ]
}
}
У наведеному вище фрагменті я створюю групу безпеки "дозволити ssh" і призначаю її до примірника. Як уже згадувалося, мій стек також створює VPC (який запускається цей екземпляр), що, в свою чергу, створює групу безпеки за замовчуванням. На жаль, оскільки ця група створена автоматично AWS, її ідентифікатор групи недоступний для стека, що робить неможливим посилання на ідентифікатор. Спочатку я думав , що SecurityGroups
власність буде варіант, так як це дозволило б мені посилатися на SG за замовчуванням його ім'ям, default
. Це не працює, оскільки SecurityGroups
властивість призначена лише для груп безпеки EC2, а не для груп безпеки VPC.
Так я застряг. Я вже відкрив справу з підтримкою AWS на цьому, але до цих пір вони не були корисні. Будь-які ідеї, як я можу це досягти?
SecurityGroupIngress
, посилаючись на вашу синтетичну групу безпеки за замовчуванням, ви зможете отримати самовідвід, який ви хочете, протягом одного розгортання стека