2012-05-23 1 views
4

J'ai essayé d'empêcher l'insertion de fichiers multimédia sur Amazon S3 avec cette stratégie de compartiment.Prévention du hotlinking sur Amazon S3 avec CloudFront

{ 
"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/*" 
    } 
] 
} 

L'ACL est définie sur privé. Je suis toujours incapable de l'obtenir pour accepter les fichiers auxquels j'essaie d'accéder.

J'ai essayé beaucoup de différentes politiques que j'ai trouvées ici mais aucune d'elles ne semble avoir aucun effet. Les fichiers que j'essaie d'empêcher de hotlinking sont des fichiers .swf.

Lorsque j'utilise le lien exact (nom de domaine.s3.amazonaws.com) sans cloudfront, cela fonctionne.

+0

- @ Roy avez-vous résolu votre problème encore? J'ai en grande partie le [même problème] (http://stackoverflow.com/questions/11522563/prevent-hotlinking-of-amazon-s3-content) donc voulu voir ce que votre statut actuel est –

+2

Les politiques de compartiment S3 n'ont pas effet sur Amazon CloudFront. Regardez ça http://stackoverflow.com/questions/5652962/preventing-amazon-cloudfront-hotlinking –

Répondre

3

Voici la politique de seau que j'ai utilisée pour l'obtenir.

{ 
"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/*" 
      } 
     } 
    } 
] 

}