Việc lấy thông tin xác thực để phát triển cục bộ với AWS giờ đây đơn giản và an toàn hơn rất nhiều. AWS vừa giới thiệu lệnh mới trong AWS Command Line Interface (AWS CLI) mang tên ‘aws login’, cho phép bạn bắt đầu xây dựng ngay sau khi đăng ký AWS mà không cần tạo hoặc quản lý các access key dài hạn. Bạn chỉ cần sử dụng chính phương thức đăng nhập vẫn dùng cho AWS Management Console.
Hãy cùng OSAM tìm hiểu cách lấy thông tin xác thực tạm thời cho máy trạm của mình để sử dụng với AWS CLI, AWS Software Development Kits (AWS SDKs), cũng như các công cụ hoặc ứng dụng được xây dựng dựa trên chúng thông qua lệnh ‘𝚊𝚠𝚜 𝚕𝚘𝚐𝚒𝚗’ mới.
AWS CLI là gì?
AWS Command Line Interface (CLI) là công cụ cho phép người dùng quản lý các dịch vụ AWS trực tiếp từ dòng lệnh, mang lại nhiều tùy chọn và mức độ linh hoạt cao hơn so với giao diện Web Console. Công cụ này giúp đơn giản hóa quá trình tương tác với các dịch vụ như EC2, Amazon S3, Amazon EBS thông qua một cấu trúc lệnh thống nhất.
AWS CLI cũng hỗ trợ tự động hóa, scripting và tích hợp với các môi trường phát triển lẫn vận hành (DevOps), khiến nó trở thành một công cụ mạnh mẽ và đa dụng cho mọi người dùng AWS.
Bắt đầu với quyền truy cập lập trình vào AWS
Bạn có thể sử dụng lệnh aws login theo phương thức đăng nhập mà bạn đã dùng cho AWS Management Console. Dưới đây là hai kịch bản phổ biến.
Sử dụng thông tin xác thực IAM (Root hoặc IAM User)
Để lấy thông tin xác thực lập trình bằng username và password của Root hoặc IAM User:
- Cài đặt AWS CLI phiên bản mới nhất (v2.32.0 trở lên).
- Chạy lệnh: ‘𝚊𝚠𝚜 𝚕𝚘𝚐𝚒𝚗’
- Nếu bạn chưa thiết lập Region mặc định, CLI sẽ yêu cầu bạn chọn Region (ví dụ: us-east-2, eu-central-1).

- Trình duyệt mặc định của bạn sẽ tự động mở. Tại đây:
- Nếu bạn đã đăng nhập Console, bạn sẽ thấy màn hình “Continue with an active session”.

- Nếu chưa đăng nhập, bạn sẽ thấy màn hình tùy chọn đăng nhập. Chọn “Continue with Root or IAM user” và đăng nhập.

Khi hoàn tất, bạn có thể chạy lệnh: ‘𝚊𝚠𝚜 𝚜𝚝𝚜 𝚐𝚎𝚝-𝚌𝚊𝚕𝚕𝚎𝚛-𝚒𝚍𝚎𝚗𝚝𝚒𝚝𝚢’ để xác minh danh tính hiện tại.

Sử dụng đăng nhập liên kết
Áp dụng khi doanh nghiệp của bạn dùng nhà cung cấp danh tính (IdP) như Okta, Azure AD, Google Workspace, AWS IAM Identity Center,…
Làm theo các bước 1 – 4 của kịch bản trước, sau đó:
- Nếu bạn đã đăng nhập Console qua federated sign-in, trình duyệt sẽ hiển thị danh sách các phiên IAM Role bạn đang sử dụng. Bạn có thể chọn một phiên đang hoạt động (hỗ trợ tối đa 5 phiên song song).

- Nếu bạn chưa đăng nhập, hãy đăng nhập bằng IdP của bạn trong một tab khác → quay lại tab xác thực và nhấn Refresh để tải danh sách phiên.
Sau khi hoàn tất quy trình nhập lệnh ‘aws login’, quay lại CLI để tiếp tục sử dụng.

