2016-10-03 7 views
1

Amazon S3を使用して画像と動画を管理しています。私たちはそれをうまく統合することができ、私たちのウェブサイトでうまく読み込んでいるビデオと画像。Amazon s3はブラウザでメディアURLを開けません

例えばURLを https://s3.ap-south-1.amazonaws.com/prod/image/20160810065109.png https://s3.ap-south-1.amazonaws.com/prod/video/43443.mp4

私たちは、ダウンロードしたり、再生するには、ブラウザで直接上記のリンクを取ってからユーザーを制限したいと思います。私はamazon s3のURLにアクセスするIPをほとんど許さないことを理解しています。我々はandriodアプリを持って、これらのamazon s3のURLを取得します。したがって、IP制限は機能しません。 amazon s3はこの制限と許可のための他の仕組みを提供していますか?アドバイスしてください。実装の例があれば素晴らしいことでしょう。

答えて

3

最も適切な解決策は、Amazon S3 Pre-Signed URLを使用することです。

デフォルトでは、Amazon S3のすべてのオブジェクトはプライベートです。その後、ユーザーがオブジェクトにアクセスできるようにアクセス許可を追加できます。これは、を介して行うことができます。

    個々のオブジェクト
  • Aバケツ政策に関する
  • アクセス制御リストのアクセス権(そのパス、IPアドレス、リファラーなどに基づいてアクセスを幅広く助成金)
  • IAMユーザーとグループ
  • プレ署名付きのURL

(AWS資格を持つユーザへの許可アクセス許可)Pre-Signed URLは、S3のオブジェへのアクセスを許可するために使用することができますctsをアクセスコントロールの「オーバーライド」方法として使用します。通常のプライベートオブジェクトは、有効期限の時間と署名を付加することによってURLを介してアクセスできます。これは、Webサーバーを必要とせずに非公開のコンテンツを提供する素晴らしい方法です。

あなたの目標は、事前署名付きURLが使用されている場合にのみ、その後、コンテンツを提供する場合:

  • は、上記の通常の方法を経由してすべての権限を割り当てないでください(これはデフォルトでそれらをプライベートに保つ)
  • 使用するオブジェクト

このようにアクセスするためにURLを事前に署名、オブジェクトにアクセスする唯一の方法は、(署名を有する)前の符号付きURLを使用するであろう。バケツポリシーは必要ありません。

それは適切彼らはS3にオブジェクトへのアクセスを許可するかどうかを判断するためにユーザーを認証するためにアプリケーションの責任となります。アクセスが許可されている場合は、は、事前に署名されたURLをオブジェクトへの認証済みリンクとして生成する必要があります。これらのURLは、の期間限定のの場合にのみ有効です。

これは、バックエンドアプリケーション(おそらくAmazon EC2またはAWS Lambdaで動作している)が認証を実行してURLを生成することによって最も効果的です。 AndroidアプリはURLを使用してS3のコンテンツにアクセスできます。

+0

こんにちはJohnさん、詳細な返信をありがとうございます。私は見てみましょう。 – Abhilash

+1

Phpを使用して事前署名されたURLを生成できますか? – Abhilash

+0

私は事前に署名されたURLに関する質問があります。事前に署名されたURLは3分で失効します。ビデオがあるとします。ユーザーアクセスのビデオ再生ページですが、クリックした再生ボタンは表示されません。ユーザーが再生ボタンをクリックすると、5分後に(事前に署名されたURLが期限切れになる可能性があります)、ビデオは再生されますか? – Abhilash

関連する問題