Usar RBAC con la CLI

Comandos de CLI de RBAC xe

Utilice los siguientes comandos para trabajar con roles y sujetos.

Para enumerar todos los roles definidos disponibles

Ejecute el comando:xe role-list

Este comando devuelve una lista de los roles definidos actualmente, por ejemplo:

    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

Nota:

Esta lista de roles es estática. No se pueden agregar, quitar o modificar roles.

Para mostrar una lista de temas actuales

Ejecute el comando siguiente:

xe subject-list

Este comando devuelve una lista de los usuarios de Citrix Hypervisor, su uuid y los roles a los que están asociados:

    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

Para agregar un asunto a RBAC

Para permitir que los usuarios de AD existentes utilicen RBAC, cree una instancia de asunto dentro de Citrix Hypervisor, ya sea para el usuario de AD directamente o para los grupos que lo contienen:

Ejecute el siguiente comando para agregar una nueva instancia de asunto:

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

Para asignar una función RBAC a un asunto

Después de agregar un asunto, puede asignarlo a un rol RBAC. Puede hacer referencia al rol por su uuid o nombre:

Ejecute el comando:

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

O

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

Por ejemplo, el siguiente comando agrega un asunto con el uuidb9b3d03b-3d10-79d3-8ed7-a782c5ea13b4 a la función Administrador de grupo:

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

Para cambiar la función RBAC de un asunto

Para cambiar el rol de un usuario, es necesario eliminarlos de su rol existente y agregarlos a un rol nuevo:

Ejecute los comandos siguientes:

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

El usuario debe cerrar la sesión y volver a iniciar sesión para asegurarse de que el nuevo rol tenga efecto. Esto requiere el permiso «Cerrar sesión de conexiones de usuario activas» disponible para un administrador de grupo u operador de grupo).

Advertencia:

Cuando agrega o elimina un asunto pool-admin, puede tardar unos segundos en que todos los hosts del grupo acepten sesiones ssh asociadas a este asunto.

Auditoría

El registro de auditoría RBAC registra cualquier operación realizada por un usuario conectado.

  • El mensaje registra el identificador de asunto y el nombre de usuario asociados a la sesión que invocó la operación.

  • Si un sujeto invoca una operación que no está autorizada, la operación se registra.

  • También se registra cualquier operación exitosa. Si la operación falló, se registra el código de error.

Comandos de CLI de log xe de auditoría

El siguiente comando descarga todos los registros disponibles del archivo de auditoría RBAC del grupo en un archivo. Si el parámetro opcional ‘since’ está presente, entonces solo descarga los registros desde ese punto específico en el tiempo.

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

Para obtener todos los registros de auditoría del grupo

Ejecute el comando siguiente:

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

Para obtener registros de auditoría del grupo desde una marca de tiempo precisa de milisegundos

Ejecute el comando siguiente:

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

Para obtener registros de auditoría del grupo desde una marca de tiempo de minutos precisa

Ejecute el comando siguiente:

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