AWS CLI: Hướng dẫn cấu hình & chuyển đổi nhiều tài khoản
Khi làm việc với hạ tầng Cloud, một System Engineer hay DevOps thường phải quản lý song song nhiều dự án hoặc môi trường khác nhau (Dev, Staging, Production). Nếu cứ mỗi lần đổi dự án lại phải chạy lệnh aws configure để ghi đè Access Key thì cực kỳ mất thời gian và dễ xảy ra sai sót.
Giải pháp tối ưu nhất lúc này là sử dụng tính năng Named Profiles của AWS CLI. Trong bài viết này, mình sẽ hướng dẫn các bạn cách khai báo, quản lý và thiết lập phím tắt (alias) để chuyển đổi giữa các tài khoản AWS chỉ trong 1 nốt nhạc.
1. Named Profiles trong AWS CLI là gì?
Mặc định, khi bạn gõ aws configure, hệ thống sẽ lưu thông tin xác thực vào một profile có tên là default. Tuy nhiên, AWS cho phép bạn tạo ra vô số bộ thông tin khác nhau, đặt cho chúng những cái tên riêng biệt (Named Profiles) và lưu trữ tách biệt hoàn toàn.
Toàn bộ thông tin này được lưu tại hai file ẩn trên máy tính:
-
~/.aws/credentials: Chứa Access Key và Secret Key. -
~/.aws/config: Chứa thông tin về Region và định dạng Output.
2. Cách khai báo một tài khoản AWS mới
Để thêm một tài khoản mới mà không làm ảnh hưởng đến tài khoản default đang có, bạn chỉ cần thêm cờ --profile kèm theo tên bạn muốn đặt (ví dụ: du-an-a, hieuxtobi...).
Mở Terminal và nhập lệnh:
aws configure --profile hieuxtobi
Hệ thống sẽ yêu cầu bạn nhập 4 thông tin quen thuộc:
-
AWS Access Key ID:
AKIA...(Lấy từ IAM AWS) -
AWS Secret Access Key:
...(Lấy từ IAM AWS) -
Default region name: Nhập region bạn muốn (vd:
ap-southeast-1cho cụm Singapore để tối ưu độ trễ). -
Default output format: Khuyên dùng
json.
3. Cách chuyển đổi và sử dụng các tài khoản
Sau khi đã có nhiều profile, bạn có 2 cách để ra lệnh cho AWS CLI biết nó cần dùng tài khoản nào.
Cách 1: Gắn cờ --profile vào từng câu lệnh (Dùng tạm thời)
Nếu bạn chỉ thỉnh thoảng cần gõ một lệnh nhanh, hãy gắn tên profile vào cuối lệnh.
aws s3 ls --profile hieuxtobi
Cách 2: Sử dụng biến môi trường (Khuyên dùng)
Nếu bạn đang làm việc liên tục trên một dự án (chạy Terraform, đẩy code CI/CD), việc gõ cờ liên tục rất phiền. Hãy xuất biến môi trường AWS_PROFILE:
export AWS_PROFILE=hieuxtobi
Sau lệnh này, mọi câu lệnh aws chạy trên cửa sổ Terminal hiện tại sẽ mặc định dùng quyền của profile hieuxtobi. Để quay lại tài khoản ban đầu, bạn chỉ cần chạy export AWS_PROFILE=default.
4. Kiểm tra tài khoản đang hoạt động
"Làm sao biết mình đang ở tài khoản nào để không lỡ tay xóa nhầm tài nguyên?" Đây là câu lệnh sống còn bạn cần nhớ:
aws sts get-caller-identity
Kết quả trả về sẽ in ra chính xác Account ID và tên user IAM mà Terminal đang sử dụng.
5. Mẹo Pro: Tạo Alias chuyển tài khoản thần tốc trên Mac/Linux
Để thao tác trông "nguy hiểm" và nhanh gọn hơn, mình thường cấu hình các lệnh viết tắt (alias) trong file ~/.zshrc (hoặc ~/.bashrc).
Mở file cấu hình của bạn:
nano ~/.zshrc
Thêm đoạn script sau vào cuối file:
# ----- Quản lý AWS CLI -----
alias awshieuxtobi="export AWS_PROFILE=hieuxtobi && echo '🚀 Đã chuyển sang profile: hieuxtobi'"
alias awstobi="export AWS_PROFILE=default && echo '🏠 Đã quay về profile: default'"
alias awswho="aws sts get-caller-identity"
Lưu lại và chạy lệnh source ~/.zshrc để cập nhật. Từ bây giờ:
-
Gõ
awshieuxtobi➡️ Chuyển sang dự án mới. -
Gõ
awstobi➡️ Về lại tài khoản mặc định. -
Gõ
awswho➡️ Kiểm tra danh tính ngay lập tức.

Lời kết
Việc phân chia rạch ròi các Named Profiles không chỉ giúp bạn làm việc hiệu quả hơn mà còn là một best-practice về bảo mật để tránh rò rỉ hoặc thao tác nhầm trên hạ tầng Production.