2012-10-31 25 views
7

Tôi đang phục vụ một trang web tĩnh bằng cách sử dụng thùng chứa S3 của Amazon. Tôi biết rằng tôi có thể giới hạn quyền truy cập đọc vào một số "thư mục" (thực sự là khóa, vì S3 không có thư mục) nhưng điều tôi thực sự muốn làm là giới hạn truy cập bằng phần mở rộng tệp.Làm cách nào để giới hạn các tệp trong S3 dựa trên phần mở rộng của chúng?

Nói cách khác, tôi muốn nói "cấp quyền truy cập đọc cho mọi người cho bất kỳ tệp nào trong nhóm này, miễn là tệp đó kết thúc bằng htm/css/js/png"; điều đó có thể không?

(Ngoài ra, lo ngại của tôi là tôi sẽ vô tình tải lên tệp .git hoặc một thứ tương tự mà tôi không muốn hiển thị với mọi người; hơn là tin tưởng bản thân mình để không bao giờ vô tình tải lên tệp sai).

+0

Có thực sự không có ai am hiểu về S3 trên Stack Overflow không? Hay có gì sai với câu hỏi của tôi ...? – machineghost

Trả lời

15

Có, có thể. Bạn có thể viết Bucket Policy. Bạn có thể sử dụng cụm từ thông dụng để xác định đối tượng nào bị ảnh hưởng bởi chính sách của bạn (examples).

chính sách của bạn sẽ được một cái gì đó tương tự như:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "auniqueid", 
      "Effect": "Deny", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::bucket/*.jpg" 
     } 
    ] 
} 

này sẽ từ chối quyền truy cập vào tất cả các file jpg của Buket bucket.

+0

Cảm ơn các liên kết này, nhưng không có ví dụ nào bạn liên kết cho thấy cách giới hạn bởi phần mở rộng tệp (đó là câu hỏi cụ thể mà tôi đang cố gắng trả lời). – machineghost

+0

@machineghost đã thêm một ví dụ vào câu trả lời của tôi. – lstern

+0

Tuyệt vời, cảm ơn bạn! – machineghost

Các vấn đề liên quan