Hướng dẫn truy cập S3 bằng AWS IAM Role

Share and Enjoy !

Shares

Mở đầu

Hôm nay mình chia sẻ đến mọi người bài lab cấu hình truy cập đến S3 bucket từ EC2: chỉ sử dụng IAM role gán cho EC2 thay vì Acess Key của IAM User – đây là phương pháp được dùng nhiều trong thực tế dựa theo best practice của AWS để tăng tính bảo mật.

Lab steps

Task 1: Tạo S3 bucket

1. Ví dụ trong nội dung bài viết này mình sẽ tạo bucket: hiepsharing-saa-b-1707. Do cũng đã chia sẻ nhiều bài viết về S3 rồi nên mình sẽ bỏ qua chi tiết  các bước để khởi tạo

2. Sau khi khởi tạo thành công, anh em quay lại giao diện Amazon S3 > Buckets sẽ thấy bucket tương tự minh họa bên dưới:

3. Anh em có thể tải một vài file lên bucket để cuối lab sử dụng.

Task 2: Tạo EC2 instance

1. Từ giao diện AWS Managenment Console (sau khi đăng nhập) trên region ap-southeast-1, bạn truy cập Compute >> EC2 menu Services

2. Click “Launch instance” trên menu Instance để bắt đầu quá trình khởi tạo EC2

3. Đặt tên cho EC2 trong textbox Name

4. Trong QuickStart: Chọn Ubuntu (hoặc anh em thích OS nào thì chọn tùy ý: CentOS, Amazon Linux,…)

5. Tại thời điểm viết bài này, mình chọn luôn Image – Amazon Linux 2023 AMI (vì nó có sẵn luôn AWS CLI trong OS, đỡ phải cài thêm 😆 )

6. Tiếp theo, chọn t2.micro cho mục Instance Type

7. Với Key pair: Chọn “Create a new key pair” để khởi tạo cặp private / public key cho EC2 (dùng để kết nối ssh về sau).

Lần lượt nhập Key pair name (đặt tên tùy ý anh em), Key pair type và Private key file format tương tự như hình bên dưới, sau đó nhấn “Create key pair

Lưu ýSau khi hệ thống tạo key pair thành công, bạn tiến hành tải về và lưu trữ public key.

6. Tiếp theo, nhấn Edit trong tab Network Settings để tùy biến network cho EC2 instance:

  • Auto-assign public IP: Enable
  • Select “Create new Security group
  • Security group name: nhập tên tùy ý mọi người
  • Description: nhập chuỗi mô tả về chức năng của security group

Trong nội dung bài lab này, mình cần cho phép truy cập service: SSH (22) từ mọi source IP, lần lượt thêm inbound rule cho security group như sau:

Thêm SSH rule:

  • Choose Type: SSH
  • Source: Any where

7. Kế tiếp, chọn loại gp2, giữ dung lượng 8 GB trong phần cấu hình EBS storage cho instance.

8. Các tham số khác giữ nguyên như mặc định sau đó nhấn “Launch instance” để kích hoạt tiến trình khởi tạo server.

 

9. Quay lại menu Instances trên thanh Navigation để tìm instance chúng ta vừa khởi tạo ở bước trên. Đợi vài phút để tiến trình tạo EC2 hoàn tất, sẽ thấy trạng thái running như bên dưới.

Task 3: Tạo và gán IAM role vào EC2

Mặc định, EC2 instance sau khi khởi tạo sẽ không thể truy cập đến S3 bucket. Do đó trong phần này, chúng ta sẽ tạo IAM role có quyền trên S3 và gán nó vào EC2.

1. Từ giao diện AWS Managenment Console , tìm và truy cập vào IAM service >> Roles >> Create role

2. Tại giao diện Select trusted entity, lần lượt tick chọn những option sau:

  • Trusted entity type: AWS Service
  • Use case: EC2

Mục đích của bước này là chọn loại service sẽ được phép trusted trên role, như trong bài lab này ta cần cho phép EC2 sử dụng role để truy cập đến S3.

Nhấn Next để chuyển đến bước tiếp theo.

3. Đến đây, anh em phải tạo và gán policy (những action cụ thể trên S3) vào role này. AWS đã cung cấp sẵn bộ thư viện policy đồ sộ nên anh em có thể search với từ “amazons3“, tick chọn vào polixy tương ứng và nhấn Next.

Lưu ý: Vì đây là lab nên mình sử dụng luôn policy AmazonS3FullAccess để dễ test và hình dung. Tuy nhiên, không khuyến nghị dùng nó cho môi trường Prod của mọi người nhé, thay vào đó anh em nên tự tạo policy mới và giới hạn quyền ít nhất có thể.

4. Tới đây, chúng ta đặt tên cho role, review lại các thiết lập 1 lượt rồi nhấn “Create role” để hoàn tất quá trình khởi tạo IAM role.

5. Sau khi quá trình khởi tạo IAM role hoàn tất, anh em truy cập giao diện chi tiết của EC2 instance (MyEC2Server), chọn: Actions >> Security >> Modify IAM role

6. Trên giao diện Modify IAM role, tìm và chọn đến role anh em đã khởi tạo ở #Task 3, nhấn Update IAM role để lưu thay đổi.

Task 4: Kiểm tra truy cập S3 bucket từ EC2

Đến đây, coi như việc tạo và gán IAM role cho EC2 đã hoàn thành, giờ anh em chỉ việc ssh vào instance và sử dụng AWL CLI để kiểm tra xem có truy cập được vào S3 bucket không nhé.

  • List danh sách object trong S3 bucket:

aws s3 ls s3://hiepsharing-saa-b-1707

  • Upload file lên bucket:

aws s3 cp test.txt s3://hiepsharing-saa-b-1707/

 

Lời kết

Như vậy là mình đã hoàn thành bài lab hướng dẫn cấu hình truy cập S3 bucket bằng IAM role, hy vọng  nó sẽ giúp được bạn trong các dự án thực tế.

Nếu có bất kỳ thắc mắc, góp ý về nội dung bài viết hoặc anh em có thêm những tip hay khác có thể chia sẻ dưới phần bình luận nhé.

Trong thời gian tới, mình sẽ cố gắng bổ sung nhiều lab khác về chủ để S3 vào serie SAA Hands-on Labs, anh em nhớ theo dõi nhé.

Share and Enjoy !

Shares
Giới thiệu Hiệp Phạm 135 bài viết
Hiệp hiện đang là thành viên nhóm tác giả của HIEPSHARING.COM. Thích tìm hiểu, nghiên cứu Ethical Hacking, SysAdmin, DevOps và những công nghệ mới. Phương châm sống của mình: "Chỉ cần bản thân không bỏ cuộc, chậm chút cũng không sao."

Hãy bình luận đầu tiên

Để lại một phản hồi

Thư điện tử của bạn sẽ không được hiện thị công khai.


*