S3 への高性能リバースプロキシ

S3 への高性能リバースプロキシ

S3 バケットとの直接的なやり取りを防止したいと考えています。S3 バケットは適切に設定されていますが、S3 からファイルを提供しつつ、単一の IP へのアクセスをロックダウンする (パフォーマンスの高い) 方法を見つけたいと思っています。

私が思い描いているアーキテクチャは次のようなものです。

user request -> proxy web application -> s3 bucket

ユーザーは S3 の使用にさらされたり、その使用を認識されたりすることはありません。私が回避策を探しているデメリットは、すべてのリクエストの CPU 負荷に対して料金を支払うことになり、そもそも S3 を使用する利点の多くが減ってしまうことです。この目標を達成するには、非常に高速で最小限の Web サービスが必要になると思います。

プロキシの利点を無駄にせずに、S3 をユーザーから隠す方法はありますか?

注意:

S3 が安全に構成されているかどうかは考慮したくありません。私の場合、さらなる安全手順を検討する組織上の理由があります。たとえそれが本当に間違った選択であったとしても、ここでの思考実験は楽しいと思います。

さらに、S3 の代わりにサービスを使用するというオプションはありません。ここでは S3 についてのみ説明します。

答え1

IP へのアクセスをロックしたい場合は、IAM 経由でその権限を設定できます。この方法では、リバース プロキシの無駄な操作を行う必要はありません。

グローバル読み取り S3 ポリシーを作成し、リクエストが特定の IP アドレスから送信される必要があるという条件を設定できます。

条件ステートメントの例は次のとおりです。

"Condition" :  {
       "IpAddress" : {
          "aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]
      }
}

関連情報