XenServer

通过 CLI 使用 RBAC

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-->

此命令返回 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
<!--NeedCopy-->

将主体添加到 RBAC

要使现有 AD 用户能够使用 RBAC,请在 XenServer 中创建主体实例,可以直接为 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-->
通过 CLI 使用 RBAC