2016-08-01 2 views
0

배경 : S3 스토리지와아마존 CloudFront를 - 서명 URL과 비디오를 보호

아마존 CloudFront를 비디오 전송 : 나는 정의 360도 비디오 플레이어를 사용하고 있습니다. 플레이어는 단순히 MP4 비디오에 연결됩니다. 동영상은 스트리밍되지 않지만 점진적 다운로드와 직접 연결됩니다.

ISSUE은 비디오 만 다른 웹 사이트에서 다시 내 웹 사이트에서이 아니라 재생한다) 체결 URL

1 ---> 해결합니다. 그렇지 않으면 누군가가 비디오 파일에 핫 링크 만 할 것이고 아마존 트래픽에 대해 비용을 지불해야 할 것입니다.

2) CloudFront의 "서명 된 URL"정책 삽입 위치 및 삽입 방법 대부분의 팁은 CloudFront에 연결된 "Signed URL"을 사용하도록 제안합니다. 그러나 나는 수수께끼를 모아 놓을 수 없으며, 나는 혼돈 스럽지만 준 숙련 된 독학 남자입니다. So .. :

2A -> CloudFront 정책을 어디에 삽입할까요? S3 콘솔에서?

2B -> 작성해야 할 내용, pls. 실례를 제공하십시오!

2C -> 하나 개의 특정 도메인

3) 나는 또한 S3 버킷에 파일 권한을 보호하는 것은 충분하지 않은 것으로 의심을 포함시키는 방법, CloudFront를 그 권한 규칙을 무시할 수 있습니다. 그 맞습니까?

지침 : 아무것도 작동하지 않는 경우

, 나는 우리가 화면 공유를 사용하여, CloudFront를 체결 URL과 한 비디오를 함께 설정 유료, 1 시간 스카이프 guidence 세션 찾고 있습니다. 모든 단계별 설명이 나와 있으므로 다른 동영상에 대한 과정을 직접 반복 할 수 있습니다. 그리고 Skype 세션은 예산에 민감한 Kickstarter/Indiegogo 프로젝트에 적당합니다.

정말 고맙습니다. 감사!

+1

이 기사를 읽었습니까? https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html – error2007s

+0

예,하지만 정책을 삽입 할 위치를 이해할 수 없습니다. 그것은 말하지 않거나, 나는 ... (그리고 솔직히 말해서, 몇 안되는 보안 비디오를 설정하기를 원하는 작은 신생 업체에게는 그들의 문서화가 너무 어렵고 혼란 스럽습니다.) – James

+0

어디에 삽입해야하는지 알고 있습니까? 정책들? – James

답변

0

1) 동영상은 다른 웹 사이트가 아닌 내 웹 사이트에서만 재생해야합니다. 그렇지 않으면 누군가가 비디오 파일에 핫 링크 만 할 것이고 아마존 트래픽에 대해 비용을 지불해야 할 것입니다.

그렇기 때문에 웹 사이트는 동영상에 링크 된 HTML 페이지를 동적으로 생성 할 수있는 플랫폼에서 실행되어야합니다.

2) CloudFront의 "서명 된 URL"정책 삽입 위치 및 삽입 방법 대부분의 팁은 CloudFront에 연결된 "Signed URL"을 사용하도록 제안합니다. 그러나 나는 수수께끼를 모아 놓을 수 없으며, 나는 혼돈 스럽지만 준 숙련 된 독학 남자입니다. 그래서 .. : 당신이 custom policy을 사용하는 경우 정책이 서명을 생성하는 데 사용되며, 그것은 당신이 생성 링크의 일부로 포함되어

... 그것의 base64로 인코딩 된 버전의 다음 &Policy=...처럼 보인다 정책.

