1. Giới thiệu
Trong quá trình làm các bài Lab thì mình thấy các bạn học viên và thậm chí là giảng viên đôi khi sẽ gặp các lỗi hoặc nhầm lẫn về việc quản lí sercurity đặc biệt là phần định danh (Indentity) và Phân quyền (Access) xem ai hay dịch vụ nào có quyền access như thế nào đến các resource trên AWS.
2. Assume Role
Cùng đưa vào tình huống cụ thể để hiểu rõ khái niêm này.
User A đang đang muốn truy cập vào để xem list các resource trên S3, tuy nhiên do chưa có quyền nên sẽ báo lỗi deny không thể acess.
Lúc này nếu chỉ muốn cấp quyền tạm thời cho user A này truy cập vào S3 thì sẽ sử dụng Assume Role
Các step để thực hiên như sau:
Step1: Tạo role có quyền truy cập S3
Step2: Thiết lập trust policy cho phép user A có thể assume role đã tạo ở step 1
Chú ý là trong trust policy này
Có thể quy định cho được cả service và user khác nữa. Khi allow việc assume role có thể chỉ định thêm xác thực 2 lớp MFA hoặc chỉ định IP có thể thực hiện để đảm bảo sercurity
Step3: Tạo policy cho phép user có thể PassRole và attach policy này cho user A
Sau các bước này user A có thể assume role bằng câu lệnh
Cú pháp:
aws sts assume-role --role-arn --role-session-name
Ví dụ:
Giả sử bạn có ARN của vai trò là arn:aws:iam::123456789012:role/ExampleRole
và session name là MySession
.
aws sts assume-role --role-arn arn:aws:iam::123456789012:role/ExampleRole --role-session-name MySession
Lệnh này sẽ trả về một chuỗi JSON chứa thông tin xác thực tạm thời bao gồm Access Key ID, Secret Access Key, và Session Token.
Sau khi có 3 thông tin này user A có thể sử dụng nó để tạo ra profile dùng AWS CLI để truy cập vào S3
3. Swich Role
Chúng ta cũng đi vào tình huống cụ thể
User 1 role Admin muốn chuyển sang vài trò của user2 role Dev thường để test các setting mà mình đã đã áp dụng
Các step để thực hiện như sau:
Step 1 : Login tài khoản user Admin tạo role Y chỉ có quyền view ko được chỉnh sửa để khi switch qua role Dev sẽ sử dụng role Y này.
Step 2 : Setting trust policy cho user Dev có thể swich qua role Y này
Step 3 : Add permission cho user Dev có quyền asumeRole
Step 4 : Logout Admin và login user Dev
Step 5 : Swich sang role Y của Admin
Với cách này user Dev có thể nhìn thấy tất cả những gì Admin thấy tuy nhiên ko chỉnh sửa được do role Y setting.
Cach này sẽ không cần tạo ra profile
Hy vọng qua bài viết moi người có thể hiểu và áp dụng trong dự án thực tế
Bình luận
Bạn nên vẽ hình minh họa sẽ dễ hiểu hơn