S3 feature: You don’t know S3

Tổng quan

Chắc hẳn mọi người đều đã biết đến S3, một trong những core service mà AWS hiện đang cung cấp. Điểm qua lại về tổng quan Simple Storage Service (S3) là dịch vụ lưu trữ dữ liệu không giới hạn, có thể truy cập từ bất cứ đâu qua internet với tốc độ cao, các tính năng xịn sò như backup versioning blabla…

Security & Access Control

Về bảo mật và phân quyền trong bản update gần đây S3 đã tung ra 3 feature mới giúp cho việc quản lý truy cập ở các môi trường large-scale trở nên mạnh mẽ và linh hoạt hơn nữa.

Cùng điểm qua 3 tính năng mới:

1. Object Ownership – Đảm bảo cho object được tạo trong bucket thuộc sở hữu của bucket owner
2. Bucket Owner Condition – Xác nhận bucket owner trước khi tạo object
3. Copy API via Access Points – Truy cập S3 Copy API qua Access Point

1.Object Ownership

Nhìn thoáng qua thì có vẻ như ai cũng nghĩ rằng object nằm trong bucket sẽ thuộc sở hữu của bucket owner (root account) nhưng không hẳn vậy.
S3 cho phép cross-account access bucket dẫn đến object được tạo ra bởi account khác không thuộc sở hữu của bucket owner.

Hãy thử tưởng tượng một ngày đẹp trời bạn muốn share bucket cho một account khác, ta gọi đây là account X. Bạn nhận ra không thể share object cho account X do object thuộc sở hữu của account A (partner). Bạn bảo A trao full quyền của object lại cho mình và mọi việc xong xuôi nhưng không.
Object B của ông B cũng cần phải làm vậy, bà C thậm chí còn chả nhớ mình có bao nhiêu object với để ở đâu, ông D thì hôm bữa mới làm fail dự án nên không dám nhìn mặt…

Với việc thiết lập Object Ownership thì giờ đây vấn nạn đã được giải quyết.


Bucket -> permission- > Object Ownership -> Bucket owner preferred

  • Việc thiết lập này không thể áp dụng cho các object đang nằm trong bucket.
  • Ngoài ra bạn cần yêu cầu các account khác thêm bucket-owner-full-control canned ACL nếu không request sẽ bị báo lỗi.
    SAMPLE
    aws s3 cp file.txt s3://awsdoc-example-bucket --acl bucket-owner-full-control

2.Bucket owner condition

Xác nhận lại bucket owner trước khi thực hiện tạo object.
Có thể nói đây là thiết lập khó hiểu.

aws s3api put-object \
    --bucket EXAMPLE-BUCKET --key exampleobject --body example_file.txt \
    --expected-bucket-owner 111122223333

Với việc thêm parameter --expected-bucket-owner request sẽ báo lỗi nếu bucket EXAMPLE-BUCKET không thuộc sở hữu của account 111122223333

Việc khó hiểu ở đây là ta không thể thay đổi chủ sở hữu của bucket. Phải chăng để tránh những case như này?

3.Copy via Access point

Access point cho phép ta định nghĩa một lối vào riêng cho 1 bucket với các policy cần thiết. Đối với các shared-data bucket lớn thay vì phải viết và quản lý policy cho từng object, user, account ta có thể tạo access point và định nghĩa các policy trong đó. Access point tỏ ra hiệu quả khi có thể tái sử dụng (vd Customer-access-point, test).

Access point giờ đây đã support thêm CopyObject API (copy cả metadata) trong bản cập nhật lần này.

"It's FREE!" – bạn có thể sử dụng các tính năng mới cập nhật miễn phí !

Nguồn: https://aws.amazon.com/blogs/aws/amazon-s3-update-three-new-security-access-control-features/

Leave a Reply

Your email address will not be published. Required fields are marked *