AWS STS là gì? Cùng tìm hiểu về AWS STS:AssumeRole và Federation

AWS Security Token Service (STS) là web service cho phép người dùng gửi request tạm thời và cấp quyền một cách giới hạn cho IAM user hoặc cho người dùng liên kết (federated user) xác thực từ các hệ thống chứng thực khác.

IAM user sử dụng Role để bổ sung quyền truy cập tài nguyên
Người dùng liên kết sử dụng SAML token để truy cập tài nguyên
Người dùng liên kết sử dụng xác thực qua AD để truy cập tài nguyên

Federated user

User, System, hoặc application mà không được chứng thực để access đến AWS service, nhưng vẫn muốn access thông qua temporary. Federated sẽ cung cấp AWS Security Token Service (STS) APIs cho loại truy cập này.

STS:Federation

Trả về thông tin xác thực bảo mật tạm thời cho người dùng liên kết bao gồm:

  • Access key
  • Secret key
  • Security token

STS:AssumeRole

Trả về thông tin xác thực bảo mật tạm thời cho người dùng liên kết với một bước bổ sung thêm là tạo AWS role và gán kèm policy.

Khác biệt giữa 02 phương thức

  • Với AssumeRole, khoảng thời gian được thiết lập mặc đinh là15 phút và có thể thay đổi từ 01 đến 12 tiếng. Ngược lại getFederationToken có hiệu lực từ 15 phút đến 36 tiếng.
  • AssumeRole không thể gọi được GetFederationTokenhay GetSessionToken
  • GetFederation Token không thể gọi được IAM API một cách trực tiếp và không gọi được AWS STS API trừ GetCallerIdentity
  • Role session do AssumeRole định nghĩa có quyền xác định giao thoa giữa  IAM User, IAM Role và Session Policy. Trong khi đó quyền định nghĩa bởi GetFederationToken xác định bởi IAM UserSession Policy.

Lựa chọn nào tốt hơn?

Tất cả phụ thuộc vào tiêu chí cấp phép, trong trường hợp bạn muốn duy trì quyền chỉ trong tổ chức của mình, GetFederationToken là lựa chọn tốt hơn. Vì các quyền cơ sở được lấy từ IAM user đưa ra yêu cầu và bạn cần bao hàm toàn bộ người dùng được ủy quyền. Người dùng IAM này sẽ có sự kết hợp của tất cả các quyền của người dùng được liên kết.

Nếu bạn muốn duy trì các quyền trong AWS, hãy chọn AssumeRole, vì các quyền cơ sở cho thông tin xác thực tạm thời sẽ được lấy từ chính sách trên role. Giống như yêu cầu GetFederationToken, bạn có thể tùy ý thu hẹp quyền bằng cách đính kèm chính sách với yêu cầu. Sử dụng phương pháp này, thông tin đăng nhập người dùng IAM được sử dụng bởi máy chủ proxy của bạn chỉ yêu cầu khả năng gọi STS: AssumeRole. Có thêm một bước nữa để tạo ra một IAM role mới và đính kèm chính sách ủy thác bằng cách sử dụng AssumeRole, đây không phải là trường hợp với phương pháp dựa trên GetFederationToken.

Leave a Reply

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