Bảy bảy bốn chín điều cần biết trước khi bắt đầu sử dụng AWS Organization
- Tháng Chín 30, 2022
- Posted by: Huyền Khánh
- Category: Uncategorized
Đối với những ai mới tiếp cận với hệ thống AWS, chắc hẳn khái niệm AWS Organization vẫn còn mới lạ. Còn đối với những ai đã học AWS và thao tác làm việc trên hệ thống này thì AWS Organization đã quen thuộc hơn rất nhiều. Để giúp các bạn có cái nhìn rõ hơn về AWS Organization, hãy cùng mình tìm hiểu về nó nhé!
AWS Organization là một dịch vụ giúp chúng ta quản lý tập trung các tài khoản của một tổ chức, ví dụ như một công ty hoặc một dự án lớn, gồm nhiều thành phần. Trong bài viết này, mình sẽ không bàn tới các thành phần của AWS Organization như OU hay SCP, mà mình sẽ tập trung nói về cách quản lý tài khoản trong Organization. Giao diện tạo AWS Organization rất đơn giản làm chúng ta lầm tưởng chừng như tạo và xóa AWS Account dễ dàng như IAM User, nhưng không phải đâu nhé. Vậy nên, cần lưu ý một số điểm sau trước khi tạo và quản lý các Account trong AWS Organization.:
- Tài khoản cho Organization quản lý: có 2 cách đưa account vào trong Organization để quản lý.
Cách 1: chúng ta sẽ Invite User có sẵn. Việc này rất đơn giản, chỉ việc gửi lời mời tới cho một account đã được nhập sẵn các thông tin, và bao gồm cả Payment method. Sau này, chúng ta sẽ rất dễ remove account này ra khỏi Organization. Tuy nhiên việc này cũng có một vài rủi ro nhất định. Đây không phải tài khoản của công ty, do đó nếu chủ nhân của tài khoản này rời khỏi Organization thì các resource bên trong tài khoản đó cũng bay theo họ.
Cách 2: Chúng ta sẽ tạo một tài khoản riêng cho mục đích của công ty. Việc này cũng rất đơn giản, chỉ việc nhập Email vào là xong. Tuy nhiên thứ chúng ta cần lưu ý là ở đây. AWS Organization yêu cầu khi Remove một Account khỏi Organization, thì chúng ta phải đảm bảo là Account đó có thể “sống một mình”. Có nghĩa là Account được tạo ra sẽ cần có thông tin về Payment method, địa chỉ, bla bla như một Account thực thụ và tự thân vận động, tự trả tiền cho những resource của nó.
- Vấn đề về Payment: Vấn đề này thực tế có thể gặp ở bất kỳ account được tạo bằng cách nào, tuy nhiên cách 1 sẽ ít xảy ra hơn, do khi tạo tài khoản AWS cá nhân, chúng ta đã cần cấp thông tin Payment rồi. Thông tin payment này vẫn có thể bị expired (ví dụ như hạn của thẻ thanh toán quốc tế bị hết nên không thể dùng nữa). Tài khoản member đang ở trong Organization mà không có thông tin Payment hợp lệ, thì sẽ không thể bị remove ra khỏi Organization. Tuy nhiên trường hợp này ở Cách 1 ít xảy ra hơn là tài khoản tự tạo ở Cách 2, do Cách 1 thông thường người ta đã gắn thông tin Payment vào rồi và AWS bắt buộc phải có tối thiểu 1 thẻ thanh toán trên hệ thống. Tuy nhiên nếu account tự tạo thì không bị ràng buộc này và có rất nhiều trường hợp không có thông tin Payment -> Không thể xóa hay gỡ ra khỏi Organization.
=> Do vậy, chúng ta cần lưu ý, khi tạo tài khoản theo cách số 2, chúng ta hãy coi đó là một tài khoản của công ty, hãy dùng email của công ty hoặc bất kỳ email nào mà chúng ta có thể manage được, không dùng email cá nhân hay email tạo từ một bên thứ 3 nào khác, ,có thể dẫn tới hoàn toàn không có cách nào truy cập vào tài khoản đó để thực hiện các thao tác cần thiết. Nếu như trong tài khoản thành viên có chứa các service đang chạy sẽ không thể dừng các service đó lại được hoặc cần có các biện pháp xử lý phức tạp hơn.
- Đối với email được khởi tạo, chúng ta nên có phương án để tracking xem ai là người được quyền access vào root user của account thành phần. Đã có rất nhiều trường hợp, người có quyền truy cập vào các email và password của những email này đã rời công ty. Và đến một lúc nào đó, chúng ta nhận ra là không ai còn có quyền truy cập vào những account này nữa. Nếu đăng ký email bằng email của công ty, việc khôi phục lại password của account dạng này là tương đối dễ dàng. Nhưng nếu không có, việc khôi phục lại có thể sẽ gặp khó khăn.
- Luôn tạo một role cho phép Master Account có thể điều khiển truy cập: Đây là lưu ý khi tạo bất kỳ một Account nào mới trong Organization, hoặc kể cả Invite một Account mới vào Organization, chúng ta nên tạo một Role, Trusted Master Account với một tên thống nhất nào đó. Bằng việc này, chúng ta có thể điều khiển các resource nằm trong các tài khoản Member Account từ Master account. Lưu ý rằng root user của Member Account hoàn toàn có thể tự xóa role này để ngăn không cho Master Account truy cập vào Member Account nữa (mà vẫn sử dụng Bill từ Master Account). Chúng ta có thể cấm Member Account tạo bất kỳ service gì bằng SCP, tuy nhiên việc này không giúp remove Member Account, mà chỉ làm cho Member Account bị tê liệt vô thời hạn.
- Theo như recommend của AWS, root user của những tài khoản Member Account trong Organization không nên được sử dụng để làm bất kỳ thao tác nào khác ngoài việc khởi tạo User, Group, Role hoặc những thao tác bắt buộc phải dùng root account. Việc này giúp chúng ta hạn chế tối đa việc sử dụng root account của các tài khoản member được tham gia vào trong Organization, mà chỉ sử dụng User hoặc Role và điều khiển tập trung từ Master Account.
Trên đây là một vài lưu ý khi chúng ta bắt đầu nghiên cứu và mò mẫm tới AWS Organization. Các nội dung về AWS Organization hiện đã có trong khóa học AWS Basic tại CodeStar. Link chi tiết mọi người tham khảo tại đây nhé : https://codestar.vn/product/aws-co-ban/ Hy vọng có thể giúp ích được cho mọi người phần nào và tránh những trường hợp phía sau.
Ngoài ra, Học viện CodeStar còn có các khóa học liên quan về AWS như Devops on AWS và Devops on K8S. Mời mọi người tham khảo theo link sau đây nhé :
DevOps on AWS: https://codestar.vn/product/devops-on-aws/
DevOps on K8s: https://codestar.vn/product/khoa-hoc-kubernetes-fundamentals-k8s/