Skip to content
Khoá học AWSSimple Storage ServicePhương thức truy cập S3

Các phương thức truy cập Amazon S3

Amazon S3 hỗ trợ nhiều phương thức truy cập khác nhau, phù hợp với nhu cầu của cả người dùng kỹ thuật và không kỹ thuật. Việc hiểu rõ các cách này giúp bạn chọn phương án phù hợp cho từng tình huống.

AWS Management Console

Đây có lẽ là phương thức đơn giản và trực quan nhất cho người dùng AWS.

  • Giao diện web trực quan do AWS cung cấp.
  • Cho phép tạo bucket, upload/download object, cấu hình policy, lifecycle, replication.
  • Phù hợp với thao tác thủ công, quản trị nhanh hoặc demo.

Ưu điểm: Dễ dùng, không cần cài đặt.
Nhược điểm: Không phù hợp cho thao tác tự động hoặc xử lý dữ liệu số lượng lớn.

AWS Command Line Interface (CLI)

  • Công cụ dòng lệnh mạnh mẽ để thao tác S3.
  • Cài đặt: AWS CLI
  • Ví dụ:
# Upload file
aws s3 cp file.txt s3://my-bucket/
 
# Download file
aws s3 cp s3://my-bucket/file.txt .
 
# Đồng bộ thư mục
aws s3 sync ./local-folder s3://my-bucket/

AWS SDK

Với phương thức này cần có kiến thức nhất định về lập trình.

  • AWS cung cấp SDK cho nhiều ngôn ngữ: Python (Boto3), JavaScript, Java, Go, .NET…
  • Phù hợp khi tích hợp S3 vào ứng dụng.

Ví dụ về upload 1 file bằng Javascript:

import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
import fs from "fs";
 
const s3 = new S3Client({ region: "us-east-1" });
 
async function uploadFile() {
  await s3.send(new PutObjectCommand({
    Bucket: "my-bucket-name",
    Key: "uploads/myfile.txt",
    Body: fs.createReadStream("./localfile.txt"),
    ContentType: "text/plain",
  }));
  console.log("✅ Upload done");
}
 
uploadFile().catch(console.error);
 

Pre-signed URL là gì

  • URL tạm thời cho phép truy cập một object mà không cần IAM credentials.
  • Dùng để chia sẻ dữ liệu an toàn trong thời gian ngắn.

Ví dụ tạo bằng AWS CLI:

aws s3 presign s3://my-bucket/file.zip --expires-in 600
  • URL này sẽ hết hạn sau số giây bạn chỉ định.

  • Ưu điểm: Chia sẻ an toàn, không cần tài khoản AWS.

  • Nhược điểm: Bị giới hạn thời gian, không thích hợp cho quyền truy cập lâu dài.

S3 Access Points là gì

Amazon S3 Access Points là một tính năng giúp bạn quản lý quyền truy cập dữ liệu S3 ở quy mô lớn bằng cách tạo ra một endpoint riêng cho từng nhóm người dùng hoặc ứng dụng.

Mỗi Access Point có:

  • Tên duy nhất trong account và region
  • Endpoint DNS riêng (ví dụ: my-ap-123456789012.s3-accesspoint.us-east-1.amazonaws.com)
  • Policy riêng độc lập với bucket policy
  • Giới hạn mạng (network restriction): Chỉ qua Internet hoặc chỉ từ một VPC cụ thể
S3 Access Points là gì

Vì sao cần Access Points?

Trước đây, nếu nhiều ứng dụng hoặc nhóm người dùng cùng truy cập một bucket, bạn phải dùng bucket policy phức tạp để phân quyền.
Access Points giúp đơn giản hóa bằng cách:

  • Tách riêng policy cho từng nhóm hoặc ứng dụng
  • Tạo endpoint riêng giúp kiểm soát tốt hơn nguồn truy cập
  • Dễ mở rộng khi số lượng người dùng/ứng dụng tăng

So sánh IAM Role, Bucket Policy và Access Point

Đặc điểmIAM RoleBucket PolicyS3 Access Point
Mục tiêuXác định ai có quyền gìXác định dữ liệu nào được truy cập, từ đâuQuản lý truy cập theo nhóm ứng dụng/người dùng
Cấp áp dụngNgười dùng/Dịch vụBucket/ObjectsEndpoint truy cập dữ liệu
Network restriction❌ Không✅ Có thể✅ Mỗi Access Point cấu hình riêng
Endpoint riêng❌ Không❌ Không✅ Có
Dễ chia nhỏ quyềnTrung bìnhKhó nếu bucket policy phức tạpRất dễ, mỗi nhóm 1 Access Point

Ví dụ thực tế

Công ty có bucket shared-data:

  • Nhóm Data Analytics: Chỉ đọc dữ liệu từ VPC nội bộ
  • Nhóm Mobile App: Chỉ ghi dữ liệu qua internet

Giải pháp:

  • Tạo Access Point analytics-ap → policy chỉ cho phép s3:GetObject từ VPC nội bộ
  • Tạo Access Point mobile-ap → policy chỉ cho phép s3:PutObject qua internet