2014-12-12 3 views
1

그래서 .. http를 통해 응용 프로그램 서버에 일부 파일을 제공하려는 Amazon S3 버킷이 있습니다. 이를 위해 특정 사용자 에이전트 세트를 설정하고 IP 제한을 설정합니다. 여기 Amazon S3 버킷 정책 - 사용 에이전트 별 필터링

내가

을 한 일입니다

A) 버킷 설정)

B "내 테스트 버킷"라는 새로운 버킷 "호스팅 웹 사이트를 사용"으로 만든

C) 추가 간단한)

D 버킷에 index.html을 지 인터넷에 활짝 열려 연결()

{ 
"Version": "2008-10-17", 
"Id": "S3PolicyId1", 
"Statement": [ 
    { 
     "Sid": "Public", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::my-test-bucket/*" 
    } 
] 
} 
을 테스트하기 위해 다음과 같은 버킷 정책을 설정합니다

d) 테스트를 마쳤습니다!

e)는 헤더에 사용자 에이전트를 설정하는 우체부를 사용하여 테스트 사용자 에이전트

{ 
"Version": "2008-10-17", 
"Id": "S3PolicyId1", 
"Statement": [ 
    { 
     "Sid": "Public", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::my-test-bucket/*", 
     "Condition": { 
      "StringEquals": { 
       "aws:UserAgent": "test" 
      } 
     } 
    } 
] 
} 

F) 및

지금 이상한 일이없는 이동을 제한하기 위해 버킷 정책을 설정합니다 .. 다른 양동이에 비슷한 양동이 정책을 사용했는데 효과적입니다. 내가 여기서 잘못하고있는 것에 대한 아이디어가 있습니까?

PS는 ..이 작동되면 그 다음

+0

UserAgent를 기반으로 한 액세스 제한은 특히 안전하지 않습니다. 이는 보안이 보장되지 않습니다. 대신 서명 된 URL을 사용하거나 인증되지 않은 액세스를 사용하는 대신 S3 API를 직접 호출 하시겠습니까? –

+0

캐싱 목적으로 NGINX를 통해 S3에 저장된 웹 컨텐트를 프록시 처리하여 API를 사용하지 않는 것이 좋습니다. 내가 볼 수있는 것으로부터 서명 된 UR에 대해서는 일반적으로 읽기 액세스가 아닌 콘텐츠 업로드에 사용됩니다. –

답변

0

문제를 올 것이다, 아직 IP 주소 확인에 추가하지 않은 난에 추가하는 데 필요한 모든 새로운 시험 때문에 .. 브라우저 캐싱 때문 타임 스탬프는 브라우저에서 캐시되지 않도록합니다.

http://my-test-bucket.s3.amazonaws.com/test.html?t=123321