vCenter 的权限管理非常精细,可以设定很多组,给每个组给予一定的操作权限,例如虚拟机开关机,打开 Console 等,也可以给用户设定访问范围,例如让用户A只能管理 Cluster1,用户B只能管理 Cluster2。
在 NSX 中也有类似的功能,可以设定用户对于 Edge Service Gateway、LSW 等组件的访问权限,不过从 NSX6.2 开始,这项功能被从 UI 中移除,只能通过 API 调用来执行,取消的原因可能是这个功能并没人用吧。
下面内容只供测试学习用,生产环境慎用!
如果生产环境需要实现 NSX 访问范围的控制,不妨试试 NSX 与 vRA 集成,操作更简单,且能将 NSX 网络与业务系统关联起来。
具体操作流程如下:
1、在 vCenter 中新增用户 test
登陆 vCenter ,点击 Administration
找到 Users and Groups,新增用户 test,为其设定密码
2、在 vCenter 中为新增用户 test 设置权限
找到 Global Permissions,点击绿色加号,为新增的用户设置合适的权限(本文为用户设置了只读权限)
**3、使用 Postman 测试 NSX API **
关于 REST API 及 Postman 的使用请参见:“*vCenter 被 NSX 防火墙阻断后怎么办”
登陆 vCenter,可以看到目前有三个用户,Access Scope 全是 Global
通过下述 API 查看 [email protected] 的权限设置(NSX API 手册104页):
Get https://NSX-Manager-FQDN/api/2.0/services/usermgmt/role/User-NAME
命令执行状态为 200OK,且能正常返回与此用户的信息。
4、使用 Postman 调用 NSX API 为用户设置权限及可访问范围
测试中,我们计划让 test 只能访问 edge-1
通过下列 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>
API 执行状态为 204 表示正确执行
返回 NSX 界面,查看用户,可以看到 [email protected] 已在列表中,且 Access scope 等于我们配置的 edge 边界网关
使用 [email protected] 登陆 vCenter 测试
用户可以查看并管理 edge-1,点击其他操作,如防火墙时则提示没有权限
最后再提醒一句,操作需谨慎!
-全文完-
参考文章:
https://vswitchzero.com/2018/10/19/limiting-user-scope-and-permissions-in-nsx/