Trong khi sử dụng với AWS CLI, có một số tips nhỏ mình viết ra đây để tổng hợp và chia sẻ với anh em. Hy vọng sẽ giúp anh em thuận lợi, an toàn khi sử dụng aws.
1. Cách dùng AWS CLI với nhiều profile
Vấn đề
Bạn có 2 account.
Bạn muốn setting AWS CLI để access vào các account trên.
Giải quyết
Bạn cần setting để dùng CLI với nhiều profile
Mặc định
Khi bạn setting CLI thì ở 2 file .aws/config và ~/.aws/credentials sẽ có nội dung kiểu thế này
~/.aws/credentials
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
.aws/config
[default]
region=us-west-2
output=json
Khi thực hiện command thì cú pháp kiểu thế này
aws s3api list-buckets
Để thêm nhiều profile các bạn cần thêm vào nội dung 2 file bên trên nhiều profile nữa, ví dụ thế này
~/.aws/credentials
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
.aws/config
[default]
region=us-west-2
output=json
[profile user1]
region=us-east-1
output=text
Khi thực hiện command thì cú pháp kiểu thế này
aws s3api list-buckets --profile user1
2. Cách dùng AWS CLI nhiều profile tránh bị nhầm lẫn môi trường
Việc sử dụng nhiều tài khoản AWS trên browser và trên AWS CLI đều rất dễ bị nhầm lẫn, xóa nhầm, tạo nhầm, sửa nhầm đều có một cái kết đau lòng, chỉ khác nhau ở mức độ đau lòng mà thôi.
Như ví dụ phía trên nếu có nhiều tài khoản thì khi không có --profile thì sẽ chạy về profile default. Một cách đơn giản đến bất ngờ để tránh việc này xảy ra là:
- xóa default profile đi
khi xóa default đi thì gõ CLI không truyền profile vào sẽ báo lỗi và không thực hiện được. Bắt buộc phải truyền profile vào mới thực hiện được command. Việc này tuy hơi mất công một chút nhưng mà nó giúp mình ý thức được việc mình đang làm, chậm tý nhưng chắc, còn hơn là lại phải đi xin lỗi. - Bổ xung cho ý trên là nên đặt tên profile cho dễ nhớ và dễ phân biệt môi trường.
Bổ xung: khi không nhớ profile là gì thì dùng command sau để list.
aws configure list-profiles
3. Cách dùng AWS CLI với switch role
Vấn đề
Khách có 2 account: accountA và accountB.
Khách cấp cho bạn user ở accountA nhưng không cấp cho bạn user ở accountB. Khách cấp cho bạn switchRole để bạn từ accountA access vào accountB .
Khách muốn bạn thao tác với accountB và bạn nhận ra không phải việc gì bạn cũng có thể dùng console trên browser để thao tác. Bạn nhận ra sự cần thiết của việc dùng AWS CLI để access vào accountB .
Giải quyết (setting switch role với AWS CLI)
Bạn cần setting để dùng CLI thao tác với accountB thông qua switchRole
Giả sử trước đó bạn đã dùng CLI bình thường ở accountA rồi.
vào file configure tại .aws/config và edit nó. (user1 là user ở accountA , role là switchrole ở accountB )
[profile user1]
role_arn = arn:aws:iam::123456789012:role/AccountBAccessRole
source_profile = user1
Khi thực hiện command thì cú pháp kiểu thế này
aws s3api list-buckets --profile user1
Tổng kết
Trên đây mình đã giới thiệu với anh em một số mẹo nhỏ để làm việc tiện lợi và an toàn với AWS CLI, hy vọng sẽ giúp anh em phần nào trong công việc của mình. Chào thân ái.
Leave a Reply