Cách dùng AWS CLI với account đã bật MFA

BBMCode đã đăng vào lúc 10:11:30 20/11/2023 | đọc khoảng 3 phút, có 484 từ

Trong quá trình làm dự án, một trong những câu hỏi mình hay gặp nhất là khi AWS account đã bật MFA rồi thì làm sao dùng được bên AWS CLI?

 

 

  • Tình trạng lỗi: Sau khi bật MFA, vào AWS CLI, thao tác bất kỳ command nào đều bị báo error Access Denied (403)

 

Cách config lại như sau:

 

  • Gọi đến dịch vụ STS để assume role

Cú pháp:

aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

 

Trong đó, arn-of-the-mfa-device, chúng ta lấy như sau:

 

- Vào ASW console, từ tên account -> chọn Security credentials

 

Kéo xuống, tìm mục Multi-factor authenticator (MFA), tìm chuỗi dạng như trong hình arm:...

 

 

code-form-token chúng ta lấy trong app chứng thực (như Authy) trong điện thoại

 

Như vậy, command hoàn chỉnh sẽ như vầy (ví dụ)

aws sts get-session-token --serial-number arn:aws:iam::209712270234:mfa/developer-01-iphone --token-code 927629

 

  • Vào AWS CLI, chạy command đó

 

AWS sẽ trả về cho chúng ta một temporary security credential. Credential tạm thời này có thể duy trì session đến thời gian có ghi rõ trong "expiration".

 

Lúc làm việc thực tế, các bạn chỉ cần lưu format câu lệnh trên lại. Mỗi lần cần login thì thay đổi code thôi. Cũng không bất tiện lắm.

 

Bước tiếp theo, chúng ta sẽ config để dùng được Access key trong credential trên.

 

- Vào tạo thêm 1 profile trong credential. Với các thông tin access key, secret access key, session token ở trên 

cd ~/.aws
vi credentials

Như hình trên, ví dụ là mình tạo thêm profile tên develop-01

 

- Từ bây giờ, khi dùng các command trong AWS CLI, bạn chỉ cần chỉ định profile là develop-01 là xong.

ví dụ: aws s3 ls --profile develop-01

 

Chúc các bạn thành công!