Các tips làm việc hiệu quả với AWS IAM
Giới thiệu về IAM
IAM (Identity and Access Management - Trình quản lý danh tính và truy cập) là một trong số những dịch vụ toàn cầu của AWS bên cạnh các dịch vụ nhưu EC2 hay Route53. IAM là một dịch vụ quản lý danh tính và truy cập vào các tài nguyên và dịch vụ AWS một cách bảo mật. IAM cho phép bạn quản lý người dùng và các quyền truy cập của chúng đến các tài nguyên và dịch vụ AWS. IAM là một dịch vụ toàn cầu, có nghĩa là bạn có thể sử dụng IAM để quản lý người dùng và quyền truy cập của chúng đến các tài nguyên và dịch vụ AWS ở bất kỳ khu vực nào.
Các bạn có thể tìm hiểu thêm về AWS IAM tại bài viết trên Ezidev: Giới thiệu về AWS - IAM
Các tips làm việc hiệu quả với IAM
1. Không sử dụng Root Account cho bất cứ tác vụ nào ngoại trừ việc cấu hình các tài khoản.
Root Account là tài khoản gốc được tạo lúc bạn đăng ký tài khoản AWS, tài khoản này có đầy đủ quyền truy cập không giới hạn vào tất cả các tài nguyên của AWS. Điều này gây ra rủi do rất lớn đặc biệt là khi chia sẻ tài khoản, việc thông tin đăng nhập của tài khoản bị lộ, sử dụng sai mục đích hoặc đơn giản là nhầm lẫn trong thao tác cấu hình sẽ gây hậu quả rất lớn cho toàn hệ thống.
Thay vào đó, AWS khuyên bạn nên tạo người dùng IAM riêng lẻ với ít đặc quyền cần thiết nhất để thực hiện nhiệm vụ của họ. IAM (Quản lý danh tính và quyền truy cập) cho phép bạn quản lý quyền truy cập vào các dịch vụ và tài nguyên AWS một cách an toàn. Bạn có thể cấp các quyền khác nhau cho những người dùng và nhóm khác nhau, giảm nguy cơ thay đổi vô tình hoặc có hại đối với cơ sở hạ tầng của bạn.
Bằng cách sử dụng người dùng IAM thay vì tài khoản gốc, bạn có thể bảo vệ tốt hơn các tài nguyên và dữ liệu AWS của mình khỏi các thay đổi hoặc truy cập trái phép. Ngoài ra, bạn có thể theo dõi và kiểm tra các hành động được thực hiện bởi từng người dùng IAM, giúp bạn xác định và ứng phó với các sự cố bảo mật một cách nhanh chóng.
2. 1 IAM User = 1 AWS User
Nguyên tắc này đảm bảo việc quản lý quyền truy cập của mỗi người dùng sẽ được thực hiện một cách đơn giản và dễ dàng. Việc 2 hay nhiều người dùng cùng sử dụng một tài khoản sẽ dẫn đến các nguy cơ về việc lộ lọt thông tin đăng nhập cao hơn, hay đơn giản là sẽ rất phức tạp trong việc quản lý quyền truy cập của từng người dùng.
3. Đặt User vào Group và gán các quyền truy cập cho group
Mặc dù không bắt buộc phải làm điều này, khi IAM vẫn cho phép chúng ta có thể gán các quyền truy cập trực tiếp cho từng người dùng, nhưng điều này sẽ khiến việc quản lý quyền truy cập của từng người dùng trở nên phức tạp và khó khăn hơn. Bên cạnh các yếu tố lợi ích dễ thấy của việc tạo nhóm người dùng như việc dễ dàng thêm, bớt quyền hay xóa bỏ User, việc quản lý các quyền truy cập của nhóm người dùng cũng sẽ giảm thiểu nguy cơ để lại những lỗ hổng về quyền mà các hacker có thể khai thác, đặc biệt là khi một nhân sự rời khỏi công ty, và bạn cần xóa anh ta đi.
4. Xây dựng một chính sách mật khẩu mạnh
Hàng năm, có rất nhiều báo cáo về việc mật khẩu của người dùng trên các nền tảng nổi tiếng bị đánh cắp và bị công khai mua bán, giao dịch. Việc đánh cắp này bên cạnh nguyên nhân về việc lộ lọt thông tin đăng nhập, còn có thể do việc sử dụng mật khẩu dễ đoán. Vì vậy, bạn nên xây dựng một chính sách mật khẩu mạnh, đảm bảo mật khẩu của người dùng của bạn không bị đánh cắp. Một mật khẩu mạnh là một mật khẩu khó bị tìm ra bởi các bài toán vét cạn - vì đây là phương pháp chính mà kẻ tấn công dùng để "dò" ra các tài khoản có mật khẩu dễ đoán.
5. Sử dụng Multi-Factor Authentication (MFA)
MFA là một phương pháp xác thực hai yếu tố, nó sử dụng một thiết bị bổ sung để xác thực người dùng, thường là điện thoại di dộng. MFA có thể được sử dụng để xác thực người dùng khi họ đăng nhập vào tài khoản AWS của họ hoặc có thể được sử dụng để xác thực người dùng khi họ thực hiện các hành động quan trọng như thay đổi mật khẩu, cấu hình IAM,...
Việc sử dụng MFA đảm bảo rằng ai đó phải sở hữu các thiết bị cá nhân cũng như mật khẩu / mã PIN thiết bị của bạn để có thể truy cập vào tài khoản. Điều này giúp ngăn chặn các cuộc tấn công với mục đích đánh cắp tài khoản của bạn, đặc biệt là sẽ giúp cảnh báo bạn nếu có bất kỳ người nào đang cố gắng truy cập vào tài khoản của bạn, vì lúc này chỉ biết mật khẩu thôi là chưa đủ.
6. Sử dụng Role để truy cập và làm việc với các dịch vụ AWS
Việc sử dụng Role sẽ cung cấp một giải pháp an toàn và linh hoạt hơn để quản lý quyền đối với các dịch vụ và tài nguyên trong tài khoản AWS của bạn.
Việc thiết lập các Role cho phép truy cập vào các dịch vụ nhất định có thể giúp hạn chế việc phải quản lý các khóa truy cập, mật khẩu... vốn dùng để truy cập vào các dịch vụ này. Việc sử dụng Role cũng giúp quản lý và giám sát dễ dàng hơn các hoạt động trên tài khoản của bạn.
Một role có thể được gán cho nhiều dịch vụ EC2, Lambda khác nhau, vì vậy việc tạo sẵn một hoặc nhiều role sẽ giúp tiết kiệm thời gian khi thiết lập các dịch vụ mới.
7. Sử dụng Access Key để truy cập vào các công cụ như CLI, SDK
Khóa truy cập (Access Key) có thể được gắn cho IAM User hoặc IAM Role, vậy nên bên cạnh các đặc điểm nổi bật như khả năng kiểm soát truy cập, phân quyền... thì việc sử dụng Access Key còn đem lại các lợi ích khác như:
- Các khóa truy cập này có thể dễ dàng được sử dụng để truy cập vào nhiều công cụ, dịch vụ trên AWS vì vậy đem lại tính linh hoạt vô cùng lớn.
- Về tính bảo mật, các khóa này có thể được thay đổi liên tục sau một khoảng thời gian nhất định nhằm tăng cường tính bảo mật cho toàn bộ hệ thống.
- Các khóa này cũng được thiết kế để ghi lại, kiểm tra cũng như cung cấp các bản ghi liên quan đến thao tác truy cập vào tài nguyên AWS của người dùng.
8. Thường xuyên kiểm tra các báo cáo về quyền cũng như hoạt động trên tài khoản AWS của bạn
Đây là một trong những việc vô cùng nên làm, tuy nhiên lại là một trong những việc ít được thực hiện nhất. Những thao tác kiểm tra này thường chỉ được thực hiện khi có "biến" gì đó xảy đến, và như vậy là đã muộn. Việc kiểm tra báo cáo thường xuyên có thể giúp bạn phát hiện được ra những nguy hiểm tiềm tàng và xử lý trước khi có sự cố xảy ra.
9. Không bao giờ chia sẻ IAM User và Access Key
Điều này là tất yếu để đảm bảo nguyên tắc 1 người dùng - 1 User IAM, tuy nhiên trong quá trình sử dụng, vì "tiện" nên việc chia sẻ này thường xuyên xảy ra giữa các thành viên trong một nhóm, việc này sẽ làm cho việc quản lý quyền trở nên phức tạp và khó kiểm soát hơn.
Trên đây là các lưu ý cần thiết khi sử dụng IAM trong AWS, nếu bạn có thêm những lưu ý nào khác thì hãy chia sẻ với Ezidev thông qua phần Chat ở góc dưới bên phải màn hình nhé.