NSX Advanced Load Balancer 提供了 RBAC 以实现精细访问,从而在 NSX Advanced Load Balancer 中控制、管理和监控应用程序。
RBAC 可在字段级别实施。本节介绍了如何使用子资源按字段实施 RBAC。
按字段进行精细 RBAC
通过按字段进行精细 RBAC,可以允许用户更新对象,但将更新范围限制为一组特定的字段。
例如,允许用户:
启用或禁用 GSLB 服务组,但限制更新 GSLB 对象中的任何其他字段
启用或禁用虚拟服务,但限制更新任何其他虚拟服务配置
添加、移除或更新池服务器,但限制更新任何其他池配置
子资源
要实施按字段的 RBAC,引入了现有资源的子资源。这些子资源与对象中的特定字段、功能或一组字段相关联。如果在具有写入访问权限的资源上配置了子资源,仅当这些子资源是唯一更新的字段时,才允许更新对象。允许对整个对象进行读取访问,但该权限不允许执行删除和创建操作。子资源可以组合使用,以允许用户在一个对象中配置多个字段或功能。
为定义子资源的访问权限,引入了 allow edit to only [subresource(s)] 和 allow edit of entire object except for [subresource(s)] 标记。
例如,可按如下所示使用子资源配置角色。
[admin:10]: > configure role Pool-Enabled-Role [admin:10]: role> privileges New object being created [admin:10]: role:privileges> type write_access [admin:10]: role:privileges> resource permission_pool [admin:10]: role:privileges> subresource [admin:10]: role:privileges:subresource> subresources subresource_pool_enabled [admin:10]: role:privileges:subresource> save [admin:10]: role:privileges> save [admin:10]: role> save
池的配置如下所示。
+--------------------------+-------------------------------------------+ | Field | Value | +--------------------------+-------------------------------------------+ | uuid | role-c5d28445-995c-44b8-9677-610bb20cb2e7 | | name | Pool-Enabled-Role | | privileges[1] | | | type | WRITE_ACCESS | | resource | PERMISSION_POOL | | subresource | | | exclude_subresources | False | | subresources[1] | SUBRESOURCE_POOL_ENABLED | | tenant_ref | admin | +--------------------------+-------------------------------------------+
子资源使用户可以在对象中执行特定功能。
子资源 |
功能 |
---|---|
SUBRESOURCE_POOL_ENABLED |
添加/更新/禁用池服务器 |
SUBRESOURCE_POOL_SERVERS |
添加/更新/移除池服务器 |
SUBRESOURCE_POOL_SERVER_ENABLED |
启用/禁用池服务器 |
SUBRESOURCE_VIRTUALSERVICE_ENABLED |
启用/禁用虚拟服务器 |
SUBRESOURCE_GSLBSERVICE_ENABLED |
启用/禁用 GSLB 服务对象 |
SUBRESOURCE_GSLBSERVICE_GROUPS |
更新 GSLB 服务组 |
SUBRESOURCE_GSLBSERVICE_GROUPS_ENABLED |
启用/禁用 GSLB 服务组 |
SUBRESOURCE_GSLBSERVICE_GROUP_MEMBERS |
更新 GSLB 服务组成员 |
SUBRESOURCE_GSLBSERVICE_GROUP_MEMBER_ENABLED |
启用/禁用 GSLB 服务组成员 |
SUBRESOURCE_VIRTUALSERVICE_AUTO_ALLOCATE_FLOATING_IP |
启用/禁用自动分配浮动 IP |
在 NSX Advanced Load Balancer 版本 22.1.1 之前,只能控制任何资源字段上的更新 (PUT) 操作。从 NSX Advanced Load Balancer 版本 22.1.1 开始,如果不允许访问任何字段,则也不允许创建对象。