У меня есть стек cfn, который (помимо прочего) создает VPC, несколько групп безопасности и несколько экземпляров EC2. Тривиально назначить группы безопасности, созданные в стеке, экземплярам, которые также создаются в стеке. Однако меня интересует стандартный VPC SG.
Когда создается VPC (вручную, через графический интерфейс пользователя, с помощью облачной информации или любым другим способом), 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"} ]
}
}
В приведенном выше фрагменте я создаю группу безопасности «allow ssh» и назначаю ее экземпляру. Как уже упоминалось, мой стек также создает VPC (в котором запускается этот экземпляр), который, в свою очередь, создает группу безопасности по умолчанию. К сожалению, поскольку эта группа создается AWS автоматически, ее идентификатор группы недоступен для стека, что делает невозможным обращение по идентификатору. Сначала я подумал, что это SecurityGroupsбудет опция, так как это позволит мне ссылаться на SG по умолчанию по его имени default. Однако это не работает, поскольку это SecurityGroupsсвойство предназначено только для групп безопасности EC2, но не для групп безопасности VPC.
Так что я застрял. Я уже открыл дело с поддержкой AWS на этом, но до сих пор они не были полезны. Любые идеи о том, как я могу сделать это?
SecurityGroupIngress, ссылаясь на свою синтетическую группу безопасности по умолчанию, вы сможете получить необходимую ссылку на себя в рамках развертывания в один стек