Tổng quan
- IAM (Identity and Access Management, Global service) có chức năng quản lý người dùng, cấp quyền truy cập cho các dịch vụ AWS
- IAM quả lý users, groups, roles, polices để quả lý truy cập aws resource. IAM có 2 nhiệm vụ chính
- Authentication: xác thực người dùng
- Authorization: phân quyền người dùng
Users & Group
- Root account: được tạo mặc định, có quyền cao nhất, thường được sử dụng để tạo các user IAM, phân quyền user IAM.
- Users: là những người trong tổ chức của bạn, có thể được nhóm lại.
- Groups: có thể bao gồm nhiều user, một group không thể chứa group khác. -Có thể hiểu Root account là giám đốc công ty. mỗi user IAM là một nhân viên, nhân viên thuộc group nào thì có các quyền của group đó. Root account thường được sử dụng để phân quyền cho các nhân viên, còn user IAM sẽ thực hiện các công việc như thao tác với các dịch vụ của AWS.
Permissions
- Users hoặc Groups có thể được phân quyền bằng cách thêm policies trên giao diện hoặc sử dụng chuỗi JSON
- Chỉ nên phân quyền mà user cần. Ví dụ: trong công ty của bạn có groups marketing, kế toán. Khi phân quyền group marketing chỉ nên được phân những tài nguyên thuộc phạm vi marketing, group kế toán chỉ nên được phân quyền những tài nguyên liên quan đến kế toán.
Password Policy - MFA
Password Policy
- Trong aws bạn có thể thiết lập chính sách mật khẩu như:
- Quy định độ dài tối thiểu
- Yêu cầu loại ký tự cụ thể
- Có cho phép người dùng thay đổi mật khẩu của chính họ hay không
- Yêu cầu người dùng thay đổi mật khẩu sau một thời gian
- Ngăn chặn sử dụng lại mật khẩu
MFA (Multi Factor Authentication)
- Để bảo vệ tài khoản bạn có thể dùng xác thực đa yếu tố như: gg authenticator, Universal 2nd Factor (U2F) Security Key
Access Keys, CLI and SDK
- Bạn có thể truy cập vào aws bằng các cách sau:
- Sử dụng bảng điều khiển AWS
- Sử dụng CLI (Command Line Interface)
- Sử dụng SDK
Access Keys
- AWS access keys là thông tin xác thực (credentials) được sử dụng để xác minh quyền truy cập của người dùng vào các tài nguyên và dịch vụ của AWS thông qua API hoặc AWS Command Line Interface (CLI).
- AWS access keys bao gồm hai phần:
- Access Key ID
- Secret Access Key
- Access keys phải được bảo mật và không nên chia sẻ với bất kỳ ai, vì chúng cấp quyền truy cập vào thông tin và tài nguyên trong AWS
CLI (Command Line Interface)
- AWS CLI là một công cụ dòng lệnh cung cấp giao diện điều khiển cho các dịch vụ của AWS. CLI cho phép người dùng tương tác với các tài nguyên và dịch vụ của AWS thông qua dòng lệnh, thay vì phải sử dụng giao diện.
SDK (Software Development Kit)
- AWS SDK là một bộ công cụ phần mềm được cung cấp bởi AWS để giúp các nhà phát triển dễ dàng tích hợp các dịch vụ của AWS vào ứng dụng của họ. SDK hỗ trợ nhiều ngôn ngữ khác nhau như JavaScript, Python, PHP, .NET, Ruby, Java, Go, Node.js, C++
IAM Roles
- Khi bạn muốn thao tác với các dịch vụ của aws, bạn cần có quyền truy cập. Vậy mỗi lần thao tác bạn phải cung cấp access keys ?
- IAM Roles sẽ giúp bạn cấp quyền truy cập vào tài nguyên của AWS mà không cần sử dụng AWS access keys. Nói cách khác, IAM Roles được sử dụng để cấp quyền sử dụng cho các tài nguyên của AWS.
IAM - Summary
- User: User có thể truy cập vào tài nguyên của AWS với username-password hoặc (access key và secret key)
- Access key: Chuỗi chữ và số độ dài 20 ký tự, có thể hiểu giống user ID
- Secret key: Chuỗi chữ và số độ dài 40 ký tự, có thể hiểu giống password. Access key và Secret key dùng vơi nhau để khởi tạo API, SDK, và xác thực CLI
- Password policy: Định nghĩa chính sách về mật khẩu như: độ phức tạp, thời hạn...
- Multi-Factor Authentication (MFA): Thêm 1 lớp bảo vệ account, khi login sẽ yêu cầu nhập thêm chuỗi 6 ký tự. Thông thường MFA được bật lên cho root user để đảm bảo an toàn
- Group: Một nhóm các user được phân quyền giống nhau
- Role: Quản lý IAM có những quyền truy cập đến resources nào của AWS
- Policy: Là JSON format, mỗi một policy có những tính năng và quyền hạn (permission) nhất định gắn với User, Group, Roles trong IAM.
Nguồn tham khảo Udemy: https://www.udemy.com/course/aws-certified-solutions-architect-associate-saa-c03/