URL에 있습니까?! 예. 서명은 정책을 변조 방지합니다. 이것은 각 페이지가로드 될 때 코드가 생성하는 서명 된 URL에 포함됩니다. 준비된 정책을 사용하는 경우 어디에도 저장/전송하지 않습니다.CloudFront는 이미 포함 된 내용을 알고 있기 때문에 서명 계산에 사용하고 버립니다. 요청이 일치하기 때문에 (다른 경우, 유효하지 않으므로 요청이 올바르게 실패합니다).

2A -> CloudFront 정책을 삽입 할 위치는 어디입니까? S3 콘솔에서?

아무 것도 없습니다. 위 참조.

2B -> 작성해야 할 내용은 무엇입니까? 실례를 제공하십시오!

작동 예제는 in the documentation입니다.

스택 오버플로에는 무료 코드 공짜 서비스가 없습니다.

2C ->이 작품 정확히 어떻게 아니다 하나 개의 특정 도메인

을 포함시키는 방법. 도메인에 의한 콘텐츠 보안은 위조 될 수 있기 때문에 콘텐츠를 전혀 확보하지 않습니다.

귀하의 웹 사이트는 서명 된 링크를 제공합니다. 링크는 귀하로부터 얻었 기 때문에 유효합니다. 그것들은 몇 초 동안 만 다운로드가 가능할만큼 길기 때문에 만료됩니다 ... 그래서 링크가 이미 오래되어서 누군가의 핫 링크 일지라도 상관 없습니다. 그러나 이것이 각 페이지로드로 생성하는 이유입니다.

다른 방법으로 CloudFront를 통해 전체 사이트를 제공 한 다음 CloudFront 서명 쿠키를 사용하여 사이트에 로그인 한 모든 사람이 제한된 콘텐츠에 액세스 할 수있게하십시오.

3) S3 버킷에서 파일 권한을 보호하는 것만으로는 충분하지 않을 수도 있습니다. CloudFront는 해당 권한 규칙을 무시할 수 있습니다. 그 맞습니까?

아니요, CloudFront에는 사용자가 배열하지 않는 한 버킷에 대한 권한있는 액세스 권한이 없습니다. CloudFront 원점 액세스 ID는 버킷의 객체에 액세스하는 데 필요한 권한을 제공합니다.

Serving Private Content through CloudFront을 읽으십시오.

+0

오, 와우, 그렇게 상세한 통찰력을 가져 주셔서 너무 감사드립니다. 사진이 점점 더 선명 해지고 있습니다. 솔직하게 AWS 문서는 논리를 명확하게 설명하지 않고 너무 많은 심도로 이동합니다. 적어도이 메커니즘을 이해하기 시작했습니다.이 페이지가 다른 새로운 AWS 사용자에게 도움이되기를 바랍니다. – James

+0

그러나 Amazon S3에서는 도메인별로 액세스를 제한 할 수 있지만 CloudFront에서는 액세스를 제한 할 수없는 이유는 무엇인지 이해할 수 없습니다. 여기에 S3 설명서의 견적이 나와 있습니다. S3는 도메인 제한을 아주 쉽게 허용하는 것으로 보입니다.QUOTE ---> "웹 사이트에서 이러한 객체에 대한 읽기 액세스를 허용하려면 aws : referer 키를 사용하여 조건에 s3 : GetObject 권한을 허용하는 버킷 정책을 추가하고 get 요청이 특정 웹 페이지에서 발생해야합니다. "---이 방법을 CloudFront에서도 사용할 수있는 방법이 있습니까? – James

+0

이것은 액세스 제어의 기본 메커니즘입니다. 콘텐츠를 다운로드하지 못하도록 보장하지는 않지만 원시 핫 링크 전략을 어렵게 만듭니다. CloudFront에서 [웹 응용 프로그램 방화벽] (https://aws.amazon.com/waf/)을 사용하거나 S3에서 공개되고 CloudFront 인증이 사용되지 않은 경우 S3에서이를 활성화하고 구성하여 버킷을 "사용자 정의"("S3"가 아닌) 원본으로 사용하고 CloudFront 배포의 캐시 동작 설정에서 Referer 헤더를 허용 목록에 추가합니다. –

관련 문제