Table of contents
Khi tổ chức (organization) chứa nhiều thư mục, dự án và tài nguyên, bạn có thể muốn hạn chế ai có quyền truy cập vào những nội dung gì. Nếu bạn chưa biết tổ chức, thư mục, dự án và tài nguyên là gì thì có thể đọc lại bài hệ thống phân cấp tài nguyên của Google Cloud tại đây. Để thực hiện nhiệm vụ trên, bạn có thể sử dụng dịch vụ Identity and Access Management hay IAM.
Các hoạt động của IAM
Với IAM, bạn có thể áp dụng các chính sách xác định xem ai có thể làm gì và trên tài nguyên nào. "Ai" ở đây có thể là các tài khoản Google, Google group, tài khoản dịch vụ hoặc Cloud Identity. "Ai" còn được gọi là principal, ở bài này mình sẽ gọi nó là cá nhân. Mỗi cá nhân đều sẽ có một mã định danh riêng, thường là địa chỉ email. Cá nhân đó có thể làm gì sẽ phụ thuộc vào vai trò (role) của người đó. Role trong IAM là tập hợp các quyền. Khi bạn cấp role cho một cá nhân thì có nghĩa là bạn cấp tất cả các quyền có trong role cho cá nhân đó. Ví dụ để quản lý các phiên bản máy ảo trong một dự án, bạn phải có quyền tạo, xoá, khởi động, tắt và chỉnh sửa máy ảo. Các quyền này được nhóm thành một role để dễ hiểu và dễ quản lý hơn.
Khi cá nhân được cấp role trên một thành phần cụ thể của hệ thống phân cấp tài quyền, thì role đó sẽ được áp dụng cho cả thành phần được chọn và tất cả các thành phân bên dưới nó.
Bạn cũng có thể đặt ra các quy tắc chặn một số cá nhân sử dụng các quyền nhất định, bất kể họ có role là gì. Điều này là do IAM luôn kiểm tra cá nhân đó bị chặn quyền gì trước khi kiểm tra họ có quyền gì.
Các loại role trong IAM
Có 3 loại role trong IAM là Basic (cơ bản), Predefined (được xác định trước) và Custom (tuỳ chỉnh).
Basic
Role đầu tiên là Basic, role này khá rộng. Khi áp dụng role này cho một dự án Google Cloud, thì chúng sẽ ảnh hưởng đến tất cả các tài nguyên trong dự án đó. Role này bao gồm owner, editor, viewer, và billing admin.
Viewer có thể truy cập tài nguyên nhưng không thể chỉnh sửa hoặc thay đổi cài đặt. Editor có thể truy cập và chỉnh sửa tài nguyên. Owner cũng có quyền của Editor. Ngoài ra, Owner cũng có thể quản lý các role và quyền liên quan đến thanh toán. Thông thường, các công ty sẽ uỷ thác một người quản lý việc thanh toán cho dự án và không thể chỉnh sửa dự án. Việc này có thể được thực hiện bằng role Billing Admin.
Nhưng nếu có nhiều người cùng làm việc trong một dự án chứa nhiều dữ liệu nhạy cảm thì các role này quá chung chung. Vậy nên, IAM cho phép bạn gán các vai trò được tuỳ chỉnh cụ thể hơn để đáp ứng nhu cầu của bạn. Các vai trò này cũng là role thứ hai, role được xác định trước (predefined).
Predefined
Các dịch vụ cụ thể của Google Cloud cung cấp các role được xác định trước các quyền và nơi áp dụng những role đó. Ví dụ: Compute Engine có các role được xác định trước như Instance Admin, ai có role này đều có thể thực hiện các hành động trong role.
Custom
Nhưng nếu bạn cần tuỳ chỉnh role có các quyền cụ thể hơn thì sao? Đó là lúc bạn sử dụng Custom Role.
Nhiều công ty sử dụng mô hình "ít đặc quyền nhất", trong đó các cá nhân trong tổ chức sẽ được cấp tối thiểu các quyền cần thiết để thực hiện công việc. Ví dụ: bạn có thể cấp quyền "instanceOperator" để cho phép người dùng chỉ có thể dừng và khởi động máy ảo của Compute Engine.
Custom Role cho phép bạn tạo role có chính xác các quyền mà bạn muốn. Nhưng có 2 lưu ý mà bạn cần phải nhớ là bạn phải tự quản lý các role tuỳ chỉnh này và các role này chỉ có thể áp dụng ở cấp Projects hoặc Organization.
Và đó là tất cả về nhận dạng và quản lý truy cập (IAM) trong Google Cloud.