Cấu hình EC2 Instance truy cập S3 bằng IAM Role

84

Cấu hình EC2 Instance truy cập S3 bằng IAM RoleCuongquach.com | Khi mà bạn đọc bài viết này, thì có lẽ ở tình huống thông thường để có thể truy cập dịch vụ AWS S3 từ dịch vụ AWS EC2 thì bạn sẽ cấu hình AWS Cli với Secret Key/Access Key IAM phải không nào ?! Vậy trong bài viết này sẽ mang đến cho bạn một cách thức khác không cần sử dụng Secret Key/Access Key bạn vẫn có thể truy cập dịch vụ S3 từ EC2 Instance với AWS CLI. Đó là ‘IAM Role‘ !

ec2-instance-truy-cap-s3-bang-iam-role

IAM Role cho EC2 truy cập S3

Identity and Access Management (IAM) rất là quyền năng khi kiểm soát được toàn bộ quyền hạn truy cập đối với tài nguyên dịch vụ AWS. Cơ bản như “permission” (phân quyền) sẽ hiểu như thế này :

Y” ở đây thường là tài nguyên dịch vụ AWS. Còn “X” thường là một user cụ thể. Bạn có thể khởi tạo nhiều user trong một tài khoản AWS, mỗi user sẽ có một ID riêng, mật khẩu và quyền hạn,… Đó gần như là hình thức quản lý quyền truy cập dịch vụ AWS cơ bản.

Nhưng ngoài việc coi “X” là một user. Bạn cũng có thể cấu hình để coi “X” là một đối tượng dịch vụ tài nguyên khác của AWS. Ví dụ :

  • X” : là các máy chủ AWS EC2 Instance
  • Y” : là các S3 bucket

Với “X” bạn cần lưu ý là từ các máy chủ EC2 Instance sẽ có thể truy cập dịch vụ “Y“. Lúc này khi chúng ta sử dụng dịch vụ “X” trong mạng Network AWS thì AWS sẽ tự động whitelist quyền truy cập đến đối tượng dịch vụ Y.

Với “Y” bạn có thể phân quyền cụ thể như “read-only access S3” hoặc “read-only access với S3 bucket cụ thể” đối với đối tượng “X“. Trong bài viết này chúng ta sẽ dùng quyền đầy đủ để tương tác dịch vụ AWS S3, để hiểu quy trình thiết lập cấu hình.

1. Khởi tạo IAM Role truy cập S3 cho EC2

Chọn trang quản lý “IAM” trong “AWS Console“.

truy cập iam
truy cập iam

Sau đó chọn mục “Role” trong IAM Role và chọn “Create Role” để khởi tạo Role mới.

tạo iam role
tạo iam role

Kế đến bạn sẽ chọn dịch vụ “X” (dịch vụ mà bạn sẽ phân quyền hạn để có thể truy cập dịch vụ “Y“). AWS gọi đó là ‘trusted entity‘, mường tượng là đối tượng đáng tin cậy. Chúng ta sẽ chọn dịch vụ “EC2” của chúng ta.

chọn djch vụ ec2
chọn djch vụ ec2

Kế đến chúng ta sẽ chọn dịch vụ “Y“, ở đây chính là dịch vụ lưu trữ S3 và hãy chọn phân quyền policy “AmazonS3FullAccess” giúp bạn có toàn quyền tương tác dịch vụ S3 từ EC2.

chọn dịch vụ Y là S3
chọn dịch vụ Y là S3

Kế đến bạn đặt Tag cho Role mới của bạn, có thể là tên đại diện gợi nhớ hoặc bất cứ thông tin gì bạn muốn đính kèm.

tạo tag cho iam role
tạo tag cho iam role

Đoạn này review thông tin lần cuối về IAM Role bạn chuẩn bị tạo, role giúp EC2 truy cập dịch vụ AWS S3.

2. Gán Role vào máy chủ EC2

2.1 Gán role vào máy chủ EC2 đang chạy

Giờ chúng ta cần làm là gì ? Chúng ta sẽ gán quyền hạn (IAM role) mà chúng ta vừa khởi tạo giúp dịch vụ EC2 truy cập được dịch vụ S3 từ nội bộ mạng VPC AWS.

Hãy chọn máy chủ dịch vụ EC2 và chọn “Actions” > “Instance Settings” > “Attach/Replace IAM Role“.

gán iam role vào ec2
gán iam role vào ec2

Chọn tên IAM Role mà ta đã tạo và đặt tên ở trên.

Cuối cùng bạn đã gán IAM Role thành công vào dịch vụ máy chủ EC2 của mình.

2.2 Gán role khi tạo máy chủ EC2 mới

Bạn cũng có thể gán quyền hạn IAM Role truy cập dịch vụ AWS S3 khi khởi tạo mới một EC2 Instance như hình bên dưới.

2.3 Kiểm tra truy cập S3 từ EC2 Instance

Giờ thì bạn chỉ cần cài đặt AWS CLI nếu EC2 Instance của bạn chưa có (Xem thêm: Hướng dẫn cài đặt AWS CLI trên Linux), rồi bỏ qua phần cấu hình Access Key/Secret Key.

Sau đó bạn kiểm tra thử nội dung cú pháp lệnh liên quan đến dịch vụ S3 là xong. Nếu hoạt động tốt là ok xong rồi đấy.

Nguồn: https://cuongquach.com/

LEAVE A REPLY