Định nghĩa quyền truy cập và cấp phép bằng Bucket Policies

Cập nhật lần cuối: 2024/06/20 18:10:23

 

Bucket policies là một cơ chế để quản lý quyền truy cập và cấp phép truy cập cho Object Strorage CMC S3. Khi so sánh với ACLs, bucket policies áp dụng cho chỉ bucket (không áp dụng cho các object bên trong).

 


1. Các thành phần của 1 Policy

Bucket policies được định nghĩa thông qua cấu trúc json như sau:

Mảng Statement định nghĩa các policies mà bạn muốn sử dụng. Bên trong mảng Statement gồm Effect, Principal, Action, Resource, và tùy chọn Condition. Mỗi thành phần trên được mô tả như bên dưới.

  • Effect: định nghĩa cho phép (Allow) hoặc từ chối (Deny) để định nghĩa tài nguyên

"Effect":"Allow"

  • Principal: định nghĩa người dùng hoặc thực thể mà policy áp dụng. Quyền truy cập công khai / ẩn danh: Sử dụng ký tự ‘*’ để cấp quyền truy cập cho mọi người. Việc này thường được sử dụng để lưu trữ một website thông qua Object Storage

"Principal" : "*"

  • Action: Action định nghĩa quyền được trao (hoặc loại bỏ) bởi policy. Những quyền này bao gồm khả năng ListBucket, View Object, Upload Object và nhiều quyền hơn nữa: tham khảo thêm nhiều Action khác.
  • Resource: Một policy áp dụng cho phần tài nguyên của object storage ví dụ như bucket hoặc object. Tài nguyên Bucket được định nghĩa theo định dạng: "arn:aws:s3:::[bucket]". Để áp dụng policy cho một vài hoặc tất cả các object thì sử dụng: "arn:aws:s3:::[bucket]/[object]". Trong cả 2 trường hợp thay thế bằng tên của bucket và (*) cho tất cả object hoặc đường dẫn đến 1 object bất kỳ.

           - Với trường hợp tất cả objects: áp dụng policy cho bucket, ví dụ: example-bucket

"Resource": [ "arn:aws:s3:::example-bucket/*" ]

           - Với trường hợp tất cả các objects bên trong bucket, hoặc bên trong thư mục: áp dụng cho tất cả các objects bên trong bucket, ví dụ: example-bucket

"Resource": [ "arn:aws:s3:::example-bucket/folder/*" ]

           - Với trường hợp 01 object bất kỳ, áp dụng policy cho object example-file.ext bên trong bucket có tên example-bucket.

"Resource": [ "arn:aws:s3:::example-bucket/example-file.ext" ]

Lưu ý: Khi định nghĩa bucket không cần bỏ /*, nếu bỏ /* có thể gây ra lỗi bucket trở nên không thể truy cập được qua API, CLI…


2. Hướng dẫn áp dụng Bucket policy

  • Truy cập Portal v2
  • Tại Bucket muốn update policy , chọn Bucket Policy và cập nhật nội dung cho policy 
  • Chọn Beautify để nội dung bucket policy về định dạng chuẩn
  • Chọn Save để lưu lại. 

3. Một số ví dụ về Bucket policy

  • Cho phép truy cập (đọc) công khai

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

  •  Gán cho tất cả người dùng giới hạn truy cập một thư mục

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

      "Action": [ "s3:GetObject"
      ],
     "Resource": [
         "arn:aws:s3:::example-bucket/test/*"

      ]

    }

   ]

}

    back to top

    logo

    © 2023, CMC Cloud. All rights reserved.

    Business Registration Certificate

    Giấy ĐKKD: 0102900049. Nơi cấp: Sở Kế hoạch & Đầu tư Thành phố Hà Nội

    Chịu trách nhiệm nội dung: Đặng Tùng Sơn