Назад | Перейти на главную страницу

Как связать пару ключей ssh ​​с экземпляром, созданным стеком в Amazon CloudFormation?

Раньше я создавал экземпляр 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