S3 を理解しようとしている...S3 にアップロードするファイルへのアクセスをどのように制限しますか? たとえば、Web アプリケーションから、各ユーザーはアップロードできるファイルを持っていますが、そのユーザーだけがそのファイルにアクセスできるようにアクセスを制限するにはどうすればよいでしょうか? クエリ文字列認証には有効期限が必要なようですが、それはうまくいきません。これを行う別の方法はありますか?
4 に答える
S3 オブジェクトへのアクセスを制御するには、さまざまな方法があります。
クエリ文字列認証を使用しますが、ご指摘のとおり、これには有効期限が必要です。あなたはそれをはるか先の未来に成し遂げることができるでしょう。
S3 ACLS を使用しますが、これには、ユーザーが AWS アカウントを持ち、AWS で認証して S3 オブジェクトにアクセスする必要があります。これはおそらくあなたが探しているものではありません。
アクセス制御ロジックを実装するアプリケーションを介して、S3 オブジェクトへのアクセスをプロキシします。これにより、ボックスを介してすべての帯域幅がもたらされます。
プロキシ ロジックを使用して EC2 インスタンスをセットアップできます。これにより、帯域幅が S3 に近づき、特定の状況でのレイテンシを削減できます。これと #3 の違いは最小限になる可能性がありますが、特定の状況によって異なります。
- ユーザーにサーバーにアクセスしてもらいます
- サーバーに短い有効期限 (分、時間?) のクエリ文字列認証を設定してもらいます。
- サーバーを #2 にリダイレクトさせる
アプリケーションでS3へのアクセスロジック全体を構築する必要があります
私もこれに対処してきました。私が使用しているS3 PHPクラスを作成した Don は、バケット内でディレクトリを使用できることを指摘しました。したがって、ランダムな文字列を含むディレクトリにファイルを配置して、そこにリダイレクトできます。mybucket.amazon.net/wef49kfe4j409jf4f4f9jdfd/myfile.zip まったく安全ではありませんが、必要に応じてアクセス許可を変更したり、作成および削除したり (元のファイルを別のバケットに安全に保管) することで、ファイルへのアクセスを制御できます。