Home AWS S3 (WIP)
Post
Cancel

AWS S3 (WIP)

Định nghĩa

TBD

Bucket

TBD

Access points

Access points cho phép tạo ra một điểm truy cập (access point) duy nhất đến một bucket S3, giúp tăng tính an toàn và quản lý quyền truy cập tốt hơn cho các ứng dụng và người dùng

Một số use case thực tế

  1. Chia sẻ dữ liệu giữa các tài khoản khác nhau: Nếu bạn muốn chia sẻ một phần dữ liệu của một bucket S3 với một tài khoản khác, bạn có thể tạo một access point với các quyền truy cập được giới hạn chỉ đến phần dữ liệu đó và cung cấp cho tài khoản đó thông tin truy cập tới access point đó.
  2. Quản lý quyền truy cập cho các ứng dụng khác nhau: Nếu bạn có nhiều ứng dụng sử dụng chung một bucket S3, bạn có thể tạo các access point với các quyền truy cập khác nhau cho từng ứng dụng, giúp kiểm soát quyền truy cập và giảm thiểu các lỗ hổng bảo mật.
  3. Giảm thiểu chi phí truy cập: Nếu bạn có nhiều khách hàng truy cập vào dữ liệu của bạn, bạn có thể tạo các access point với cấu hình khác nhau cho từng khách hàng, giúp tối ưu hóa chi phí truy cập.
  4. Tăng tính tuân thủ: Nếu bạn phải tuân thủ các quy định về bảo mật hoặc luật lệ, bạn có thể sử dụng access point để tăng tính tuân thủ và phù hợp với các quy định đó.
  5. Tối ưu hóa hiệu suất: Nếu bạn có nhu cầu truy cập vào một phần nhỏ của dữ liệu trong bucket S3, bạn có thể tạo một access point chỉ cho phép truy cập vào phần dữ liệu đó, giúp tối ưu hóa hiệu suất và giảm thiểu chi phí truy cập.

    Sample Terraform

    ```bash resource “aws_s3_bucket” “example_bucket” { bucket = “example-bucket” }

resource “aws_s3_access_point” “example_access_point” { name = “example-access-point” bucket = aws_s3_bucket.example_bucket.id vpc_configuration { vpc_id = “vpc-123456” subnet_ids = [“subnet-123456”, “subnet-789012”] } policy = jsonencode({ “Version”: “2012-10-17”, “Statement”: [ { “Effect”: “Allow”, “Principal”: “”, “Action”: [“s3:GetObject”], “Resource”: “${aws_s3_access_point.example_access_point.arn}/” } ] }) }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Presign URL
TBD
# Chính sách quyền truy cập
TBD
# Object Lambda access points
- S3 Object Lambda Access Points cho phép hệ thống sử dụng Lambda để thực hiện các xử lý tùy chỉnh trên đối tượng S3 trước khi nó được trả về cho khách hàng mà không ảnh hưởng đến các đối tượng gốc
- Sử dụng S3 Object Lambda Access Point sẽ tốn phí vì AWS tính phí dựa trên số lần gọi hàm lambda và thời gian thực hiện hàm lambda. Nhưng việc sử dụng S3 Object Lambda Access Point giúp tối ưu hóa tài nguyên lưu trữ và giảm chi phí lưu trữ bằng cách loại bỏ việc lưu trữ các tệp tin trung gian, giúp giảm thiểu chi phí quản lý hạ tầng lưu trữ.
## Một số use case thực tế
1. Lọc ra thông tin của các khách hàng trong một khu vực nhất định.
2. Chuyển đổi định dạng của các thông tin sản phẩm và hóa đơn từ đơn vị tiền tệ sang đơn vị định lượng.
3. Thêm các thông tin bổ sung như số lượng sản phẩm còn lại, ngày hết hạn của sản phẩm, đánh giá của khách hàng
4. Giảm kích thước của đối tượng bằng cách nén hoặc chuyển đổi định dạng hình ảnh.
5. Ẩn thông tin nhạy cảm trong đối tượng bằng cách thực hiện mã hóa hoặc loại bỏ thông tin đó.

# Batch operations
- AWS S3 Batch Operations là một dịch vụ cho phép bạn thực hiện các tác vụ xử lý hàng loạt trên đối tượng S3 (sao chép, di chuyển, đổi tên, xóa và nén hàng loạt đối tượng,...)
- Bạn có thể chọn các đối tượng S3 cần xử lý dựa trên các tiêu chí như tiền tố, hậu tố, thời gian tạo hoặc kích thước của đối tượng
- S3 Batch Operations cũng cung cấp các tính năng như ghi nhật ký, theo dõi tiến trình và xác thực IAM. Bạn có thể sử dụng các tính năng này để giám sát tiến trình xử lý hàng loạt của mình, đảm bảo rằng chỉ các người dùng được ủy quyền mới có thể truy cập vào các tác vụ hàng loạt của bạn và bảo vệ các dữ liệu quan trọng của bạn.
## Một số use case thực tế
1. Di chuyển hoặc sao chép đối tượng giữa các kho lưu trữ S3
2. Xóa đối tượng S3 theo thời gian
3. Nén đối tượng S3 để tiết kiệm dung lượng lưu trữ và giảm chi phí lưu trữ
4. Phân loại và phân tích đối tượng S3
## CLI
```bash
aws s3control create-job --account-id=<account_id> --region=<region> --manifest '{"Spec": {"Format": "S3BatchOperations_CSV_20180820", "Fields": ["Bucket", "Key"]}, "Location": {"ObjectArn": "<S3_Object_ARN>", "ETag": "<S3_Object_ETag>"}}' --operation '{"S3DeleteObject": {}}'

Terraform

Not support yet

This post is licensed under CC BY 4.0 by the author.