Citrix Hypervisor

将 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
<!--NeedCopy-->

注意:

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

显示当前使用者的列表

运行以下命令:

xe subject-list
<!--NeedCopy-->

此命令将返回 Citrix Hypervisor 用户、其 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
<!--NeedCopy-->

将使用者添加到 RBAC

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

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

xe subject-add subject-name=AD user/group
<!--NeedCopy-->

向使用者分配 RBAC 角色

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

运行以下命令:

xe subject-role-add uuid=subject uuid role-uuid=role_uuid
<!--NeedCopy-->

xe subject-role-add uuid=subject uuid role-name=role_name
<!--NeedCopy-->

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

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

更改使用者的 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
<!--NeedCopy-->

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

如果从用户中删除池管理员角色,还可以考虑更改服务器 root 用户密码并轮换池密码。有关详细信息,请参阅池安全性

警告:

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

审核

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

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

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

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

审核日志 xe CLI 命令

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

xe audit-log-get [since=timestamp] filename=output filename
<!--NeedCopy-->

获取池中的所有审核记录

运行以下命令:

xe audit-log-get filename=/tmp/auditlog-pool-actions.out
<!--NeedCopy-->

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

运行以下命令:

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

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

运行以下命令:

xe audit-log-get since=2009-09-24T17:56Z \
    filename=/tmp/auditlog-pool-actions.out
<!--NeedCopy-->
将 RBAC 与 CLI 结合使用