Como associo um par de chaves ssh à instância criada por uma pilha no Amazon CloudFormation?

5

Anteriormente, criei uma instância do EC2 com base em uma imagem. Durante o processo de criação, o assistente da Amazon criou um par de chaves e depois me forneceu para que eu pudesse me conectar.

Agora, estou tentando usar o CloudFormation, para que meu novo servidor tenha algum software básico instalado (pilha LAMP). Mas a instância do EC2 que acabei não tem um par de chaves ssh que eu possa encontrar.

Existe uma maneira de associar um par de chaves ao criar uma pilha no CloudFormation?

Eu li que existem maneiras de adicionar a chave ao volume da instância, interrompendo a instância, criando um clone e algumas outras etapas. Mas minhas habilidades administrativas nessa área não são tão strongs, então estou esperando algo que seja (para mim) mais simples.

Espero que isso faça sentido - qualquer ajuda muito apreciada!

    
por Shannon Wagner 24.02.2012 / 22:24

2 respostas

7

Is there a way to associate a key pair while creating a stack on CloudFormation?

Claro, de fato funciona associando um par de chaves existente durante o processo; Os Modelos de amostra do AWS CloudFormation apresentam os respectivos fragmentos, por exemplo, o Exemplo simples de instância do EC2 contém o fragmento que você está procurando:

  "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" }
      }
    }
  },

Este fragmento permite passar o nome do par de chaves desejado como um parâmetro, alternativamente você pode incorporar o nome diretamente ou simplesmente fornecer um nome padrão.

Boa sorte!

    
por 24.02.2012 / 23:42
2

Os parâmetros do AWS CloudFormation também podem fornecer uma lista de todas as chaves disponíveis na sua conta & região. Basta alterar o "Tipo" do parâmetro para o tipo de AWS desejado. Isso será "AWS :: EC2 :: KeyPair :: KeyName" nesse caso.

Com "CloudFormation Parameter Types", o exemplo acima será:

"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" }
    }
  }
},

Espero que isso ajude.

Veja também: link

    
por 21.07.2016 / 13:09