Iam aws là gì
IAM hay Identity and Access Management là nơi mà bạn quản lý các AWS user của mình cũng như việc truy cập của họ tới các tài khoản AWS và các service. Show Vậy cụ thể điều trên có ý nghĩa là gì? Nó có nghĩa là bạn có thể tạo các tài khoản user cho các member trong team mình và cấp cho các user đó quyền truy cập các tính năng hoặc các service nhất định của AWS. Một vài việc các bạn sẽ thường thao tác trong IAM bao gồm: tạo account, group, role và các IAM access policy. Giờ thì bạn có thể vào AWS console để xem qua về IAM:
IAM Users và PoliciesGiờ mình sẽ vào tab user ở trong IAM console: Các bạn có thể thấy hiện tại mình chỉ có duy nhất 1 user “Tung”, user này đã được gắn policy truy cập cấp độ admin. Giả sử trong team của bạn có member Mark và bạn muốn Mark có thể truy cập bucket S3 thì phải làm như thế nào? Đương nhiên đầu tiên chúng ta cần tạo một tài khoản user cho Mark. Hãy ấn vào nút Add user: Giờ các bạn hãy để ý mục Select AWS access type, bạn có thể thấy có hại loại access: Programmatic access và AWS Management Console access. Thực ra access type của AWS có thể coi là một chủ để nâng cao thế nên mình sẽ chỉ tóm tắt cho các bạn biết các loại type này là gì vì một số bài viết trong series sẽ có đề cập đến chúng:
Ở ví dụ này, mình sẽ chỉ sử dụng AWS Management Console access. Tiếp theo bạn có thể set password cho user rồi ấn vào nút next: Giả sử ngay ở bước này, user Mark đã được tạo thành công và Mark thử truy cập bucket S3 thì anh ta sẽ nhận được thông báo accesss denied, bởi vì như mình đã đề cập ở phần trước, khi một account user được tạo ra, mặc định nó sẽ không có quyền truy cập bất kì resource AWS nào cả và ban sẽ phải chỉ rõ từng quyền cho nó. Vậy thì, để cung cấp full quyền truy cập S3 cho Mark, bạn hẫy chọn tab “Attach existing policies directly” rồi gõ “S3” vào ô filter để lọc ra các policy về S3, check vào “AmazonS3FullAccess” rồi ấn Next: Ấn next tiếp để sang màn Tags rồi Next sang màn review và ấn Create user. Như vậy là bạn đã tạo thành công tài khoản user cho Mark với toàn quyền truy cập S3: Hãy để ý trong thông báo có một đường link dẫn tới console quản lý AWS, url này khác với url dành cho root user, nó dành riêng cho user vừa được tạo ra. Tượng tự bạn có thể tạo nhiều user cùng một lúc, họ sẽ có chung một mật khẩu và url tới console quản lý AWS giống nhau. IAM Groups và PoliciesỞ phần trước, chúng ta đã học cách gắn policy cho một user để cấp quyền truy cập cho user đó. Nhưng nếu như chúng ta cần phải cấp quyền truy cập giống nhau cho 20 user hoặc thậm chí là 100 user? Lúc này, để có thể quản lý quyền truy cập một cách hiệu quả thì thay vì phải gắn policy cho từng user, chúng ta có thể tạo một group các user và gắn policy cho group đó. Hãy ấn vào tab User groups và chọn Create group: Mình sẽ đặt tên cho group này là “Dev”. Hãy chọn các user bạn muốn đưa vào group: ở phía dưới là phần gắn policy cho group: Vậy là bạn đã tạo thành công một group với các member có quyền truy cập tới S3 như đã được gắn cho group: Giiả sử user Adrian trong group chúng ta vừa tạo cần quyền truy cập tới một resource khác không phải S3 nhưng các user còn lại thì không cần. Lúc này bạn có thể gắn thêm policy trực tiếp cho Andrian hoặc có thể tạo ra một group khác và add Andrian vào group đó, rồi tiếp đó gắn policy cho group mới này. Khi đó, Andrian, Mark và James vẫn đều có quyền truy cập giống nhau tới S3, và Andrian sẽ có thêm các quyền truy cập ở group thứ hai mà chúng ta vừa tạo ra. Việc tạo group user là một practice được khuyên dùng thay cho việc gắn policy trực tiếp cho từng user. IAM RolesKhông chỉ có các user mới cần truy cập tới các resource AWS. Đôi khi, các service khác của AWS cũng cần truy cập tới các resource khác nhau. Giả sử, bạn có một ứng dụng chạy trên một server EC2 cần truy cập tới file được lưu ở bucket S3. Có lẽ bạn sẽ nghĩ đơn giản là chúng ta chỉ cần gắn policy cho EC2 để cấp quyền truy cập tới S3. Nhưng thực ra không phải vậy, khác với user hoặc group là các identity, EC2 là một resource nên policy của nó sẽ không dùng để chỉ rõ nó có thể access resouce nào, mà lúc này policy của nó dùng để chỉ rõ những identity nào có thể truy cập tới nó. Do đó AWS có một feature khác là Role, có nghĩa là chúng ta sẽ cần tạo ra một IAM Role để role này có thể cấp quyền truy cập S3 cho EC2. Đầu tiên, hãy mở tab roles vầ ấn vào Create role: Ở phía trên màn hình bạn có thế thấy một thứ gọi là “trusted entity”. Đây là một chủ đề khá là nâng cao nên mình xin phép không đề cập tới nó ở đây. Chúng ta sẽ tập trung vào làm thế nào để gắn một role cho một service AWS để cấp quyền cho nó truy cập các service khác. Vì chúng ta cần cấp quyền cho EC2 nên hãy chọn EC2 và ấn Next. Ở đây chúng ta có thể chọn policy cho role. Search “S3” rồi chọn “AmazonS3FullAccess” rồi ấn Next sang màn tags rồi ấn Next tiếp. Đặt tên cho role mới, mình sẽ đặt là “EC2Role” và ấn Create role: Vậy là chúng ta đã tạo thành công một role cấp quyền cho EC2 server truy cập S3 giống như các member trong group Dev có thể truy cập S3. Hơn 14 năm hình thành và phát triển, AWS vẫn luôn giữ vững vị thế độc tôn của mình với tư cách là nền tảng đám mây toàn diện và được sử dụng rộng rãi nhất hiện nay. Vậy tại sao IAM lại là dịch vụ cần giới thiệu đầu tiên? Đơn giản là do ngay khi bắt đầu sử dụng AWS, IAM phải là khái niệm bạn hiểu rõ ràng nhất. IAM (Identity and Access Management) là gì?Hiểu một cách đơn giản, IAM (Identity and Access Management) hay Định dạng và Quản lý truy cập, là một dịch vụ cho phép chúng bạn kiểm soát truy cập một cách an toàn tới các tài nguyên của AWS.
Các thành phần trong IAMKhi đăng kí sử dụng AWS, AWS sẽ cung cấp cho bạn định danh tài khoản (AWS Account ID) là một dãy số có 12 ký tự, ví dụ: 123456789012. ID này là duy nhất và sẽ không trùng lặp với các tài khoản AWS khác. Sau đó, bạn sẽ đăng nhập với tư cách là Người dùng gốc (Root user) – người có mọi quyền truy cập và thao tác đến TOÀN BỘ các tài nguyên trong AWS từ thông tin thanh toán đến quyền thay đổi mật khẩu… Chính vì lẽ đó, để tối ưu hóa mức độ bảo mật, AWS khuyên người dùng của mình không nên sử dụng tài khoản Root User để đăng nhập. Thay vào đó, bạn hãy tạo một tài khoản User khác để sử dụng cho lần đăng nhập sau hoặc cho người khác sử dụng chung tài khoản AWS – AWS Account ID. Từng thành phần trong IAM sẽ được liệt kê chi tiết như sau:
Policy sẽ có cấu trúc cơ bản như sau:{ "Version":"2012-10-17", "Statement":[ { "Sid":"Stmt1571671788500", "Action":[ "actionX" ], "Effect":"Allow", "Resource":"arn:aws:s3:::sample/*", "Condition": { "IpAddress": { "aws:SourceIp": [ "27.67.190.119/32" ] } } } ] }
Bạn có thể dễ dàng quản lý các thành phần trên tại mục Identity and Access Management (IAM) trên giao diện AWS Management Console. Let’s try it!Bạn hãy thử tạo một user CHỈ có quyền xem các đối tượng trong AWS IAM từ IP ở nơi bạn tin tưởng. Tham khảo các bước thực hiện theo như link bên dưới: [Techsharing] Create simple IAM User 2 Kết luậnHiểu một cách ngắn gọn về IAM thì đây là dịch vụ giúp bạn xác thực và cấp quyền sử dụng tài nguyên AWS một cách dễ dàng. Nếu như bạn hiện đang làm việc trên môi trường AWS với khách hàng nước ngoài, đặc biệt là khách hàng Nhật – những người rất đề cao tính bảo mật, khi các thành viên trong dự án đòi hỏi quyền truy cập vào các dịch vụ của AWS thì hãy ghi nhớ nằm lòng những điều sau:
Hy vọng những thông này sẽ giúp ích cho mọi người trong quá trình sử dụng và quản lý truy cập trong AWS. Hẹn mọi người trong những bài viết tiếp theo về các dịch vụ của AWS tại website của CO-WELL ASIA! Trần Hữu Tài – CO-WELL Asia |