lAM Policies inheritance
Trong IAM của AWS, các chính sách (policies) được kế thừa theo cách tương tự như các thuộc tính và quyền truy cập. Nghĩa là, một user hoặc group có thể được liên kết với nhiều chính sách khác nhau, và các chính sách đó có thể được thừa kế từ các thành phần khác nhau của tài nguyên IAM của bạn.
Khi một chính sách được áp dụng cho một user hoặc group, nó sẽ được áp dụng cho tất cả các tài nguyên trong AWS mà user hoặc group đó được phép truy cập. Điều này có nghĩa là, nếu một chính sách được áp dụng cho một group và user đó thuộc vào group đó, thì user đó sẽ được áp dụng các quyền truy cập được định nghĩa trong chính sách đó.
Tuy nhiên, nếu một user hoặc group được liên kết với các chính sách khác nhau có các quyền truy cập trùng lặp, thì quyền truy cập cao nhất sẽ được áp dụng. Nếu một user hoặc group không có bất kỳ chính sách nào được liên kết với nó, thì không có quyền truy cập nào được cho phép mặc định.
lAM Policies inheritance
Chính sách IAM (IAM Policies) là các tài liệu JSON chứa thông tin về quyền truy cập tài nguyên trên AWS. Chúng được sử dụng để định nghĩa các quyền và hạn chế truy cập đến các tài nguyên như EC2 instances, S3 buckets, DynamoDB tables, v.v.
Một chính sách IAM bao gồm các thành phần sau:
- Version: phiên bản ngôn ngữ chính sách, luôn bao gồm “2012-10-17”.
- Id: một định danh cho chính sách (tùy chọn).
- Statement: một hoặc nhiều tuyên bố (statement) cá nhân (required).
Mỗi tuyên bố gồm các thành phần sau:
- Sid: một định danh cho tuyên bố (tùy chọn).
- Effect: xác định tuyên bố có cho phép hay từ chối truy cập (Allow, Deny).
- Principal: tài khoản/người dùng/vai trò áp dụng chính sách này.
- Action: danh sách các hành động mà chính sách này cho phép hoặc từ chối.
- Resource: danh sách các tài nguyên mà các hành động này áp dụng đến.
- Condition: các điều kiện cho khi chính sách này có hiệu lực (tùy chọn).
Sử dụng chính sách IAM, bạn có thể quản lý quyền truy cập của người dùng và các dịch vụ AWS trong tài khoản của mình.
Hands on
Đầu tiên bạn vào group admin và xoá user stephane ra khỏi group.
Kết quả xoá thành công (1) user “stephane” và bấm vào tải lại trang (2), bạn sẽ nhận được kết quả không có quyền xem thông tin (3).
Tiếp theo bạn hãy thiết lập permissions cho user “stephane”.
Thêm quyền chỉ đọc thông tin (2).
IAMReadOnlyAccess là một Managed Policy được cung cấp sẵn bởi AWS cho phép đọc và xem thông tin về tài nguyên IAM trên tài khoản của bạn, bao gồm các thông tin về người dùng, nhóm, vai trò, chính sách và các yếu tố khác của IAM. Nó cung cấp quyền truy cập chỉ đọc, không cho phép thực hiện bất kỳ thao tác sửa đổi hoặc xóa nào. Với IAMReadOnlyAccess, bạn có thể cho phép người dùng hoặc vai trò truy cập các tài nguyên IAM trên tài khoản của bạn mà không cần lo ngại về mất mát dữ liệu hoặc sửa đổi thông tin không mong muốn. Tuy nhiên, bạn cần cẩn thận khi sử dụng chính sách này, đảm bảo rằng các người dùng được cấp quyền chỉ đọc là những người đáng tin cậy để tránh việc lộ thông tin quan trọng.
Sau khi đã hiểu “IAMReadOnlyAccess” dùng để làm gì, bạn hãy bấm Add pernessions để thêm quyền cho user “stephane”.
Và đây là tóm tắt về quyền “IAMReadOnlyAccess” sau khi thêm thành công.
Bạn hãy tải lại trang đang login user “stephane” và bạn nhận được kết quả như dưới (2). Bạn đã có quyền xem thông tin user.
Nhưng nếu bạn thực hiện 1 thao tác khác ví dụ như tạo 1 group mới, bạn sẽ nhận được thông báo không được phép tạo vì bạn chỉ có quyền read.
Create group
Mình sẽ giải thích các chính sách (2) như sau. Đây đều là tên các IAM policy (chính sách IAM) trong AWS để quản lý phân quyền và quản lý quyền truy cập vào các tài nguyên AWS.
- IAMReadOnlyAccess là một managed policy cho phép người dùng chỉ đọc các thông tin về người dùng, nhóm, vai trò, các policy, mật khẩu, nhưng không cho phép họ thay đổi bất cứ thứ gì trong tài khoản IAM. Nó có thể được đính kèm trực tiếp với người dùng hoặc được gán cho một nhóm.
- AdministratorAccess và AWSDirectConnectReadOnlyAccess đều là managed policy khác trong AWS. Cả hai đều cho phép truy cập đầy đủ vào các dịch vụ AWS. Tuy nhiên, AdministratorAccess cho phép người dùng tạo, thay đổi và xóa tất cả các tài nguyên trong tài khoản AWS, bao gồm IAM user, role, policy, S3 buckets, EC2 instances, RDS databases, v.v. Trong khi đó, AWSDirectConnectReadOnlyAccess chỉ cho phép đọc thông tin về Direct Connect, mà không cho phép thực hiện các thay đổi trên nó. Cả hai policy này đều có thể được gán cho một nhóm và gán cho người dùng thông qua việc đính kèm với nhóm này.
Nếu bạn qua Policies, bạn sẽ nhìn thấy tất cả Policies hiện đang có trong AWS.
Giả sử bạn vào Policie “AdministratorAccess” bạn sẽ nhận được chi tiết bằng JSON. Đây là cấu trúc cơ bản của một IAM policy trong AWS, được viết bằng định dạng JSON. Bao gồm các thành phần sau:
- Version: phiên bản của ngôn ngữ policy. Trong trường hợp này, phiên bản được sử dụng là “2012-10-17”.
- Statement: một hoặc nhiều câu lệnh trong policy, trong trường hợp này chỉ có một câu lệnh duy nhất.
- Effect: chỉ định xem câu lệnh cho phép hoặc từ chối truy cập. Ở đây được cấu hình cho phép (“Allow”).
- Action: chỉ định danh sách các hành động mà policy này cho phép hoặc từ chối. Trong trường hợp này, danh sách hành động không được chỉ định cụ thể, mà được đại diện bằng một ký hiệu wildcard (*), có nghĩa là tất cả các hành động đều được cho phép.
- Resource: chỉ định danh sách các tài nguyên mà policy này áp dụng đến. Trong trường hợp này, danh sách tài nguyên cũng không được chỉ định cụ thể, mà được đại diện bằng một ký hiệu wildcard (*), có nghĩa là tất cả các tài nguyên đều áp dụng.
Điều này có nghĩa là policy này cho phép người dùng hoặc đối tượng được gán policy này truy cập đến tất cả các hành động và tài nguyên trong tài khoản AWS. Tuy nhiên, điều này chỉ nên được sử dụng trong một số trường hợp đặc biệt và không nên được sử dụng trong các môi trường sản xuất.
Bạn cũng có thể chuyển tab sang “Policy summary” và bạn có nội dung (2), tại đây sẽ liệt kê cho bạn các service, level và các resource ảnh hưởng.
You can also try clicking the policy “IAMReadOnlyAccess“để xem nội dung của nó có gì.
Và bạn thấy chỉ có 1 trong 284 services có trong policy này (đơn giản vì nó không có quyền full access).
Hoặc bạn có thể chuyển tab qua “JSON” để xem chi tiết hơn.
Hoặc bạn cũng có thể tự tạo Policy cho riêng mình bằng cách bấm vào “Create policy”.
Chọn Service, Actions và Resources ảnh hưởng.
But now I will not create the policy myself, so I will click Cancel.