2012-05-13 2 views
2

그래서 여러 해 동안 실행 된 EC2 인스턴스에 액세스 할 수 있습니다. 우리는 이들 모두에 대한 개인 키의 특별한 저장소를 가지고 있습니다; 따라서 나는 우리 인스턴스의 대부분을 루트 (또는 어떤 경우에는 '우분투'사용자)로서 관리 할 수 ​​있습니다.boto .get_all_keypairs() 메소드와 그 결과의 .save()

boto와 함께 놀면서 나는 EC2 .get_keypair() 및 get_all_keypairs 메서드를 발견했으며이 메서드를 사용하여 우리 절차의 균열을 뛰어 넘었고 잃어버린 SSH 키를 복구 할 수 있는지 궁금해하고있었습니다.

그러나 결과 boto.ec2.keypair.KeyPair 객체를 검사하면 .material 속성이 비어있는 것 같아요. 키 쌍의 .save() 메서드를 사용하려고하면 예외가 발생합니다. 자료는 가져 오지 않았습니다.

(해당 세션 동안 .get_all_instances() 및 .run_instances() 같은 다른 작업이 작동 함).

그래서 나는 무엇을 놓치고 있습니까? X.509 인증서를 제공해야하는 다른 작업이 있습니까? 내 일반적인 AWS 키/비밀 쌍에 추가로?

(참고 : 아직 실제로 필요하지 않습니다. API에 익숙해지고 그러한 결과를 준비하는 중입니다.)

답변

4

SSH 키를 복구 할 수 없으므로 get_all_key_pairs() 메서드 이름은이 점에서 다소 오도 된 것입니다. 적어도 boto.ec2.keypair.KeyPair 클래스의 반환 개체를 통해 올바르게 문서화되었지만. save() 방법

저장 물질은 새로 로컬 파일에 생성 된 KeyPair 의 (암호화되지 않은 PEM은 RSA 개인 키를 암호화). [강조 광산]

boto의 제한하지만, Amazon EC2의 보안 아키텍처의 결과되지 않습니다 : 당신은 단지의 초기 작성 중 (즉, 개인 키 포함) 완전한 키 쌍을 검색 할 수 있습니다 키 쌍인 개인 키는 절대로 EC2에 저장되지 않으므로 복구 할 수 없습니다 (해결 방법은 아래 참조).

관련 질문에 대한 최근 답변 consequences of deleted key pair on ec2 instance은 그의 기사 Fixing Files on the Root EBS Volume of an EC2 Instance에 대한 포인터를 포함하여이 주제와는 다른 각도를 제공하며 궁극적으로 인스턴스에 관계없이 인스턴스에 액세스하는 방법을 설명합니다.

년 동안 실행 된 인스턴스 중 일부는이 같은,이 프로세스는 (다시 사용할 수 없었다)는 EBS 부팅 인스턴스에서만 사용할 수 있습니다 하는 한,하지만 작동, 그리고하지 않을 수 있습니다 감안할 때 에릭도 스트레스가 많은 이유 중 하나입니다 요즘 You Should Use EBS Boot Instances on Amazon EC2.