2012-05-23 4 views
4

이 버킷 정책을 사용하여 Amazon S3에서 핫 링크 미디어 파일을 방지하려고했습니다.CloudFront로 Amazon S3에서 핫 링크 방지

{ 
"Version": "2008-10-17", 
"Id": "my-id", 
"Statement": [ 
    { 
     "Sid": "Allow get requests to specific referrers", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::bucketname/*", 
     "Condition": { 
      "StringLike": { 
       "aws:Referer": "http://sitename.com/" 
      } 
     } 
    }, 
    { 
     "Sid": "Allow CloudFront get requests", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "arn:aws:iam::amazonaccountid:root" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::bucketname/*" 
    } 
] 
} 

ACL이 개인으로 설정되었습니다. 여전히 액세스하려고하는 파일을 수락 할 수 없습니다.

여기에서 발견 한 많은 다른 정책을 시도했지만 그 중 아무 것도 효과가없는 것 같습니다. 핫 링크를 방지하려는 파일은 .swf 파일입니다.

클라우드 프론트없이 정확한 (bucketname.s3.amazonaws.com) 링크를 사용하면 올바르게 작동합니다.

+0

- 로이는 아직 문제를 해결하는 데 도움이 되었습니까 @? 나는 크게 [동일한 문제가]있어 (http://stackoverflow.com/questions/11522563/prevent-hotlinking-of-amazon-s3-content) 그래서 귀하의 현재 상태가 –

+2

인 것을 확인하고 싶습니다. S3 버킷 정책은 없습니다. Amazon CloudFront에서 효과. 이것을 확인하십시오 http://stackoverflow.com/questions/5652962/preventing-amazon-cloudfront-hotlinking –

답변

3

내가 사용하는 버킷 정책은 다음과 같습니다.

{ 
"Version": "2008-10-17", 
"Id": "http referer policy", 
"Statement": [ 
    { 
     "Sid": "Allow get requests referred by www.mysite.com and mysite.com", 
     "Effect": "Allow", 
     "Principal": "*", 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::bucketname/*", 
     "Condition": { 
      "StringLike": { 
       "aws:Referer": "http://www.mysite.com/*" 
      } 
     } 
    } 
] 

}

관련 문제