強力な画像APIと画像提供インフラストラクチャのためにDjangoとGoogleAppEngineでAmazonEC2を使用するウェブサイトがあります。ユーザーが画像をアップロードすると、ブラウザはBlobstoreアップロードURLをEC2サーバーにAJAXリクエストします。これをDjangoサーバーから取得しているので、ユーザーが認証されているかどうかを確認できます。その後、サーバーはAppEngineサーバーからURLを取得する必要があります。アップロードが完了してAppEngineで処理されたら、アップロード情報をdjangoサーバーに返送して、必要なモデルインスタンスを構築できるようにする必要があります。どうすればこれを達成できますか?urllibを使用することを考えていましたが、これを保護して、URLがサーバーのみにアクセスされ、Webユーザーにはアクセスされないようにするにはどうすればよいですか?多分ある種の秘密鍵?
3 に答える
Https 呼び出し (情報を django に転送するために行う必要があります) とは別に、AES 暗号化を使用できます ( Pycrypto/ 他の lib を使用します)。メッセージを暗号化するには秘密鍵が必要です。
サーバー間通信の場合、従来のセキュリティアドバイスでは、デフォルトのセキュリティに加えて、URLに対してWebサーバーレベルでのある種のIP範囲制限を推奨していました。ただし、クラウドプロバイダーから別のクラウドプロバイダーに電話をかけるため、クライアントとサーバーのいずれかのIPアドレスを永続的に制御する機能が低下する可能性があります。
とはいえ、トランスポートセキュリティには標準のユーザー名/パスワード認証メカニズムとHTTPSを使用することをお勧めします。基本認証のユーザー名/パスワードが私の推奨事項です(https:\\username:password@appengine.com\
)。さらに、特定の時間枠で失敗した特定の回数に基づいて、ロックアウトを強制するようにします。これにより、パスワードをブルートフォース攻撃する試みを思いとどまらせることができます。
App Engineで使用しているWebフレームワークによっては、先ほど説明した内容の一部またはすべてがすでにサポートされている可能性があります。この質問をアーキテクチャの詳細で更新するか、より多くの情報で新しい質問を開くと、より正確な推奨事項が提供される可能性があります。
SDCは、AppEngine から別の場所のプライベート ネットワークへの安全なトンネルを提供します。そこで実行すると、EC2 インスタンスになる可能性があります。