Half Coffee

NSX高阶操作:利用 API 控制管理员可访问范围

2018-10-27
NSX
     

vCenter 的权限管理非常精细,可以设定很多组,给每个组给予一定的操作权限,例如虚拟机开关机,打开 Console 等,也可以给用户设定访问范围,例如让用户A只能管理 Cluster1,用户B只能管理 Cluster2。

在 NSX 中也有类似的功能,可以设定用户对于 Edge Service Gateway、LSW 等组件的访问权限,不过从 NSX6.2 开始,这项功能被从 UI 中移除,只能通过 API 调用来执行,取消的原因可能是这个功能并没人用吧。

下面内容只供测试学习用,生产环境慎用!

如果生产环境需要实现 NSX 访问范围的控制,不妨试试 NSX 与 vRA 集成,操作更简单,且能将 NSX 网络与业务系统关联起来。

具体操作流程如下:

img

1、在 vCenter 中新增用户 test

登陆 vCenter ,点击 Administration

img

找到 Users and Groups,新增用户 test,为其设定密码

img

img

2、在 vCenter 中为新增用户 test 设置权限

找到 Global Permissions,点击绿色加号,为新增的用户设置合适的权限(本文为用户设置了只读权限)

img

img

img

img

img

**3、使用 Postman 测试 NSX API **

关于 REST API 及 Postman 的使用请参见:*vCenter 被 NSX 防火墙阻断后怎么办”

登陆 vCenter,可以看到目前有三个用户,Access Scope 全是 Global

img

通过下述 API 查看 [email protected] 的权限设置(NSX API 手册104页):

Get https://NSX-Manager-FQDN/api/2.0/services/usermgmt/role/User-NAME

img

命令执行状态为 200OK,且能正常返回与此用户的信息。

4、使用 Postman 调用 NSX API 为用户设置权限及可访问范围

测试中,我们计划让 test 只能访问 edge-1

img

通过下列 API 为用户赋权(NSX API 手册104页)

Post https://NSX-Manager-FQDN/api/2.0/services/usermgmt/role/User-NAME
<?xml version="1.0" encoding="UTF-8"?>
<accessControlEntry>
 <role>security_admin</role>
  <resource>
   <resourceId>edge-1</resuorceId>
  </resource>
</accessControlEntry>

img

API 执行状态为 204 表示正确执行

img

返回 NSX 界面,查看用户,可以看到 [email protected] 已在列表中,且 Access scope 等于我们配置的 edge 边界网关

img

使用 [email protected] 登陆 vCenter 测试

img

用户可以查看并管理 edge-1,点击其他操作,如防火墙时则提示没有权限

img

img

最后再提醒一句,操作需谨慎!

-全文完-


参考文章:

https://vswitchzero.com/2018/10/19/limiting-user-scope-and-permissions-in-nsx/


相似文章

评论