Tạo custom role (Tạo role với các quyền tự quy định)


Bizfly Cloud Identify and access management là dịch vụ hỗ trợ để quản lí và phân quyền cho các dịch vụ của Bizfly Cloud.

Bước 1:

Truy cập vào Dashboard của dịch vụ IAM

Các role mặc định của hệ thống (có cập nhật theo thời gian)

Note:

  • Role mặc định của hệ thống là các role người dùng không thể thao tác chỉnh sửa hoặc xóa.

image

Bước 2:

Tạo mới role

image

Nhập các thông tin về role như tên role, mô tả.

Tiến hành chọn dịch vụ, tài nguyên và các quyền khi thao tác với dịch vụ cho role custom

image

Như ví dụ phía trên khi người dùng được mời vào project với role có tên là custom-role sẽ có quyền xem thông tin chi tiết của project khi thao tác với project họ được mời vào

Bước 3:

Mời người dùng vào project với role vừa tạo hoặc thay đổi role người dùng được mời vào trước đó qua role vừa tạo

Chi tiết việc tạo mới và thêm các thành viên ( user ) vào dự án bạn xem tại mục quickstart

image

Bước 4:

Sử dụng tài khoản người dùng được mời vào trên Dashboard hệ thống của Bizfly Cloud

Truy cập vào dịch vụ IAM, tại màn Quản lý projects hãy bấm vào project được mời vào

image

Khi chuyển qua tab Danh sách user, sẽ 1 thông báo lỗi người dùng không có quyền truy cập hiện ra do khi tạo role chỉ cấp cho người dùng quyền xem chi tiết project

image

Để có thể truy cập với nhiều quyền hơn hãy liên hệ với owner của project được mời vào và nhờ họ xem xét cấp thêm quyền

image

Sau khi đã thêm quyền vào role hãy tiến hành truy cập lại

image

Kết hợp sử dụng custom role với condition (điều kiện)

Để có góc nhìn khách quan hơn, chúng ta sẽ sử dụng dịch vụ Cloud-Server làm ví dụ.

Tại role đã được tạo trước đó (custom role), ta chọn Chỉnh sửa role -> Thêm mới permissions và thao tác tương tư hướng dẫn tạo custom role

image

Sử dụng tài khoản đã được mời vào project với role đã tạo trước đó và truy cập vào dịch vụ Cloud-Server.

image

Truy cập vào một server bất kỳ đã được tạo.

image

Kết quả

  • Ta có thể thấy các thao tác vẫn hoàn toàn bình thường do trước đó đã được thêm các quyền như xem danh sách servers/volumes, xem thông tin chi tiết của một server/volume

Bây giờ chúng ta quay lại custom role đã được tạo tiến hành chỉnh sửa tiếp. Tại phần permission của dịch vụ Cloud-Server tiến hành thêm condition.

Đầu tiên là chọn Tên điều kiện

image

Khi chọn xong tên điều kiện sẽ có một dấu ? hiển thị phía cuối condition. Khi bấm vào sẽ hiển thị Tên điều kiện vừa chọn có nghĩa là gì.

image

image

Tiếp tục chọn Kiểu điều kiện. Tùy vào Tên điều kiện được chọn mà các Kiểu điều kiện được hiển thị ra để chọn sẽ có các giá trị khác nhau. Về cơ bản sẽ gồm 6 giá trị như sau:

  • StringEquals: tài nguyên bạn thao tác phải có điều kiện bằng với giá trị bạn nhập. Ví vụ như trường hợp này bạn chọn Tên điều kiện servers.uuid và kiểu điều kiện StringEquals có nghĩa là server bạn thao tác phải có uuid bằng với giá trị bạn nhập ở ô giá trị.

  • StringNotEquals: tài nguyên bạn thao tác phải có điều kiện khác với giá trị bạn nhập.

  • StringEqualsIgnoreCase: tài nguyên bạn thao tác phải có điều kiện bằng với giá trị bạn nhập tuy nhiên không cần phân biệt giữa các ký tự viết hoa, viết thường.

  • StringNotEqualsIgnoreCase: tài nguyên bạn thao tác phải có điều kiện khác với giá trị bạn nhập không cần phân biệt giữa các ký tự viết hoa, viết thường.

  • StringLike: tài nguyên bạn thao tác phải có điều kiện gần giống với giá trị bạn nhập. Ví dụ giá trị nhập vào là aqzz897-665 khi đó bạn thao tác với các tài nguyên có điều kiện như aqzz897-665973-xbnc hay 95axcaxc-aqzz897-665k-x3cf hay xxva-aplmih88-aqzz897-665 sẽ đều thao tác được.

  • StringNotLike: tài nguyên bạn thao tác phải có điều kiện không giống với giá trị bạn nhập. Ví dụ giá trị nhập vào là aqzz897-665 khi đó bạn thao tác với các tài nguyên có điều kiện như aqzz897-665973-xbnc hay 95axcaxc-aqzz897-665k-x3cf hay xxva-aplmih88-aqzz897-665 sẽ không thao tác được.

image

Nhập giá trị và tiến hành xác nhận tạo mới/chỉnh sửa role.

image

Tiến hành kiểm tra lại thông tin role vừa tạo mới/chỉnh sửa.

image

Như vậy chúng ta đã tạo xong custom role có kết hợp sử dụng thêm condition. Check bên phía người dùng được mời vào với role vừa tạo.

Truy cập lại dịch vụ Cloud-Server và trải nghiệm. Khi nãy chúng ra có setup condition là servers.uuid StringEquals a9139f1e-fdd4-43f7-a69a-6d88186a585a

Thử truy cập vào 1 server có id khác với giá trị được set ở condition. Cụ thể ở ví dụ này là b1d25961-1c84-45fb-8330-555704654711.

image

Thử truy cập vào 1 server khác có id giống với giá trị set ở condition xem sao a9139f1e-fdd4-43f7-a69a-6d88186a585a.

image

Kết quả

  • Với server có id b1d25961-1c84-45fb-8330-555704654711 không hiển thị các thông tin của server nữa do đã bị chặn.
  • Với server có id bằng với giá trị được set ở condition vẫn có hiển thị các thông tin bình thường.

Bây giờ thử đổi kiểu điều kiện qua StringNotEquals xem sao.

image

image

Quay lại dịch vụ Cloud-Server và thử lại giống phía trên.

image

image

Kết quả

  • Với server có id b1d25961-1c84-45fb-8330-555704654711 bây giờ lại hiển thị các thông tin của server.
  • Với server có id bằng với giá trị được set ở condition bây giờ lại không thể hiển thị các thông tin của server nữa.

Kết hợp với condition khác.

image

Kiểm tra việc thao tác bên dịch vụ Cloud-Server.

image

image

Kết quả

  • Với volume có id bằng với giá trị được set ở condition sẽ lấy được thông tin của volume từ api.
  • Với volume có id khác với giá trị được set ở condition không thể lấy được thông tin của volume từ api.

Thêm condition khác và gắn giá trị bằng với giá trị mà volume vừa báo lỗi và không thể lấy được thông tin từ api.

image

image

Kết quả

  • Với volume báo lỗi không lấy được thông tin khi nãy bây giờ đã lấy được thông tin của volume từ api.

Vẫn với những condition như vậy giờ chúng ta thử thêm quyền mới xem nó có hoạt động không?

image

ở đây tôi sẽ gắn thêm quyền tăng dung lượng ổ cứng.

image

image

image

image

Kết quả

  • Với volume có id bằng với giá trị gắn trong condition thì có thể thực hiện tăng dung lượng ổ cứng.
  • Với volume có id khác với giá trị được set ở condition không thể thực hiện tăng dung lượng ổ cứng và có thông báo lỗi hiện lên.

Note

  • Chỉ nên kết hợp cùng một Kiểu điều kiện với một Tên điều kiện.