Раньше я создавал экземпляр EC2 на основе изображения. В процессе создания мастер Amazon создал пару ключей, а затем предоставил ее мне, чтобы я мог подключиться.
Теперь я пытаюсь использовать вместо этого CloudFormation, чтобы на моем новом сервере было установлено базовое программное обеспечение (стек LAMP). Но у экземпляра EC2, с которым я оказался, нет пары ключей ssh, которую я могу найти.
Есть ли способ связать пару ключей при создании стека в CloudFormation?
Я читал, что есть способы добавить ключ к тому экземпляра, остановив экземпляр, создав клон, а также некоторые другие шаги. Но мои административные навыки в этой области не так сильны, поэтому я надеюсь на что-то (для меня) более простое.
Надеюсь, это имеет смысл - любая помощь очень ценится!
Есть ли способ связать пару ключей при создании стека в CloudFormation?
Конечно, это действительно работает, связывая существующую вашу пару ключей в процессе; в Примеры шаблонов AWS CloudFormation включать соответствующие фрагменты, например в Пример простого экземпляра EC2 содержит фрагмент, который вы ищете:
"Parameters" : {
"KeyName" : {
"Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance",
"Type" : "String"
}
},
[...]
"Resources" : {
"Ec2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"KeyName" : { "Ref" : "KeyName" },
"ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]},
"UserData" : { "Fn::Base64" : "80" }
}
}
},
Этот фрагмент позволяет передать желаемое имя пары ключей в качестве параметра, в качестве альтернативы вы можете встроить имя напрямую или просто указать имя по умолчанию.
Удачи!
Параметры AWS CloudFormation также могут предоставить вам список всех ключей, доступных в вашей учетной записи и в вашем регионе. Просто измените «Тип» параметра на желаемый тип AWS. В данном случае это будет «AWS :: EC2 :: KeyPair :: KeyName».
С «Типами параметров CloudFormation» приведенный выше пример будет:
"Parameters" : {
"KeyName" : {
"Description" : "EC2 KeyPair to enable SSH access to the instance",
"Type" : "AWS::EC2::KeyPair::KeyName"
},
},
[...]
"Resources" : {
"Ec2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"KeyName" : { "Ref" : "KeyName" },
"ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]},
"UserData" : { "Fn::Base64" : "80" }
}
}
},
Надеюсь, это поможет.
Смотрите также: https://blogs.aws.amazon.com/application-management/post/Tx3DV2UYG9SC38G/Using-the-New-CloudFormation-Parameter-Types