Lưu ý: Bất kể bạn đăng nhập vào Console theo phương thức nào, các thông tin xác thực tạm thời được tạo ra bởi lệnh ‘𝚊𝚠𝚜 𝚕𝚘𝚐𝚒𝚗’ sẽ được AWS CLI, AWS Tools for PowerShell và AWS SDKs tự động xoay vòng mỗi 15 phút. Những credentials này có hiệu lực cho đến khi đạt giới hạn thời gian phiên được cấu hình cho IAM principal, tối đa là 12 giờ. Khi phiên hết hạn, bạn sẽ được yêu cầu đăng nhập lại.
Sử dụng AWS từ các công cụ phát triển cục bộ
Lệnh ‘𝚊𝚠𝚜 𝚕𝚘𝚐𝚒𝚗’ hỗ trợ chuyển đổi giữa nhiều tài khoản và vai trò (role) AWS thông qua các profile. Bạn có thể cấu hình một profile bằng câu lệnh aws login –profile <PROFILE_NAME> và chạy các lệnh AWS bằng profile đó thông qua: 𝚊𝚠𝚜 𝚕𝚘𝚐𝚒𝚗 –𝚙𝚛𝚘𝚏𝚒𝚕𝚎 <𝙿𝚁𝙾𝙵𝙸𝙻𝙴_𝙽𝙰𝙼𝙴>.
Các các thông tin xác thực tạm thời được cấp bởi ‘aws login’ không chỉ hoạt động với AWS CLI – bạn còn có thể sử dụng chúng với các công cụ khác như:
- AWS SDKs: Nếu bạn phát triển ứng dụng bằng AWS SDKs, các client SDK có thể sử dụng những thông tin xác thực tạm thời này để xác thực với AWS.
- AWS Tools for PowerShell: Sử dụng lệnh Invoke-AWSLogin để đăng nhập và nhận temporary credentials.
- Máy chủ phát triển từ xa: Dùng aws login –remote trên máy chủ không có trình duyệt; lệnh này sẽ nhận thông tin xác thực tạm thời được chuyển từ thiết bị của bạn — nơi có khả năng đăng nhập bằng trình duyệt.
- Các phiên bản AWS SDK cũ không hỗ trợ cơ chế “console credentials provider” mới: Những ứng dụng sử dụng SDK cũ vẫn có thể dùng credentials do aws login cung cấp bằng cách cấu hình credential_process trong AWS CLI.
Kiểm soát quyền truy cập vào ‘aws login’ bằng IAM Policies
Lệnh ‘aws login’ được kiểm soát bởi hai IAM action: signin:AuthorizeOAuth2Access và signin:CreateOAuth2Token. Bạn có thể sử dụng managed policy SignInLocalDevelopmentAccess, hoặc thêm hai action này vào chính sách IAM của mình để cho phép IAM user và IAM role có quyền truy cập console sử dụng tính năng này.
Đối với khách hàng sử dụng AWS Organizations và muốn kiểm soát việc sử dụng tính năng đăng nhập này trên các tài khoản thành viên, bạn có thể từ chối hai action trên thông qua Service Control Policies (SCPs). Hai IAM action này và các resource liên quan đều có thể được áp dụng trong mọi chính sách IAM phù hợp.
AWS khuyến nghị sử dụng quản lý quyền truy cập root tập trung trong AWS Organizations để loại bỏ hoàn toàn root credentials dài hạn khỏi các tài khoản thành viên. Khi bật tính năng quản lý root tập trung, đội ngũ bảo mật có thể thực hiện các tác vụ đặc quyền thông qua phiên root ngắn hạn, giới hạn theo từng tác vụ, từ tài khoản quản lý trung tâm.
Sau khi bạn bật tính năng này và xóa root credentials khỏi các tài khoản thành viên, việc đăng nhập root trực tiếp vào tài khoản thành viên sẽ bị chặn. Đồng thời ngăn chặn khả năng sử dụng aws login để truy cập lập trình bằng root credentials.
Đối với developer vốn đang sử dụng root credentials hoặc IAM user, aws login cung cấp temporary credentials phục vụ phát triển — một giải pháp an toàn hơn nhiều so với việc dùng long-term static access keys.
Ghi log và bảo mật của quyền truy cập lập trình qua ‘aws login’
AWS Sign-In ghi lại mọi hoạt động liên quan đến aws login trong AWS CloudTrail, bao gồm 2 sự kiện mới: AuthorizeOAuth2Access và CreateOAuth2Token.
Cả hai đều xuất hiện trong Region nơi người dùng đăng nhập.
Cơ chế bảo mật: Lệnh ‘aws login’ sử dụng luồng mã ủy quyền OAuth 2.0 kết hợp với PKCE (Proof Key for Code Exchange) để bảo vệ chống lại các cuộc tấn công đánh cắp mã ủy quyền.
Cơ chế này mang lại một giải pháp an toàn hơn so với việc thiết lập access key cho IAM user, giúp bạn bắt đầu phát triển trên AWS mà không cần dùng đến khóa truy cập dài hạn.
Kết luận
Tính năng đăng nhập cho phát triển cục bộ trên AWS là một cải tiến bảo mật theo mặc định giúp khách hàng loại bỏ việc sử dụng thông tin xác thực dài hạn khi cần truy cập AWS theo cách lập trình. Với ‘aws login’, bạn có thể bắt đầu xây dựng ngay lập tức chỉ bằng cách sử dụng chính thông tin đăng nhập bạn dùng cho AWS Management Console, không cần tạo access key thủ công.
Tính năng này hiện đã có mặt trên toàn bộ các AWS commercial Regions (ngoại trừ China và GovCloud) và hoàn toàn miễn phí cho tất cả khách hàng.
Theo dõi OSAM để đọc thêm những bài viết công nghệ mới từ AWS!

