2013-11-25 2 views
1

사용자가 파일을 게시하고 공유 할 수있는 앱이 있으며, 현재 이러한 파일을 제공하는 서버이지만 데이터가 커질수록 Amazon S3를 사용하여 조사하고 있습니다. 그러나 공개 정보와 특정 사용자 사이의 개인 정보는 동적 규칙을 사용하므로 서버가 유일한 중재자입니다. 즉, 앱/클라이언트 측에서 권한을 결정할 수 없습니다.Amazon S3의 개인 정보 보호

간단히 말해서 내 서버가 S3에서 데이터를 가져 와서 앱으로 다시 보낼 수 있다고 생각합니다. 하지만 분명히 그때 나는 내 서버가 불필요한 작업을한다고 언급하지 않기 위해 대역폭을 두 배로 지불하고 있습니다.

이것은 매우 일반적인 문제인 것처럼 보이므로 사람들이 일반적으로이 문제를 어떻게 해결할 수 있을지 궁금합니다. (Dropbox가 S3에 데이터를 저장한다는 것을 읽은 것처럼)

답변

2

우리는 거의 동일한 요구 사항을 가진 응용 프로그램을 가지고 있으며 실제로 사용할 수있는 좋은 해결책이 있습니다. S3는 개체에 액세스하기 위해 서명 된 만료 S3 URL을 지원합니다. 나에게 접근 할 수있는 비공개 S3 객체가 있다면 그러한 URL을 생성 할 수 있습니다. 다른 사용자에게 URL을 제공하면 URL을 사용하여 일반적으로 액세스 할 수없는 개체를 가져올 수 있습니다.

그래서 사용 사례에 대한 솔루션입니다 :

  1. 사용자가 웹 사이트의 URL에 GET을 수행
  2. 귀하의 코드는 사용자가 응용 프로그램을 통해 (객체를 볼 수 있어야합니다 있는지 확인
  3. 사용자 정의 동적 규칙)
  4. 웹 사이트는 곧 만료되는 서명 된 S3 URL로 리디렉션 응답을 반환합니다 (예 : 5 분 후)
  5. 사용자의 웹 브라우저는 서명 된 S3 URL에 GET을 수행합니다. 서명이 제대로되어 있고 아직 만료되지 않았기 때문에 S3는 객체의 내용을 사용자의 브라우저로 직접 반환합니다.

데이터는 웹 사이트를 통해 다시 여행하지 않고 S3에서 사용자로 이동합니다. 애플리케이션에서 승인 한 사용자 만 데이터를 가져올 수 있습니다. 또한 사용자가 책갈피에 책갈피를 지정하거나 URL을 공유하면 만료 시간이 지나면 작동하지 않습니다.

+0

감사합니다. 이 리디렉션은 사물을 다루는 좋은 방법입니다. 본질적으로 다른 사용자가 사용할 수있는 자원을 원한다면 만료 날짜를 10 년으로 설정하는 옵션이 있습니까? – Victor

+0

예, 장래에 만료 할 수 있습니다. –