2017-05-03 7 views
0

이것은 아마도 SO에서 여러 번 파헤쳐졌지만 아직 여기에서 내 머리를 잡을 수는 없습니다. 누군가 내가 놓칠지도 모르는 것에 관해서 여기에 약간의 빛을 던지도록 도울 수 있습니까!모바일 앱에서 AWS S3 액세스를 위해 사전 서명 된 URL 생성

얼랭의 백엔드 채팅 서버와 AWS S3에 저장된 사진으로 모바일 메시징 앱을 만들고 있습니다. 사용자가 그룹에 사진을 보내면 해당 그룹의 회원 만이 다운로드 할 수 있고 다른 사용자는 다운로드 할 수 없도록하고 싶습니다.

내가 이해할 수 있도록 채팅 수신자 (즉, 그룹 회원)에게 미리 서명 된 URL (예 : 업로드 된 사진)을 배포하여 직접 다운로드 할 수 있어야합니다.

내 질문은 : 미리 생성 된 URL을 어떻게 생성합니까? AWS Cognito의 역할은 무엇입니까? 모바일 앱에서 쿼리 할 수있는 새로운 웹 서비스를 구축해야합니까? 따라서이 웹 서비스는 Cognito의 getIdentityId()를 호출하고 모바일 클라이언트가 전달한 버킷 이름/키와 함께 응답을 사용하여 사전 서명 된 URL을 생성 한 다음 모바일 클라이언트로 다시 전달합니다. 이 URL을 그룹 채팅 수신자에게 배포 하시겠습니까?

또는 Cognito 자격증 명 공급자 및 사용자 풀 ID가 모바일 소스 코드에 포함되어 있어야하며 iOS/Android 앱 자체에서 상기 URL을 생성해야합니까?

오랜 호언 장담에 사과드립니다!

+0

는 사전 서명 된 URL이 URL이 누군가에 의해 이용 될 수 있음을 유의하십시오. 따라서 그룹 회원 만 URL을 가진 유일한 회원 인 경우 그룹 회원이 이미지를 다운로드 할 수 있습니다. – jbird

+0

고마워요. @jbird - 완벽하게 이해할 수 있습니다. 이제 실제로 SDK를 직접 사용하고 URL에 의존하는 대신 인증 된 사용자에게 필요한 권한을 부여합니다. 회신에 감사드립니다 ... – vikram17000

답변

2

Cognito 자격 증명은 SDK에서 생성 된 사전 서명 된 URL에 서명하는 데 사용됩니다. 사전 서명 된 URL이 유효한 자격 증명으로 서명되지 않은 경우 다운로드 요청 수신이 실패합니다.

그러면 애플리케이션에 AWS 리소스에 액세스하기위한 임시 자격 증명을 가져 오는 Cognito 풀 ID가 있어야합니다.

감사합니다, 로한

+0

감사합니다. @Rohan Dubal - 마침내 앞으로 서명되고 사전 서명 된 URL 대신 SDK를 직접 활용하기 시작했습니다. 답변 해 주셔서 감사합니다. – vikram17000