2017-12-25 6 views

답변

1

cloudflare 사이트에서 찾을 수있는 문서는 다소 암묵적이며 제대로 작동하려면 Google을 꽤 많이 사용해야했습니다. 그래서 여기에 내 솔루션이 포괄적이지 않을 수도 있지만 시작하기에 충분할 수 있습니다.

1)에 다음과 같은 정책을 추가)

2 avatars.mywebsite.com라는 버킷을 만듭니다. CORS가 아닌 정책. 내가이하는 생각은 무엇

{ 
    "Version": "2012-10-17", 
    "Id": "http referer policy", 
    "Statement": [ 
     { 
      "Sid": "CloudFlare Requests", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::avatars.mywebsite.com/*", 
      "Condition": { 
       "IpAddress": { 
        "aws:SourceIp": [ 
         "103.21.244.0/22", 
         "103.22.200.0/22", 
         "103.31.4.0/22", 
         "104.16.0.0/12", 
         "108.162.192.0/18", 
         "131.0.72.0/22", 
         "141.101.64.0/18", 
         "162.158.0.0/15", 
         "172.64.0.0/13", 
         "173.245.48.0/20", 
         "188.114.96.0/20", 
         "190.93.240.0/20", 
         "197.234.240.0/22", 
         "198.41.128.0/17" 
        ] 
       } 
      } 
     } 
    ] 
} 

는 만 CloudFlare에 속하고 자신의 웹 사이트에 어딘가에 찾을 수 있습니다 된 IP로 액세스 할 수 있도록이 버킷에 대한 액세스를 제한하는 것입니다. 또한 IdSid에는 귀하의 경우에 맞는 정보가 포함될 수 있습니다.

3) CloudFlare DNS 관리자에 CNAME 레코드를 추가하십시오. 이름 avatars 및 값이어야합니다 avatars.mywebsite.com.s3.amazonaws.com 당신이 당신의 웹 사이트에서 user/1/avatar.jpg 같은 경로로 버킷에있는 파일에 액세스하려면

4) 이제, 다음 SRC를 사용

https://avatars.mywebsite.com/user/1/avatar.jpg

5) HTTPS가 사용되는 경우 CloudFlare 대시 보드에서 SSL 수준을 Full(Strict)에서 Full으로 변경해야 할 필요가 있음을 지적 할 가치가 있습니다.

+0

나쁘지 않습니다. * "내가 생각하는 바에는 버킷에 대한 액세스를 제한하여 해당 IP로만 액세스 할 수 있습니다."기술적으로 이것은 버킷을 제한하는 것이 아니라 원본 IP가 비공개 개체에 대한 인증되지 않은 액세스를 허용하는 것입니다. 나열된 주소 중 하나입니다. 객체 ACL, 버킷 정책 및 버킷 ACL이 모든 사람에게 버킷 공개를 설정하지 않으면 넷 효과는 비슷합니다. 'Sid' (Statement ID)는 실제로 편의상 불투명 한 레이블이며, 서비스는 그것을 해석하지 않습니다. –

+0

@ Michael-sqlbot 아, 그 점을 지적 해 주셔서 감사합니다. – JustMichael

관련 문제