2

そのため、私はいくつかのEC2インスタンスにアクセスでき、そのうちのいくつかは何年も実行されています。これらすべての秘密鍵の特別なリポジトリがあります。したがって、ほとんどの場合、root(または場合によっては「ubuntu」ユーザー)としてインスタンスにアクセスして管理できます。

botoで遊んでいるときに、EC2 .get_keypair()メソッドとget_all_keypairsメソッドに気づき、これを使用して、プロシージャの隙間をすり抜けて失われたSSHキーを回復できるかどうか疑問に思いました。

ただし、結果のboto.ec2.keypair.KeyPairオブジェクトを調べると、.material属性が空のように見え、keypairの.save()メソッドを使用しようとすると、マテリアルがないことを示す例外が発生します。 tがフェッチされました。

(.get_all_instances()や.run_instances()などの他の操作は、そのセッション中に機能します)。

だから、私は何が欠けていますか?X.509証明書を提供しなければならない他の操作はありますか。通常のAWSキー/シークレットペアに加えて?

(注:実際にはまだ必要ありません。APIに精通しており、そのような事態に備えています)。

4

1 に答える 1

4

このように SSH キーを回復することはできません。get_all_key_pairs()メソッド名は、この点に関して少し誤解を招きますが、少なくともクラスboto.ec2.keypair.KeyPairの戻りオブジェクトによって適切に文書化されています。たとえば、 saveを参照してください。 ()メソッド:

新しく作成された KeyPairの素材 (暗号化されていない PEM でエンコードされた RSA 秘密鍵) を ローカル ファイルに保存します。[鉱山を強調]

これはbotoの制限ではなく、Amazon EC2のセキュリティ アーキテクチャの結果です。キー ペアの最初の作成時に、完全なキー ペア (つまり、秘密キーを含む) のみを取得できます。秘密キーは決して保存されません。 EC2 を紛失した場合は復元できません (ただし、回避策については以下を参照してください)。

関連する質問に対する Eric Hammond の最近の回答は、ec2 インスタンスで削除されたキー ペアの影響に関するもので、このトピックに対する別の角度からの回答を提供しています。これには、彼の記事Fixing Files on the Root EBS Volume of an EC2 Instanceへのポインターが含まれており、インスタンスに関係なくアクセスする方法が説明されています。最終的。

インスタンスのいくつかが何年も実行されていることを考えると、これはうまくいかないかもしれませ .今日、Amazon EC2 で EBS ブート インスタンスを使用する必要がある多くの理由。

于 2012-05-13T09:50:14.307 に答える