2011-10-06 17 views
20

期限切れのs3バケットにpresigned URLを提供したいと思います。 .NET SDKには、きれいにこれらのURLを生成し、それらを見て、私は少し心配になり:Amazon AWSアクセスキーの安全性はどの程度ですか?

https://s3.amazonaws.com/upload_youtipit/myfile?AWSAccessKeyId=**MYACCESSKEY**&Expires=1317924047&response-content-disposition=attachment;filename=feedback.jpg&response-content-type=image/jpeg&Signature=podKJSrNeFel6%2B0aOneb342H5GA%3D 

なぜそれがURLで私の(パブリック)AWSAccessKeyを置く必要があるのでしょうか?これはもう少し秘密にしてはいけませんか?私はその秘密ではないことを知っていますが、私はまだそれを公に公開するのが気になりません。

私の公開鍵を持っている誰かが私の秘密鍵を推測/ブルートフォースする可能性はありますか?

答えて

29

アクセスキーIDは秘密ではなく、保護する必要はありません。

実際には、S3オブジェクトにアクセスするには、無作為な人に期限切れのURLを渡すことができます。彼らはそのURLのアクセスキーを見ることができますが、あなたが許可していないものは何もできません。

参照:http://docs.amazonwebservices.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#AccessKeys

+0

それでも、私はそれを共有する心地よさを感じません。誰かが公共の部分を持っていれば、彼は私的な部分が多くなることを理解することができます。キーで彼は私の完全なaws環境にアクセスすることができます。ちょうど私がいくつかのファイルを共有したいと思ったからです。 – AyKarsi

+3

公開アクセスキーIDは、攻撃者がすでに有効な秘密鍵のリストを持っていないかぎり、秘密アクセス鍵を決定する際に、どのアクセスキーIDを持っているのか不思議です。 –

+2

秘密のアクセスキーを保護するために努力してください。非秘密のアクセスキーIDを隠すだけで、使用できるAWS機能が低下します。 –

2

あなたの秘密鍵は、いくつかの未知のパラメータの一方向の計算であり、公開鍵自体をアルゴリズムの一部として使用しない場合もあります。あなたのAWSAccessKeyIdがあなたの秘密鍵の無理な操作の複雑さに何の影響も与えないことを知っています。

httpsは、(ネットワークトラフィックを盗聴している場合)唯一のことは、あなたのIPとポート443のs3.amazonaws.comのIPの間にあることです。接続していてもアマゾンは知られているIPアドレス範囲から推測する必要があります(これはおそらくよく知られています)

アドレスバーのAWSAccessKeyIdを取得する唯一の方法は、物理的に画面に表示することです。一部のキーロガーまたはトロイの木馬をコンピュータにインストールするか、またはMIM(中堅)のamazonのSSL証明書をインストールします。これは、必要なアップストリームネットワークノードに誰かがアクセスしても非常に困難です。

leon

+0

は、スニッフィング時に表示される完全なURLインクルードパラメータではありませんか?私が盗聴ツールを理解しているFiddlerを使用すると、完全なURLが表示されます。 – AyKarsi

+0

ローカルで説明されているMIMを行うフィッダーのHTTPS解読関数(http://www.fiddler2.com/fiddler/help/httpsdecryption.asp)を使用しているかどうかはわかりません(また、証明書の警告を無視する必要があります) 。これはあなた自身のマシンの外では不可能です。私はちょうどFFでのフィドラーをテストし、https://encrypted.google.comを検索しても、何も出てこない。プロトコルHTTPが使用されているときに表示されます。ありがとう、 – leeoniya

10

私は一種の受け入れ答えに同意する、しかし、あなたが欲しいものを行う簡単な方法があります。

Amazon IAMを使用してファイルを読み取る必要があります(本当に問題はありませんが、少なくとも処理しているバケットにのみ読み込みが必要です)。次に、そのユーザーのAWS IDとシークレットを使用してダウンロードリンクを生成します。

このIAMリーダーのユーザーのAWSIDとその秘密キーを必要とするバケツ全体を見るために、バケット全体を開くことはありません。依然として時間制限されたURLを構築する必要があります。

IAMコンソールを使用して、数分でそのようなユーザーを作成できます。秘密鍵を取得するチャンスは1つだけです(ユーザーを作るとき(または鍵を回転させるとき))。

それはそれを行う必要があります。このAWSIDには何もアクセスできず、リンクされていません。

一般に、Amazonでは、プライマリAWSIDが '何にも使用されない'ことを推奨しています。 IAMで権限を持つユーザーを作成し、それらのコードを使用します。これにより、多くのセキュリティの柔軟性が得られます。 IAMコンソールで簡単な操作で読取り専用ユーザーをオフにすることができます。

関連する問題