结合使用 RBAC 和 CLI

RBAC xe CLI 命令

可使用以下命令对角色和使用者进行相应操作。

列出所有可用的已定义角色

运行以下命令:xe role-list

此命令返回当前已定义角色的列表,例如:

uuid( RO): 0165f154-ba3e-034e-6b27-5d271af109ba
name ( RO): pool-admin
description ( RO): The Pool Administrator role has full access to all
features and settings, including accessing Dom0 and managing subjects,
roles and external authentication

uuid ( RO): b9ce9791-0604-50cd-0649-09b3284c7dfd
name ( RO): pool-operator
description ( RO): The Pool Operator role manages host-  and pool-wide resources,
including setting up storage, creating resource pools and managing patches, and
high availability (HA).

uuid( RO): 7955168d-7bec-10ed-105f-c6a7e6e63249
name ( RO): vm-power-admin
description ( RO): The VM Power Administrator role has full access to VM and
template management and can choose where to start VMs and use the dynamic memory
control and VM snapshot features

uuid ( RO): aaa00ab5-7340-bfbc-0d1b-7cf342639a6e
name ( RO): vm-admin
description ( RO):  The VM Administrator role can manage VMs and templates

uuid ( RO): fb8d4ff9-310c-a959-0613-54101535d3d5
name ( RO): vm-operator
description ( RO):  The VM Operator role can use VMs and interact with VM consoles

uuid ( RO): 7233b8e3-eacb-d7da-2c95-f2e581cdbf4e
name ( RO): read-only
description ( RO): The Read-Only role can log in with basic read-only access

注意:

此角色列表固定不变。您无法添加、删除或修改角色。

显示当前使用者的列表

运行以下命令:

xe subject-list

此命令将返回 XenServer 用户、其 UUID 及其相关联的角色的列表:

uuid ( RO): bb6dd239-1fa9-a06b-a497-3be28b8dca44
subject-identifier ( RO): S-1-5-21-1539997073-1618981536-2562117463-2244
other-config (MRO): subject-name: example01\user_vm_admin; subject-upn: \
  user_vm_admin@XENDT.NET; subject-uid: 1823475908; subject-gid: 1823474177; \
  subject-sid: S-1-5-21-1539997073-1618981536-2562117463-2244; subject-gecos: \
  user_vm_admin; subject-displayname: user_vm_admin; subject-is-group: false; \
  subject-account-disabled: false; subject-account-expired: false; \
  subject-account-locked: false;subject-password-expired: false
roles (SRO): vm-admin

uuid ( RO): 4fe89a50-6a1a-d9dd-afb9-b554cd00c01a
subject-identifier ( RO): S-1-5-21-1539997073-1618981536-2562117463-2245
other-config (MRO): subject-name: example02\user_vm_op; subject-upn: \
  user_vm_op@XENDT.NET; subject-uid: 1823475909; subject-gid: 1823474177; \
  subject-sid: S-1-5-21-1539997073-1618981536-2562117463-2245; \
  subject-gecos: user_vm_op; subject-displayname: user_vm_op; \
  subject-is-group: false; subject-account-disabled: false; \
  subject-account-expired: false; subject-account-locked: \
  false; subject-password-expired: false
roles (SRO): vm-operator

uuid ( RO): 8a63fbf0-9ef4-4fef-b4a5-b42984c27267
subject-identifier ( RO): S-1-5-21-1539997073-1618981536-2562117463-2242
other-config (MRO): subject-name: example03\user_pool_op; \
  subject-upn: user_pool_op@XENDT.NET; subject-uid: 1823475906; \
  subject-gid: 1823474177; subject-s id:
  S-1-5-21-1539997073-1618981536-2562117463-2242; \
  subject-gecos: user_pool_op; subject-displayname: user_pool_op; \
  subject-is-group: false; subject-account-disabled: false; \
  subject-account-expired: false; subject-account-locked: \
  false; subject-password-expired: false
  roles (SRO): pool-operator

将使用者添加到 RBAC

为使现有 AD 用户能够使用 RBAC,请在 XenServer 中直接为 AD 用户或为包含组创建一个使用者实例:

运行以下命令以添加新的使用者实例:

xe subject-add subject-name=AD user/group

向使用者分配 RBAC 角色

添加使用者之后,可以为其分配 RBAC 角色。可以通过角色的 UUID 或名称引用该角色:

运行以下命令:

    xe subject-role-add uuid=subject uuid role-uuid=role_uuid

    xe subject-role-add uuid=subject uuid role-name=role_name

例如,以下命令会将 UUID 为 b9b3d03b-3d10-79d3-8ed7-a782c5ea13b4 的使用者添加到池管理员角色:

    xe subject-role-add uuid=b9b3d03b-3d10-79d3-8ed7-a782c5ea13b4 role-name=pool-admin

更改使用者的 RBAC 角色

要更改用户的角色,需要将用户从现有角色中删除,然后再将其添加到新角色:

运行以下命令:

    xe subject-role-remove uuid=subject uuid role-name= \
      role_name_to_remove
    xe subject-role-add uuid=subject uuid  role-name= \
      role_name_to_add

用户必须注销并重新登录以确保新角色生效。此操作需要适用于池管理员或池操作员的“注销活动用户连接”权限。

警告:

添加或删除池管理员使用者时,可能需要几秒钟时间来允许池中的所有主机接受与此使用者相关联的 SSH 会话。

审核

RBAC 审核日志将记录已登录的用户执行的所有操作。

  • 该消息将记录与调用该操作的会话相关联的使用者 ID 和用户名。

  • 如果使用者调用某个未获授权的操作,则将记录该操作。

  • 还会记录任何成功的操作。如果操作失败,则会记录错误代码。

审核日志 xe CLI 命令

以下命令将池中 RBAC 审核文件的所有可用记录下载到某个文件中。如果可选参数“since”存在,该命令将仅下载自该特定时间点开始的记录。

xe audit-log-get \[since=timestamp\] filename=output filename

获取池中的所有审核记录

运行以下命令:

xe audit-log-get filename=/tmp/auditlog-pool-actions.out

获取自精确到毫秒的时间戳开始的池审核记录

运行以下命令:

xe audit-log-get since=2009-09-24T17:56:20.530Z \
filename=/tmp/auditlog-pool-actions.out

获取自精确到分钟的时间戳开始的池审核记录

运行以下命令:

xe audit-log-get since=2009-09-24T17:56Z \
filename=/tmp/auditlog-pool-actions.out

结合使用 RBAC 和 CLI