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 开始,如果不允许访问任何字段,则也不允许创建对象。