boto метод .get_all_keypairs() и .save() его результатов

Так что у меня есть доступ к нескольким инстансам EC2, некоторые из которых работают годами. У нас есть специальный репозиторий закрытых ключей ко всем этим; таким образом, для большинства наших экземпляров я могу войти в них как root (или в некоторых случаях как пользователь «ubuntu») для их администрирования.

Играя с boto, я заметил методы EC2 .get_keypair() и get_all_keypairs и задался вопросом, можно ли их использовать для восстановления любых ключей SSH, которые ускользнули из-под наших процедур и были потеряны.

Однако, когда я проверяю полученные объекты boto.ec2.keypair.KeyPair, я вижу, что атрибут .material кажется пустым, и когда я пытаюсь использовать метод keypair .save(), я получаю исключение, жалующееся на то, что материалы не т было получено.

(Другие операции, такие как .get_all_instances() и .run_instances(), работают во время этого сеанса).

Итак, что мне не хватает? Существуют ли какие-либо другие операции, для которых я должен предоставить сертификат X.509. в дополнение к моей обычной паре ключ/секрет AWS?

(Примечание: на самом деле мне это пока не нужно. Я просто знакомлюсь с API и готовлюсь к таким возможностям).


person Jim Dennis    schedule 13.05.2012    source источник


Ответы (1)


Невозможно восстановить ключи SSH таким образом, get_all_key_pairs() имя метода немного вводит в заблуждение в этом отношении, хотя должным образом задокументировано с помощью возвращаемого объекта класса boto.ec2.keypair.KeyPair как минимум, см., например, save() метод:

Сохраните материал (незашифрованный закрытый ключ RSA с кодировкой PEM) только что созданной пары ключей в локальный файл. [выделено мной]

Это не ограничение boto, а результат архитектуры безопасности Amazon EC2: вы можете получить только полную пару ключей (т. е. включая закрытый ключ) во время первоначального создания пары ключей, закрытый ключ никогда не хранится в EC2 и не может быть восстановлен, если вы его потеряете (но обходной путь см. ниже).

Недавний ответ Эрика Хаммонда на связанный с этим вопрос последствия удаленной пары ключей в экземпляре ec2 дает другой взгляд на эту тему, включая указатель к его статье Исправление файлов на корневом томе EBS инстанса EC2 , объясняя, как получить доступ к экземпляру независимо от того, в конечном итоге.

Учитывая, что некоторые из ваших инстансов работали годами, это может не сработать, поскольку этот процесс доступен только с загрузочным инстансом EBS (который раньше был недоступен). затем), и, как подчеркивает Эрик, это одна из многих причин, почему В настоящее время вам следует использовать загрузочные инстансы EBS на Amazon EC2.

person Steffen Opel    schedule 13.05.2012