2011-09-14 67 views
68

Tôi đã tải lên một số tệp thông qua Amazon AWS mangement.Vấn đề về quyền đối với Amazon S3 - Cách đặt quyền cho tất cả các tệp cùng một lúc?

Tôi đã nhận được lỗi 403. Từ chối truy cập. Tôi phát hiện ra rằng tôi cần phải thiết lập permisson để xem.

Làm cách nào để thực hiện việc đó cho tất cả các tệp trên nhóm? Tôi biết rằng đó là quyền thiết lập sở hữu cho mỗi tệp. Phải mất rất nhiều lần khi có rất nhiều tệp cần phải xem được cho mọi người.

Trả lời

105

Tôi khuyên bạn nên áp dụng chính sách nhóm [1] cho nhóm nơi bạn muốn lưu trữ nội dung công khai. Bằng cách này bạn không phải đặt ACL cho mọi đối tượng. Dưới đây là ví dụ về chính sách sẽ đặt tất cả các tệp trong xô mybucket công khai.

{ 
    "Version": "2008-10-17", 
    "Id": "http better policy", 
    "Statement": [ 
     { 
      "Sid": "readonly policy", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*" 
     } 
    ] 
} 

Điều đó * trong "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*" cho phép đệ quy.

[1] Lưu ý rằng Chính sách nhóm khác với Chính sách IAM. (Đối với một trong những bạn sẽ nhận được một lỗi nếu bạn cố gắng bao gồm Principal trong một chính sách IAM.) Chính sách Bucket có thể được chỉnh sửa bằng cách đi root của xô trong giao diện điều khiển web AWS của bạn và mở rộng Properties> Permissions. Thư mục con trong một cái xô cũng có Properties> Quyền, nhưng không có tùy chọn để Chỉnh sửa chính sách xô

+4

Chỉ trong trường hợp bất kỳ ai khác bị phát hiện bởi điều này, Phiên bản phải chính xác như được chỉ định. – opsb

+9

Chỉ trong trường hợp bất cứ ai đang tự hỏi làm thế nào để thiết lập một chính sách xô, đây là tài liệu chính thức AWS: http://docs.amazonwebservices.com/AmazonS3/latest/dev/setpolicyonbucket.html –

+6

Họ cũng có một công cụ hữu ích để tạo ra những : http://awspolicygen.s3.amazonaws.com/policygen.html –

4

Bạn chỉ có thể sửa đổi ACL cho một mục duy nhất (xô hoặc mục), đậu nành, bạn sẽ phải thay đổi từng cái một.

Một số ứng dụng quản lý S3 cho phép bạn áp dụng cùng ACL cho tất cả các mục trong một nhóm, nhưng nội bộ, nó áp dụng ACL cho từng cái một.

Nếu bạn tải lên tệp của mình theo chương trình, điều quan trọng là phải chỉ định ACL khi bạn tải tệp lên, vì vậy bạn không phải sửa đổi tệp sau này. Vấn đề của việc sử dụng một ứng dụng quản lý S3 (như Cloudberry, Transmit, ...) là hầu hết trong số họ sử dụng ACL mặc định (chỉ đọc riêng) khi bạn tải lên mỗi tệp.

2

tôi đã cùng một vấn đề khi tải lên các tập tin thông qua chương trình (java) để xô s3 ..

Lỗi: Không có tiêu đề 'Access-Control-Allow-Origin' xuất hiện trên tài nguyên được yêu cầu. Do đó, không cho phép xuất xứ 'http://localhost:9000'. Câu trả lời đã có mã trạng thái HTTP 403

tôi thêm bản sắc gốc và thay đổi chính sách CORS cấu hình sau đó tất cả mọi thứ làm việc tốt.

3

Bạn có thể chọn thư mục bạn muốn thư mục được công khai.

Nhấn vào "thêm" và đánh dấu là công khai; nó sẽ làm cho thư mục và tất cả các tệp có thể truy cập được ở chế độ công khai.

1

Sử dụng S3 Browser bạn có thể cập nhật quyền bằng gui, cũng theo cách đệ quy. Đó là một công cụ hữu ích và miễn phí cho mục đích phi thương mại.

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