У меня есть стек 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
, ссылаясь на свою синтетическую группу безопасности по умолчанию, вы сможете получить необходимую ссылку на себя в рамках развертывания в один стек