- vừa được xem lúc

AWS - IAM (Identity and Access Management - Trình quản lý danh tính và truy cập) là gì?

0 0 14

Người đăng: Pham Hieu

Theo Viblo Asia

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.

aws-iam-img

AWS được dùng để làm gì?

Nhìn chung, từ vào tên gọi của AWS IAM ta có thể kết luận được rằng dịch vụ này cho phép người dùng có thể quyết định xem ai sẽ có quyền truy cập vào các tài nguyên trên tài khoản của mình cũng như học có thể truy cập vào các dịch vụ nào. Tuy nhiên một cách chi tiết hơn, AWS IAM có thể thực hiện được các chứ năng sau:

  • Thiết lập, quản lý các quy tắc bảo mật cũng như kiểm soát truy cập một cách chi tiết đối với đội ngũ nhân sự cũng như các tác vụ liên quan. >>>
  • Quản lý danh tính đối với một hoặc tập trung nhiều tài khoản AWS. >>>
  • Cung cấp các quyền truy cập tạm thời đối với người dùng và ứng dụng cần truy cập vào các tài nguyên AWS. >>>
  • Liên tục phân tích truy cập để điều chỉnh quy mô về quyền nhằm tối ưu hóa, đảm bảo nguyên tắc đặc quyền tối thiểu (Nguyên tắc đăc quyền tối thiểu có thể hiểu rằng một đơn vị chỉ nên được cung cấp quyền truy cập tới các tài nguyên mà nó thật sự cần). >>>

IAM hoạt động như thế nào?

IAM giúp bạn có thể chỉ định những cá nhân hoặc thiết bị có thể truy cập các dịch vụ và tài nguyên trong AWS, quản lý tập trung các quyền chi tiết và phân tích truy cập để tinh chỉnh quyền trên AWS. Để làm được điều này, IAM phân chia người dùng (Users) vào các nhóm (Groups) và quản lý các nhóm này thông qua các quyền (Policies).

aws-iam-how-to-work

Người dùng và nhóm trong IAM

Đầu tiên, ta cần đến với khái niệm Root Account. Đây là tài khoản mặc định của người dùng sở hữu tài khoản đăng ký AWS. Root Account có thể được sử dụng để quản lý tài khoản AWS, nhưng nó không được khuyến khích để sử dụng cho các hoạt động quản trị. Vì vậy, cần tạo một tài khoản IAM riêng để sử dụng cho các hoạt động quản trị. Tài khoản IAM này có thể được thêm vào nhóm quản trị (Admin) để có thể quản lý tài khoản AWS của bạn một cách dễ dàng với nhiều quyền hành không kém gì người dùng Root.

aws-user-login

Tài khoản Admin được nhắc đến ở trên được gọi là User - Người dùng. Khi ta đăng nhập vào AWS, giao diện đăng nhập sẽ luôn hỏi xem ta cần đăng nhập vào Account Root hay chỉ dưới vai trò IAM User thông thường. Nếu ta chọn đăng nhập vào Account Root, ta sẽ được đăng nhập vào tài khoản Root và có thể quản lý tài khoản AWS của mình một cách tự do. Tuy nhiên, nếu ta chọn đăng nhập vào tài khoản IAM User thông thường, ta sẽ chỉ có thể truy cập vào các tài nguyên mà tài khoản IAM User đó được phân quyền. Ví dụ, nếu tài khoản IAM User này chỉ được phân quyền truy cập vào các tài nguyên của một máy chủ EC2, ta sẽ không thể truy cập vào các tài nguyên khác như S3 hay Route53.
Nói một cách khái quát, User - Người dùng là những cá nhân nằm trong tổ chức của bạn, và các User này có thể được nhóm lại vào một hay nhiều nhóm.

Khái niệm tiếp theo được nhắc đến đó là Nhóm - Group, trong AWS IAM, Group bao gồm một hoặc nhiều User, tuy nhiên nó sẽ không bao gồm các Group khác.

Một User không nhất thiết phải nằm trong Group nào, tuy nhiên cũng có thể thuộc về nhiều group.

aws-iam-user-group

Quyền (Permission) và chính sách (Policy) trong IAM

IAM: Permission

  • User hoặc Groups có thể được gán cho một chuỗi JSON, chuỗi này gọi là Policies (Chính sách).
  • Các chính sách này định nghĩa quyền truy cập của User hoặc Group đó.
  • Và như đã nói ở phía trên, trong AWS luôn áp dụng một chính sách đặc quyền tối thiểu (the least privilege principle) - đừng bao giờ cấp quyền cho một User nhiều hơn họ cần.
    iam-json

IAM: Policies

Policies - Chính sách, là các tệp dữ liệu có cấu trúc (JSON) định nghĩa quyền truy cập của một User hoặc Groups, nói cách khác, các một User hoặc Group muốn được truy cập vào các tài nguyên AWS, thì nó cần phải được cấp phép thông qua các Policies.

aws-iam-policy-inheritance

