Lab Introduction
- AWS experience: Beginner
- Time to complete: 20 minutes
- AWS Region: US East (N. Virginia) us-east-1
- Cost to complete: Free
- Services used: AWS Organizations, AWS IAM Identity Center
What is IAM Identity Center?
- Service này kế thừa AWS Single Sign-On và là dịch vụ quản lý tập trung từng người dùng trong môi trường có nhiều tài khoản được vận hành trong AWS organization, giúp bạn dễ dàng đăng nhập vào từng tài khoản.
- Là service được khuyên dùng for managing human user access to AWS resources
- Cho phép bạn kết nối không chỉ các aws account, mà còn Bussiness Cloud App hoặc Custom SAML2.0-enable Apps
- IAM Identity Center kết hợp với MS AD để lưu và retrieve thông tin user
Architecture Diagram
Kịch bản DEMO bài lab này giả định bạn có 2 môi trường: develop và prodution, developer có toàn quyền trên môi trường develop nhưng chỉ có quyền View trên môi trường production.
Task Details
- Create AWS Member Account in AWS Organizations
- Enable IAM Identity Center
- Setting Multi-factor authentication
- Create group and user
- Login using IAM Identity Center
- Create Permission sets
- Liên kết AWS Account và Permission sets
- Access to AWS Member Account
1. Create AWS Member Account
Chúng ta tiến hành tạo mới 2 AWS Account trong AWS Organizations, mục đích là mỗi account sẽ chạy các workload tương ứng của từng môi trường
Tại Console AWS Organizations -> Add an AWS Account
AWS account name: cmp-production
Email address of the account's owner: Email chính của mình là admin@cloudmentor.pro Tuy nhiên mỗi account lại cần 1 email riêng, nếu chúng ta không có email khác với root email thì TIP là sử dụng format sau để đặt cho email: Ví dụ: admin+[something]
@gmail.com. Các thông báo về mail này sẽ vào inbox của email chính. Trong trường hợp này mình đặt là admin+production@cloudmentor.pro
IAM role name: OrganizationAccountAccessRole
Tương tự như vậy chúng ta tiếp tục AWS Account cho Develop
Một thông báo đến email về việc tạo account hoàn thành.
OK! Vậy là chúng ta đã tạo xong 2 AWS Account
2. Enable IAM Identity Center
Để bắt đầu sử dụng AM Identity Center, chúng ta sẽ Enable chức năng này
Tại Console AM Identity Center -> select Enable.
3. Setting Multi-factor authentication
Ở bước này chúng ta tiến hành cài đặt Multi-factor authentication
Tại Console IAM Identity Center -> Settings -> Tab Authentication
Setting bên dưới sẽ yêu cầu tất cả các user trong IAM Identity Center phải thiết lập MFA
4. Create group and user
Group và user tạo ở IAM Identity Center khác với Group và user bạn đã tạo trước đây ở IAM Service
- Group và user ở IAM: Chỉ cho 1 AWS Account
- Group và user tạo ở IAM Identity Center: sử dụng cho multi AWS Account, quản lý access đến các AWS Account 1 cách tập trung
Tạo group:
- DEVELOPER (sử dụng trong DEMO này)
- ADMIN (giả định)
Cách tạo group cũng vô cùng đơn giản, sau khi tạo xong thì được như bên dưới:
Tạo user:
Chúng ta có thể tạo nhiều user, trong DEMO này mình chỉ tạo 1 user: cmp-phong
Lưu ý phần điền email bạn cũng làm như Tip mình hướng dẫn phía trên, sử dụng email gốc nhưng thêm +something
vào. Hoặc các bạn có email khác thì dùng email chính xác cũng OK
Next
Next
Review and Add user
5. Login using IAM Identity Center
Một email từ AWS gửi về để bạn chấp nhận invite (trong dự án thì mình sẽ tạo user cho devloper và email này sẽ gửi đến develop, phía trên mình DEMO nên dùng email của mình)
Thiết lập password
Login
Lúc nãy chúng ta đã setting bắt buộc tất cả user phải sử dụng MFA nên màn hình bên dưới để setting
Show QR code, quet bằng App Google Authenticator trên điện thoại -> nhập 6 chữ số MFA
Done
Tiến hành login lại, rồi nhập MFA sẽ hiển thị màn hình sau:
Vì user cmp-phong
chưa được Assign quyền truy cập vào bất kỳAWS Account nào nên ở đây không hiển thị gì, nhưng không sao. Bước tiếp theo chúng ta sẽ làm việc đó, tạm thời cứ giữ nguyên màn hình này.
6. Create Permission sets
Quay lại Console IAM Identity Center -> Permission sets
Chúng ta sẽ tạo 2 Permission set là:
AdministratorAccess
ReadOnlyAccess
Next
Next
Create
Tương tự như vậy chúng ta cũng tạo Permission set cho ReadOnlyAccess
Kết quả
7. Liên kết AWS Account và Permission sets
Mục đích của chúng ta là cho phép developer co quyền ReadOnlyAccess
ở Account cmp-production và quền AdministratorAccess
ở Account cmp-develop.
Tương tự như vậy, chúng ta sẽ liên kết Account cmp-develop với user cmp-phong
Nhưng với quyền AdministratorAccess (các bạn tự làm bước này)
8. Access to AWS Member Account
Quay lại trang lúc nãy chúng ta đăng nhập bởi user: cmp-phong
nhưng chưa access dc đến account nào, Reload page.
Giờ đây chúng ta có thể access đến 2 account tương ứng của 2 môi trường bằng 1 cú click.
Test access đến môi trường production và tạo thử resource nhé!
Thử tạo resource
Lỗi Access Deny do user cmp-phong
chỉ có quyền ReadOnly trên Account production
Quay lại màn hình AWS access portal và test với account cmp-develop
Lời Kết
Bài viết này đã giới thiệu đến các bạn cách setting cơ bản với IAM Identity Center, đồng thời thực hiện được kịch bản access nhiều môi trường với quyền khác nhau của user: cmp-phong
Những trường hợp đang sử dụng như dưới đây:
- Vận hành nhiều AWS Account nhưng mỗi account lại tạo group/user riêng biệt
- Sử dụng Switch Role để chuyển đổi vai trò qua lại giữa các Account
Hãy cân nhắc sử dụng IAM Identity Center vì các hoạt động hiện tại sẽ được cải thiện đáng kể với Service này.
Phần 2 chúng ta sẽ nói về cách sử dụng command line, cách sử dụng temporary credential cho IAM Identity Center user thay vì sử dụng access key, secrey key vĩnh viễn - thiếu an toàn như cách làm ở IAM Service.
Clean up resources
Login lại với IAM user ban đầu
- Hủy liên kết Account - Permission sets: Account cmp-production
- Hủy liên kết Account - Permission sets: Account cmp-develop (cách làm tương tự như trên)
- Delete Permission sets: AdministratorAccess
- Delete Permission sets: ReadOnlyAccess (tương tự như trên)
- Delete user:
cmp-phong
Nếu chúng ta không có kế hoạch sử dụng AWS Account cmp-develop và cmp-production thì tiến hành close
Làm tương tự với cmp-prodcuction
Khi close account sẽ có 1 email báo về việc close tài khoản và 1 số lưu ý, nếu trường hợp account có tạo resource bạn cần lưu ý những nội dung này, còn bài DEMO này không tạo resource gì trên 2 account cả nên yên tâm là không có vấn đề gì, sau 90 ngày account sẽ bị xóa vĩnh viễn