Utiliser RBAC avec la CLI
Commandes xe CLI RBAC
Utilisez les commandes suivantes pour travailler avec les rôles et les sujets.
Pour lister tous les rôles définis disponibles
Exécutez la commande : xe role-list
Cette commande renvoie une liste des rôles actuellement définis, par exemple :
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-->
Remarque :
Cette liste de rôles est statique. Vous ne pouvez pas ajouter, supprimer ou modifier des rôles.
Pour afficher une liste des sujets actuels
Exécutez la commande suivante :
xe subject-list
<!--NeedCopy-->
Cette commande renvoie une liste des utilisateurs XenServer®, leur uuid et les rôles auxquels ils sont associés :
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-->
Pour ajouter un sujet à RBAC
Pour permettre aux utilisateurs AD existants d’utiliser RBAC, créez une instance de sujet dans XenServer, soit directement pour l’utilisateur AD, soit pour les groupes conteneurs :
Exécutez la commande suivante pour ajouter une nouvelle instance de sujet :
xe subject-add subject-name=AD user/group
<!--NeedCopy-->
Pour attribuer un rôle RBAC à un sujet
Après avoir ajouté un sujet, vous pouvez lui attribuer un rôle RBAC. Vous pouvez faire référence au rôle par son UUID ou son nom :
Exécutez la commande :
xe subject-role-add uuid=subject uuid role-uuid=role_uuid
<!--NeedCopy-->
Ou
xe subject-role-add uuid=subject uuid role-name=role_name
<!--NeedCopy-->
Par exemple, la commande suivante ajoute un sujet avec l’UUID b9b3d03b-3d10-79d3-8ed7-a782c5ea13b4 au rôle d’administrateur de pool :
xe subject-role-add uuid=b9b3d03b-3d10-79d3-8ed7-a782c5ea13b4 role-name=pool-admin
<!--NeedCopy-->
Pour modifier le rôle RBAC d’un sujet
Pour modifier le rôle d’un utilisateur, il est nécessaire de le retirer de son rôle existant et de l’ajouter à un nouveau rôle :
Exécutez les commandes suivantes :
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-->
L’utilisateur doit se déconnecter et se reconnecter pour s’assurer que le nouveau rôle prend effet. Cela nécessite la permission « Déconnecter les connexions utilisateur actives » disponible pour un administrateur de pool ou un opérateur de pool.
Si vous supprimez le rôle d’administrateur de pool d’un utilisateur, envisagez également de modifier le mot de passe root et de renouveler le secret du pool. Pour plus d’informations, consultez Sécurité du pool.
Avertissement :
Lorsque vous ajoutez ou supprimez un sujet administrateur de pool, il peut falloir quelques secondes pour que tous les hôtes du pool acceptent les sessions SSH associées à ce sujet.
Audit
Le journal d’audit RBAC enregistre toute opération effectuée par un utilisateur connecté.
-
Le message enregistre l’ID du sujet et le nom d’utilisateur associés à la session qui a invoqué l’opération.
-
Si un sujet invoque une opération non autorisée, l’opération est enregistrée.
-
Toute opération réussie est également enregistrée. Si l’opération a échoué, le code d’erreur est consigné.
Journal d’audit des commandes CLI xe
La commande suivante télécharge tous les enregistrements disponibles du fichier d’audit RBAC du pool vers un fichier. Si le paramètre optionnel ‘since’ est présent, il ne télécharge que les enregistrements à partir de ce point précis dans le temps.
xe audit-log-get \[since=timestamp\] filename=output filename
<!--NeedCopy-->
Pour obtenir tous les enregistrements d’audit du pool
Exécutez la commande suivante :
xe audit-log-get filename=/tmp/auditlog-pool-actions.out
<!--NeedCopy-->
Pour obtenir les enregistrements d’audit du pool depuis un horodatage précis en millisecondes
Exécutez la commande suivante :
xe audit-log-get since=2009-09-24T17:56:20.530Z \
filename=/tmp/auditlog-pool-actions.out
<!--NeedCopy-->
Pour obtenir les enregistrements d’audit du pool depuis un horodatage précis en minutes
Exécutez la commande suivante :
xe audit-log-get since=2009-09-24T17:56Z \
filename=/tmp/auditlog-pool-actions.out
<!--NeedCopy-->