Các chính sách này cũng có tính kế thừa, điều này có thể hiểu là một User hoặc Group có thể được gán cho nhiều chính sách khác nhau. Điều này có thể được diễn giải như sau:

  • Một tổ chức X gồm nhiều GroupsUsers, tất cả các Users này sẽ được gán cho một chính sách mặc định có tên là X-Human.
  • Groups Avenger trong tổ chức X có thể được gán cho một chính sách có tên là X-Member. Điều này có nghĩa là các User trong Group Avenger sẽ có quyền X-Member và quyền X-Human
  • Groups Avenger chứa 1 User tên là Tony Stark, User này được gắn thêm một quyền X-UseIronManArmor nữa. Điều này có nghĩa là User Tony Stark sẽ có quyền X-Member, X-HumanX-UseIronManArmor. (Tony Stark là con người, là thành viên của Avenger và là người duy nhất có quyền sử dụng bộ giáp Ironman )

Để dễ hiểu, Policies trong AWS IAM thường chia thành các loại sau:

Để hệ thống của AWS IAM có thể hiểu cũng như người quản trị có thể dễ dàng cấu hình, các Policies được định nghĩa dưới dạng JSON. Một Policies có cấu trúc dưới dạng JSON bao gồm nhiều trường như sau:

aws-iam-policy-json

Trong đó bao gồm các trường:
- Version: Policy Language Version, đây là phiên bản của ngôn ngữ được Amazon sử dụng để xử lý các policy, trường này KHÔNG phải là phiên bản của Policy (Policy Version) và có 2 giá trị 2012-10-17 đối với phiên bản hiện nay và 2008-10-17 đối với phiên bản cũ hơn. Hiện nay, trường này mặc định là “2012-10-17”.
- Id: Trường này là mã định danh mà bạn đặt cho Policy của mình, có thể có hoặc không (Optional)
- Statement: Trường này bao gồm nhiều thông tin cấu hình khác của Policy, một Policy có thể có một hoặc nhiều Statement độc lập, tuy nhiên vì trường này là bắt buộc nên bạn cần tối thiểu 01 Statement. Các trường trong Statement bao gồm:
- Sid: Mã định danh cho Statement (Optional)
- Effect: Trường này quyết định xem Statement cho phép hay từ chối quyền truy cập vào một resource. Có 2 giá trị là AllowDeny
- Principal: Trường này quyết định xem Statement này sẽ được áp dụng cho group/user/role nào.
- Action: Trường này quyết định xem Statement này cho phép hay từ chối một hoặc nhiều action nào. (2 giá trị AllowDeny trên phần Effect)
- Resource: Trường này quyết định xem Statement này được áp dụng cho resource nào.
- Condition: Trường này quyết định xem Statement này được áp dụng khi nào. (Optional)

IAM: Roles for Services

Ở phần trên, bên cạnh 02 giá trị quen thuộc là group/user, chúng ta còn có thêm giá trị role.

aws-iam-role

Một vài dịch vụ trên AWS cần được cấp phép để thực thi các tác vụ một cách tự động khi User không có mặt tại đó để cấp phép, để làm được điều này thì dịch vụ đó cần được cấp quyền truy cập tới dịch vụ AWS đích thông qua IAM Roles

Tồn tại nhiều Roles trên AWS IAM, tuy nhiên chúng ta có sẵn một số Role phổ biến như sau:
- EC2 Instance Roles
- Lambda Function Roles
- Roles for CloudFormation.

Bình luận

Bài viết tương tự

- vừa được xem lúc

PDF Export, cẩn thận với những input có thể truyền vào

Giới thiệu. Dạo gần đây mình tình cờ gặp rất nhiều lỗi XSS, tuy nhiên trang đó lại có sử dụng dữ liệu người dùng input vào để export ra PDF.

0 0 66

- vừa được xem lúc

Giới thiệu về AWS Batch

Khi sử dụng hệ thống cloud service, điều chúng ta thường phải quan tâm đến không chỉ là hiệu suất hoạt động (performance) mà còn phải chú ý đến cả chi phí bỏ ra để duy trì hoạt động của hệ thống. Chắn hẳn là hệ thống lớn hay nhỏ nào cũng đã từng phải dùng đến những instance chuyên để chạy batch thực

0 0 143

- vừa được xem lúc

Tìm hiểu về AWS KMS

1. AWS KMS là gì. Ở KMS bạn có thể lựa chọn tạo symetric key (khóa đối xứng) hoặc asymetric key (khóa bất đối xứng) để làm CMK (Customer Master Key). Sau khi tạo key thì có thể thiết đặt key policy để control quyền access và sử dụng key.

0 0 66

- vừa được xem lúc

AWS VPC cho người mới bắt đầu

Tuần này, tôi trình bày lại những gì tôi đã học được về Virtual Private Cloud (VPC) của Amazon. Nếu bạn muốn xem những gì tôi đã học được về AWS, hãy xem Tổng quan về DynamoDB và Tổng quan về S3. VPC là gì. Những điều cần lưu ý:.

0 0 84

- vừa được xem lúc

AWS Essentials (Phần 6): Guildline SNS Basic trên AWS

Tiếp tục với chuỗi bài viết về Basic AWS Setting, chúng ta tiếp tục tìm hiểu tiếp tới SNS (Simple Notification Service). Đây là một service của AWS cho phép người dùng setting thực hiện gửi email, text message hay push notification tự động tới mobile device dựa trên event người dùng setting phía AWS

0 0 145

- vừa được xem lúc

Sử dụng Amazon CloudFront Content Delivery Network với Private S3 Bucket — Signing URLs

Trong nhiều trường hợp, thì việc sử dụng CDN là bắt buộc. Mình đã trải nghiệm với một số CDN nhưng cuối cùng mình lựa chọn sử dụng AWS CloudFront.

0 0 117