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.



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 User và Session 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.