Manage multiple accounts using IAM Identity Center (Part 1: Login using IAM Identity Center)

Manage multiple accounts using IAM Identity Center (Part 1: Login using IAM Identity Center)

avatar

Phong Nguyen

2024.07.01

Trong các dự án AWS, để vận hành tốt về mặt security, sẽ tốt hơn nếu chia tách các môi trường chạy trên các AWS Account khác nhau. Bài viết này hướng dẫn sử dụng IAM Identity Center kết hợp với AWS Organizations để tạo và quàn lý phân quyền truy cập đến từng account.

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: developprodution, 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

  1. Create AWS Member Account in AWS Organizations
  2. Enable IAM Identity Center
  3. Setting Multi-factor authentication
  4. Create group and user
  5. Login using IAM Identity Center
  6. Create Permission sets
  7. Liên kết AWS Account và Permission sets
  8. 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

  • Production
  • Develop

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

  • Delete group:
    • ADMIN
    • DEVELOPER

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