Sunday, September 29, 2024

[AWS] Advance IAM

-

1. Phân tích.

Bây giờ chúng ta hãy tìm hiểu sâu vào vai trò và chính sách IAM. Chính sách này được đính kèm với vai trò IAM của tôi đó là MyFirstEC2Role. Như chúng ta có thể thấy, có chính sách kèm theo có thể được quản lý hoặc bạn có thể tạo của riêng bạn.

Sang tab Policies chúng ta có thể thấy AWS có rất nhiều chính sách có sẵn để bạn sử dụng quản lý và chúng được cập nhật liên tục. Nhưng bạn cũng có thể tự tạo chính sách riêng cho mình bằng cách vào Create policy.

Bạn có thể tạo hành động hoặc tài nguyên theo yêu cầu, bạn cũng có nhập các chính ách được quản lý tại Import managed policy. Vì vậy, nó rất hữu ích để giúp bạn tạo bộ chính sách của riêng bạn.

Và bây giờ cũng là một tính năng khác rất hay ho đó là khi bạn đến với chính sách đang áp dụng cho EC2 của bạn.

“Inline policy” trong IAM (Identity and Access Management) của AWS (Amazon Web Services) là một loại chính sách được gán trực tiếp vào một tài nguyên nhất định, chẳng hạn như một người dùng, một nhóm, hoặc một vai trò. Inline policy có thể được sử dụng để cấu hình chính sách cho các đối tượng IAM cụ thể và chỉ áp dụng cho đối tượng đó. Nếu bạn muốn thêm 1 Inline policy bạn có thể vào Add inline policy và làm theo hướng dẫn.

Bây giờ chúng ta thử phân tích các policy đang có sẵn. Hãy xem AmazonS3ReadOnlyAccess nó cung cấp cho chúng ta 1 bảng tóm tắt. Theo như thông tin ở dưới thì AmazonS3ReadOnlyAccess chỉ được phép liệt kê và đọc nội dung trong s3, mọi hành động khác sẽ bị cấm.

Hoặc bạn có thể xem ở dạng json.

Bây giờ chúng ta hãy nhìn vào AmazonS3FullAccess ngay chỗ “Action”: “s3:*” điều này có nghĩa là cho phép mọi kết nối đến s3 và “Resource”: “*” tức là cho phép truy cập bất kỳ tài nguyên nào bạn muốn.

Vậy câu hỏi đặt ra, làm thể nào để tạo ra nội dung json này, bây giờ chúng ta cùng thực hành thử tạo 1 chính sách mới cho riêng mình.

2. Thực hành.

Hãy vào Policies -> Create policy để tạo 1 chính sách mới.

Chúng ta có 2 cách để tạo chính sách mới đó là sử dụng Visual editor.

Hoặc sử dụng json, với json bạn có thể viết các chính sách mà bạn muốn vào đây hoặc bạn có thể sao chép từ 1 nguồn nào đó và dán vào đây cũng được.

Phần Service mình chọn s3.

Phần Access level tại tuỳ chọn read bạn có thể chọn các quyền bạn muốn access hoăc có thể chọn tất cả.

Chọn tài nguyên ảnh hưởng, bạn có thể chỉ định một tài nguyên nào đó hoặc tất cả tài nguyên.

Mình sẽ chọn 1 Resources cụ thể đó là ARN s3.

Sau khi add resource thành công, bạn sẽ có màn hình như dưới. Nếu bạn muốn bổ sung thêm chính sách, hãy bấm vào Add additional permissions.

Để Review policy lại chính sách, hãy bấm vào Review policy. Để tạo chính sách, bạn hãy điền tên chính sách vào Name và bấm Create policy. Ở đây mình sử dụng tên MyTestS3CustomPolicy.

Một thông báo tạo chính sách thành công, bạn có thể bấm vào tên chính sách MyTestS3CustomPolicy để vào xem thông tin của nó.

Đây là thông tin tóm tắt chính sách vừa tạo

Hoặc khi bạn xem dưới định dạng json.

Và có 1 công cụ bạn cần phải biết đó là aws policy generator, bạn có thể google rồi link đến nó.

Đến đây bạn bắt đầu thấy quen rồi phải không, công cụ này mình đã demo bên phần S3 nên các bạn có thể tìm và xem lại.

Sau khi bạn generator được json, bạn hãy copy nó và sử dụng thôi.

Ưu điểm của việc tạo chính sách ở đây là bạn có thể thấy ai đã sử dụng nó.

Và phiên bản của chính sách và đảm bảo rằng bạn luôn luôn có thể khôi phục các phiên bản trước đó.

Giờ chúng ta quay lại role và chúng ta có thể đính kèm vào chính sách của mình bằng cách nhấp vào role “MyFirstEC2Role”

Sau đó bấm vào Attach policies

Tìm đến chính sách tuỳ chỉnh của mình và chính sách này do khách hàng quản lý, chúng ta có thể đính kèm

Như vậy chính sách mới của mình tạo ra đã được đính kèm vào role của EC2, như vậy sẽ giúp cho EC2 bảo mật hơn nhờ các chính sách được đính kèm vào.

Được rồi, bây giờ để demo phần tiếp theo, mình sẽ xoá quyền truy cập đầy đủ AmazonS3FullAccess của S3 bằng cách bấm vào dấu nhân (x) để chúng ta thử nghiệm chính sách đã tạo trước đó.

Lựa chọn Detach.

Chúng ta xoá luôn MyTestS3CustomPolicy nhé.

Bây giờ mình sẽ hướng dẫn các bạn sử dụng 1 công cụ mô phỏng chính sách AWS. Bạn có thể sử dụng google tìm với từ khoá aws policy simulator sau đó link vào url như dưới. Về cơ bản nó là 1 công cụ trực tuyến để kiểm tra chính sách của bạn.

Hãy tìm đến liên kết này và nhấp vào nó.

Ở đây bạn có thể tìm kiếm các chính sách về người dùng, nhóm hoặc role.

Và lần này mình lại chọn role MyFirstEC2Role của mình.

Và đây là chính sách mà nó có.

Và sau đây mình sẽ chọn 1 dịch vụ là Amazon S3 và 1 action đó là GetObject và bấm Run Simulation.

Và sau đó bạn sẽ thấy kết quả ở dưới, nó list cho chúng ta thấy loại service chọn là Amazon S3, với Action là GetObject.

Hoặc chúng ta có thể chọn thêm 1 action khác ví dụ như ListBucket.

Hoặc PutObject.

Các bạn có thể thấy với hành động GetObject và ListBucket thì Permission là allowed tức là đươc phép thực thi và PutObject thì Permission ở trạng thái denied tức là bị từ chối hoàn toàn.

Lý do PutObject bị từ chối là do trong chính sách AmazonS3ReadOnlyAccess của chúng ta chỉ cho quyền GetObject và ListBucket mà thôi.

Khi bạn bấm vào Show statement, bạn cũng thấy phần action chỉ chấp nhận Get và List, hoàn toàn không có quyền Put.

Với công cụ mô phỏng này có thể giúp bạn tiết kiệm hàng giờ để tìm một trường hợp bị từ chối ở những chính sách phức tạp, ngoài ra chúng ta có thể sử dụng cli để mô phỏng công cụ này.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories