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.
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.
Tạo mới role
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
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
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
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
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
Để 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
Sau khi đã thêm quyền vào role hãy tiến hành truy cập lại
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
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.
Truy cập vào một server bất kỳ đã được tạo.
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
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ì.
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
hay95axcaxc-aqzz897-665k-x3cf
hayxxva-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
hay95axcaxc-aqzz897-665k-x3cf
hayxxva-aplmih88-aqzz897-665
sẽ không thao tác được.
Nhập giá trị và tiến hành xác nhận tạo mới/chỉnh sửa role.
Tiến hành kiểm tra lại thông tin role vừa tạo mới/chỉnh sửa.
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
.
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
.
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.
Quay lại dịch vụ Cloud-Server và thử lại giống phía trên.
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.
Kiểm tra việc thao tác bên dịch vụ Cloud-Server.
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.
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?
ở đây tôi sẽ gắn thêm quyền tăng dung lượng ổ cứng.
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ộtTên điều kiện
.