Một vài Tips nhỏ với AWS CLI

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à:

  1. 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.
  2. 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 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