通过 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
已复制!
失败!