角色分配×权限控制:vCenter 虚拟化安全管理核心法则
角色分配×权限控制:vCenter 虚拟化安全管理核心法则
在vSphere环境中,合理分配用户权限是确保系统安全和高效运行的关键。本文将详细介绍vCenter Server的角色和权限管理,包括权限的组件、预定义角色以及如何定义和应用权限。通过本文的学习,读者将能够为指定用户或用户组分配合理的权限,增强vSphere环境的安全性。
11. vCenter Server 角色和权限管理
为用户帐户分配的权限将决定可针对虚拟机和其他 vCenter Server 清单对象执行的操作类型。
在 vSphere 环境中,管理员负责管理数据中心的虚拟机。此时的 vSphere 用户帐户需要拥有足够的特权查看和管理这些虚拟机。同时还可以向其他用户帐户添加特权。
阅读目标
- 介绍 vCenter Server 角色和权限的概念
- 确定应用权限的方法
- 向虚拟机添加权限
11.1 vCenter Server 权限的组件
vCenter Server 权限支持一个用户或用户组对 vCenter Server 清单对象执行一系列操作。
vCenter Server 权限模式。
要创建权限,必须定义三个组件:用户或用户组、角色和对象。换句话说,可以定义 vSphere 操作的用户、内容和位置。
例如,用户帐户是 xuser。使用此帐户,您可以在数据中心管理虚拟机:
- 用户:xuser
- 角色:虚拟机高级用户
- 对象:数据中心
11.2 vCenter Server 角色
创建 vCenter Server 权限时,必须选择一个角色。角色包含一组权限。
将角色视为一个拼图,可以在其中添加或删除权限。每个权限都定义了执行操作和读取属性的权限。
例如,虚拟机高级用户角色授予用户对虚拟机和资源对象执行以下操作的权限:
- 创建虚拟机。
- 向虚拟机添加 CPU 和存储等资源。
- 启动或关闭虚拟机。
- 查看和修改虚拟机属性。
(1)vCenter Server 预定义角色
vCenter Server 提供了一组预定义的系统角色和示例角色。
- 系统角色是永久性的。管理员无法编辑与这些角色相关联的权限。
- 示例角色专为某些频繁执行的任务组合而设计。管理员可以克隆、修改或删除这些角色。
① Administrator
Administrator 角色拥有对某一对象的全部可用权限。
对某个对象拥有 Administrator 角色的用户拥有对该对象的完全访问权限。他们可以查看针对该对象的所有操作并予以执行。
如果对某个集群拥有 Administrator 角色,则可以为该集群上的各个用户和组分配权限。
关于如何查看角色和其权限
访问 vSphere UI,找到菜单,转到 Administration > Access Control > Roles,在 Roles provider 列表中找到 Administrator,选择 PRIVILEGES
② No Access
No Access 系统角色可用于限制对对象的访问。例如,如果必须在层次结构中建立例外,则可以使用 No Access 角色。
场景
- 必须授予 vmuser 访问权限,才能在 Discovered virtual machine 文件夹中创建和管理虚拟机。
- 此用户无法访问名为 app8-1 的虚拟机。
解决方案
- 需要针对 Discovered virtual machine 文件夹为 vmuser 分配虚拟机高级用户(Virtual machine power user)角色。
- 需要针对 app8-1 为 vmuser 分配 No Access 角色。
vmuser 现在可以管理文件夹中的所有虚拟机,但 app8-1除外。
在 VM app8-1 中查看 vmuser 的权限,可以看到其角色为 No access。
注意:不同的规则规定了如何向对象应用权限。在同一层次结构中组合角色时,请务必谨慎使用。
11.3 定义和应用权限
(1)为用户账户设置全局权限
访问 vSphere UI,找到菜单,转到 Administration > Access Control > Global Permissions,在 Global Permissions 界面点击 ADD。
- 进入 Add Permission 界面,先选择 Domain,这里默认选择 vCenter SSO 域
- 再选择 User/Group,找到特定的用户或用户组。
- 最后选择相应的 Role,勾选 Propagate to children。
最后点击 OK
回到 Global Permissions 界面,在下方的列表中,可以看到刚才授予全局权限的用户或用户组以及其绑定的角色。
(2)针对指定对象设置权限(非全局权限)
vSphere 使用具有访问控制功能的模式,该模式可确定是否允许用户对对象层次结构中的特定对象执行任务。
在定义权限时,需要确保每个用户都可以查看其管理的 vCenter Server 清单对象并对其执行操作。同时,将撤销对用户不得查看或更改的对象的访问权限。
以虚拟机对象为例
访问 vSphere UI,选中目标 VM,转到 Permissions > ADD,
- 进入 Add Permission 界面,先选择 Domain,这里默认选择 vCenter SSO 域
- 再选择 User/Group,找到特定的用户或用户组。
- 最后选择相应的 Role,勾选 Propagate to children。
(3)通过不同方式应用权限
① 传递权限
权限可以向下传递到对象层次结构中的所有子对象,也可以仅应用到临近对象。
上述示例中:
- vmuser 在 Linux 文件夹拥有 Virtual machine power user (sample) 访问权限。此角色将传递到所有子对象。
- 即 vmuser 默认对 Linux 文件夹中所有的 VM 均拥有 Virtual machine power user (sample) 访问权限。
② 加入权限
如果某个用户属于多个组,且这些组对同一对象均拥有权限,则该用户将获得为这些组分配的针对该对象的所有权限。
在上述示例中:
- 为 vCLSAdmin 组分配 vCLSAdmin 角色,该自定义角色仅包含一项权限:拥有管理 vCLS 虚拟机的权限。
- 为 VMPU 组分配了另一个自定义角色 Virtual machine power user (sample),该角色具有管理 VM (除了 vCLS外)的权限。
- 这两个角色都会传播到子对象。
- 将用户 vmuser 加入 vCLSAdmin 和 VMPU,所以 vmuser 用户会获得数据中心中管理所有 VM (常规 VM 和 vCLS VM)的权限。
③ 替代权限
我们可以为较低级别的对象明确设置不同的权限,从而替代在较高级别设置的权限。
如果用户属于多个组,则会为该用户授予所有应用于这些组的权限。
在上述示例中:
- vmuser 在 Linux 文件夹拥有 Virtual machine power user (sample) 访问权限。此角色将传递到所有子对象。
- 由于管理员在虚拟机 app8-1 的 Permissions 上为 vmuser 赋予了新的角色 No access,所以该角色的权限会覆盖 Virtual machine power user (sample) 角色的权限。因此 vmuser 对 虚拟机 app8-1 没有访问权限。
④ 定义明确的用户权限
对于对象而言,为用户明确定义的权限优先于所有用户组权限。即非全局权限优先级大于全局权限。
在上述示例中:
- 为 vCLSAdmin 组分配了 vCLSAdmin 角色。
- 为 VMPU 组分配了角色 Virtual machine power user (sample)。
- 为 xvmuser 分配了 No Access 角色。
- 这三个角色都会传递到子对象。
- vmuser 同时属于 vCLSAdmin 和 VMPU。
对于对象而言,明确定义的用户权限优先于所有用户组权限。
在示例中,虽然 vmuser 属于 vCLSAdmin 和 VMPU,但对数据中心仍然没有访问权限(即获得 No Access 特权)。
小结
对于 vSphere 用户帐户权限的理解,可以有效帮助管理员为指定用户或用户组分配合理权限,增强 vSphere 环境的安全性。