Tất cả tài liệu

FPT Object Storage

    Permissions
    Permissions
    Updated on 11 Jan 2024

    Edit Object Permissions (Object ACL)

    Trong FPT Object Storage, Object Permissions sẽ quyết định ai (Who) được phép thực hiện các hành động (Action) đối với đối tượng (Objects) trong một bucket.

    Để điều chỉnh quyền cho từng object, bạn có thể sử dụng tính năng Edit Object Permissions. Tính năng này được xây dựng dựa trên cơ chế ACL. Object ACL có 3 permission cơ bản:

    • READ: Cho phép đọc nội dung của đối tượng.
    • WRITE: Cho phép ghi dữ liệu vào đối tượng.
    • READ_ACP (Access Control Policy): Cho phép đọc thông tin ACL của đối tượng.

    Với tính năng Edit Object Permissions trên FPT Portal, sẽ có hai nhóm quyền chính là Public và Private.

    • Private: Hạn chế quyền với Anonymous User, chỉ các người dùng đã xác thực và được phân quyền mới có thể xem Object.
    • Public: Object sẽ luôn được gán quyền Read Only, kể cả đối với anonymous user. Lúc này object có thể được GET ở bất kỳ đâu, chỉ cần URL.
    Lưu ý: Ngoài object permission, object còn chịu ảnh hưởng từ Bucket Policy. Bucket Policy có hiệu lực cao hơn Object ACL. Bạn nên cẩn thận khi sử dụng đồng thời cả 2 tầng phân quyền này.
    
    Ví dụ bucket policy có rule public all, thì lúc này toàn bộ object đều sẽ public (only GET) với tất cả anonymous user, bất kể Object ACL của các object đấy có ở trạng thái public hay không.

    Bước 1: Trên bảng quản trị Object Storage Management, chọn Bucket chứa file cần thay đổi quyền.

    Bước 2: Di chuyển đến vị trí file, ở phần Action chọn Edit Permission. file Bước 3: Chọn chế độ hiển thị tại ô Read permission, chọn Update. file

    Bucket Permissions (Bucket ACL)

    Bucket permissions (ACL) cho phép bạn quản lý quyền truy cập vào bucket. Có 2 quyền cơ bản được định nghĩa là Public và Private.

    • Public: List toàn bộ object trong Bucket sẽ được hiển thị với tất cả mọi người, kể cả các Anonymous User trên Internet. Chỉ cần link bucket là họ sẽ có quyền List all object.
    • Private: Hạn chế quyền với Anonymous User, chỉ các người dùng đã xác thực và được phân quyền mới có thể xem list object trong Bucket.
    - Vì các lý do bảo mật, FPT Cloud khuyến nghị bạn nên nên dùng Bucket Policy để phân quyền truy cập cho Bucket. Tính năng ACL sẽ sớm bị loại bỏ khỏi Unify Portal.
    - Bucket ACL không có hiệu lực đối với Object. Để public object trong bucket, hãy dùng tính năng Bucket Policy hoặc Object ACL.

    Để cấu hình Bucket permissions (ACL), bạn thao tác như sau:

    Bước 1: Trong phần Action của Bucket cần cấu hình, chọn Config.

    Bước 2: Chọn Public hoặc Private.

    Nếu muốn đồng thời thay đổi cả permision cho toàn bộ object bên trong Bucket, tích chọn vào Apply for all subfolders and objects.

    Thời gian xử lý sẽ phụ thuộc số lượng Object. Số lượng object càng lớn thời gian xử lý càng lâu.

    file

    Cấu hình Bucket Policy

    Bucket Policy là một tính năng cho phép bạn quản lý quyền truy cập vào một bucket cụ thể. Nó cung cấp công cụ để người dùng set các quyền cho subuser và các user khác.

    Bucket Policy được viết dưới dạng JSON theo chuẩn AWS. Bạn có thể sử dụng tool để gen policy của AWS tại đây: https://awspolicygen.s3.amazonaws.com/policygen.html

    Bạn có thể cho phép hoặc không cho phép (Effect) các hành động (Action) lên một tài nguyên (Resource) cho một nhóm đối tượng cụ thể (Principal). Bằng cách xác định các quyền truy cập trong bucket policy, bạn có thể kiểm soát ai có thể truy cập và thao tác với dữ liệu trong bucket của mình.

    Dưới đây là một ví dụ về bucket policy:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPublicRead",
          "Effect": "Allow",
          "Principal": "*",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::example-bucket/*"
        }
      ]
    }

    Trong ví dụ trên, policy cho phép tất cả các người dùng (Principal: "*") có quyền đọc (Action: s3:GetObject) các object(Resource) trong bucket có tên "example-bucket". Điều này có nghĩa là bucket example-bucket sẽ ở chế độ công khai và tất cả mọi người đều có quyền get object trong bucket này.

    Bucket Policy là một công cụ mạnh mẽ để quản lý quyền truy cập vào dữ liệu trong bucket. Tuy nhiên, cần cẩn trọng khi cấu hình bucket policy để đảm bảo rằng chỉ có những người dùng được ủy quyền mới có thể truy cập vào dữ liệu trong bucket.

    - Bucket Policy có hiệu lực cao hơn Object ACL. Để an toàn, bạn nên cẩn thận khi sử dụng đồng thời cả 2 tầng phân quyền này.
    - Bucket policy chỉ có hiệu lực ở bucket mà nó được khai báo, không thể cấu hình xuyên bucket. Ví dụ bạn có bucket-1 và bucket-2, bạn không thể khai báo rule cho bucket-2 tại Bucket Policy của bucket-1 và ngược lại.

    Để khai báo Bucket Policy cho Bucket, bạn thao tác như sau:

    Bước 1: Trong phần Action của Bucket cần cấu hình, chọn Config.

    Bước 2: Nhập Policy hợp lệ vào Editor và chọn Save. file