Automation in the context of multifactor authentication/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 3: Line 3:
Les flux de travail qui établissent sans intervention humaine des connexions à nos grappes ne peuvent pas utiliser un deuxième facteur. Avec l'authentification multifacteur obligatoire, vous devez demander l'accès à un des nœuds spéciaux qui sont réservés pour les flux automatisés. Un deuxième facteur ne sera pas requis, mais sachez que les fonctionnalités de ces nœuds sont limitées par rapport à celles des nœuds de connexion réguliers en termes de type d'authentification requise et aussi des types d'actions à exécuter.
Les flux de travail qui établissent sans intervention humaine des connexions à nos grappes ne peuvent pas utiliser un deuxième facteur. Avec l'authentification multifacteur obligatoire, vous devez demander l'accès à un des nœuds spéciaux qui sont réservés pour les flux automatisés. Un deuxième facteur ne sera pas requis, mais sachez que les fonctionnalités de ces nœuds sont limitées par rapport à celles des nœuds de connexion réguliers en termes de type d'authentification requise et aussi des types d'actions à exécuter.


<div class="mw-translate-fuzzy">
= Mesures de sécurité accrues =
= Mesures de sécurité accrues =
== Accès sur demande seulement ==
== Accès sur demande seulement ==
Pour avoir accès aux nœuds spéciaux d'automatisation, écrivez au [[Technical support/fr|soutien technique]]. Décrivez le type d'automatisation, listez les commandes qui seront exécutées ainsi que les outils ou les bibliothèques pour gérer l'automatisation.
Pour avoir accès aux nœuds spéciaux d'automatisation, écrivez au [[Technical support/fr|soutien technique]]. Décrivez le type d'automatisation, listez les commandes qui seront exécutées ainsi que les outils ou les bibliothèques pour gérer l'automatisation.
</div>


<div class="mw-translate-fuzzy">
== Accès via certaines clés SSH ==
== Accès via certaines clés SSH ==
L'accès aux nœuds d'automatisation se fait uniquement via les [[SSH_Keys#Using_CCDB|clés SSH téléversées dans CCDB]]. Les clés inscrites dans un fichier <i>.ssh/authorized_keys</i> ne sont pas acceptées. De plus, les clés SSH <b>doivent respecter</b> les contraintes suivantes.   
L'accès aux nœuds d'automatisation se fait uniquement via les [[SSH_Keys#Using_CCDB|clés SSH téléversées dans CCDB]]. Les clés inscrites dans un fichier <i>.ssh/authorized_keys</i> ne sont pas acceptées. De plus, les clés SSH <b>doivent respecter</b> les contraintes suivantes.
</div>  


=== <code>restrict</code> ===
=== <code>restrict</code> ===
Line 19: Line 23:
Cette contrainte exécute la commande <code>COMMAND</code> lors de la connexion. Ceci vous permet de définir les seules commandes qui peuvent être utilisées avec la clé.  
Cette contrainte exécute la commande <code>COMMAND</code> lors de la connexion. Ceci vous permet de définir les seules commandes qui peuvent être utilisées avec la clé.  


<div class="mw-translate-fuzzy">
== Scripts enveloppants pour la commande <code>command=</code> ==
== Scripts enveloppants pour la commande <code>command=</code> ==
Cette commande permet de définir toutes les commandes, mais elle est le plus utile quand vous avez un script enveloppant qui accepte ou refuse les commandes qui sont appelées. Vous pouvez écrire vos propres scripts, mais nous en avons préparé certains pour des cas qui se présentent fréquemment. Ces scripts se trouvent dans [https://github.com/ComputeCanada/software-stack-custom/tree/main/bin/computecanada/allowed_commands ce dépôt git].
Cette commande permet de définir toutes les commandes, mais elle est le plus utile quand vous avez un script enveloppant qui accepte ou refuse les commandes qui sont appelées. Vous pouvez écrire vos propres scripts, mais nous en avons préparé certains pour des cas qui se présentent fréquemment. Ces scripts se trouvent dans [https://github.com/ComputeCanada/software-stack-custom/tree/main/bin/computecanada/allowed_commands ce dépôt git].
</div>


<div class="mw-translate-fuzzy">
* <code>/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/transfer_commands.sh</code> permet uniquement les commandes de transfert de fichiers, comme <code>scp</code>, <code>sftp</code> ou <code>rsync</code>
* <code>/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/transfer_commands.sh</code> permet uniquement les commandes de transfert de fichiers, comme <code>scp</code>, <code>sftp</code> ou <code>rsync</code>
* <code>/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/archiving_commands.sh</code> permet les commmandes d'archivage de fichiers, comme <code>gzip</code>, <code>tar</code> ou <code>dar</code>
* <code>/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/archiving_commands.sh</code> permet les commmandes d'archivage de fichiers, comme <code>gzip</code>, <code>tar</code> ou <code>dar</code>
Line 28: Line 35:
* <code>/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/slurm_commands.sh</code> permet certaines commandes Slurm, comme <code>squeue</code>, <code>sbatch</code>
* <code>/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/slurm_commands.sh</code> permet certaines commandes Slurm, comme <code>squeue</code>, <code>sbatch</code>
* <code>/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/allowed_commands.sh</code> permet toutes les commandes ci-dessus
* <code>/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/allowed_commands.sh</code> permet toutes les commandes ci-dessus
</div>


== Exemples de clés SSH acceptées ==
== Exemples de clés SSH acceptées ==
Line 41: Line 49:
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Warning|title=Warning|content=
{{Warning|title=Warning|content=
The restrictions must be added directly as text in front of your key, before uploading the complete string in [https://ccdb.alliancecan.ca/ssh_authorized_keys your account].  
The constraints must be added directly as text in front of your key, before uploading the complete string in [https://ccdb.alliancecan.ca/ssh_authorized_keys your account].  
}}
}}
</div>
</div>

Revision as of 16:10, 11 March 2024

Other languages:

Les flux de travail qui établissent sans intervention humaine des connexions à nos grappes ne peuvent pas utiliser un deuxième facteur. Avec l'authentification multifacteur obligatoire, vous devez demander l'accès à un des nœuds spéciaux qui sont réservés pour les flux automatisés. Un deuxième facteur ne sera pas requis, mais sachez que les fonctionnalités de ces nœuds sont limitées par rapport à celles des nœuds de connexion réguliers en termes de type d'authentification requise et aussi des types d'actions à exécuter.

Mesures de sécurité accrues

Accès sur demande seulement

Pour avoir accès aux nœuds spéciaux d'automatisation, écrivez au soutien technique. Décrivez le type d'automatisation, listez les commandes qui seront exécutées ainsi que les outils ou les bibliothèques pour gérer l'automatisation.

Accès via certaines clés SSH

L'accès aux nœuds d'automatisation se fait uniquement via les clés SSH téléversées dans CCDB. Les clés inscrites dans un fichier .ssh/authorized_keys ne sont pas acceptées. De plus, les clés SSH doivent respecter les contraintes suivantes.

restrict

Cette contrainte désactive la redirection de port (port forwarding), la redirection d'agent (agent forwarding) et la redirection X11. Le pseudo télétype (PTY) est aussi désactivé, puisqu'il bloquerait la plupart des flux interactifs. Nous posons ces conditions parce que les nœuds spéciaux ne doivent pas être utilisés pour les processus interactifs ou de longue durée; dans ces cas, il faut utiliser les nœuds réguliers.

from="pattern-list"

Cette contrainte fait en sorte que la clé ne peut être utilisée qu'à partir d'adresses IP qui respectent le pattern et non par d'autres ordinateurs. La liste des patterns doit être uniquement composée d'adresses IP qui spécifient la classe du réseau, le réseau et le sous-réseau, soit les trois premières parties d'une adresse IP. Par exemple, 192.168.*.* ne serait pas acceptée, mais 192.168.1.* serait valide.

command="COMMAND"

Cette contrainte exécute la commande COMMAND lors de la connexion. Ceci vous permet de définir les seules commandes qui peuvent être utilisées avec la clé.

Scripts enveloppants pour la commande command=

Cette commande permet de définir toutes les commandes, mais elle est le plus utile quand vous avez un script enveloppant qui accepte ou refuse les commandes qui sont appelées. Vous pouvez écrire vos propres scripts, mais nous en avons préparé certains pour des cas qui se présentent fréquemment. Ces scripts se trouvent dans ce dépôt git.

  • /cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/transfer_commands.sh permet uniquement les commandes de transfert de fichiers, comme scp, sftp ou rsync
  • /cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/archiving_commands.sh permet les commmandes d'archivage de fichiers, comme gzip, tar ou dar
  • /cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/file_commands.sh permet la commande de manipulation de fichiers, comme mv, cp ou rm
  • /cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/git_commands.sh permet la commande git
  • /cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/slurm_commands.sh permet certaines commandes Slurm, comme squeue, sbatch
  • /cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/allowed_commands.sh permet toutes les commandes ci-dessus

Exemples de clés SSH acceptées

Les clés doivent respecter les trois conditions décrites ci-dessus. En voici quelques exemples qui seraient valides pour le transfert de fichiers avec scp, sftp ou rsync :

restrict,from="216.18.209.*",command="/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/transfer_commands.sh" ssh-ed25519 AAAAC3NzaC1lZDI1NTE6AACAIExK9iTTDGsyqKKzduA46DvIJ9oFKZ/WN5memqG9Invw

Le prochain exemple permettrait uniquement des commandes Slurm (squeue, scancel, sbatch, scontrol, sq).

restrict,from="216.18.209.*",command="/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/slurm_commands.sh" ssh-ed25519 AAAAC3NzaC1lZDI1NTE6AACAIExK9iTTDGsyqKKzduA46DvIJ9oFKZ/WN5memqG9Invw


Warning

The constraints must be added directly as text in front of your key, before uploading the complete string in your account.



Nœuds d'automatisation, par grappe

Pour vous connecter à un nœud d'automatisation, utilisez les adresses suivantes :

  • Cedar : robot.cedar.alliancecan.ca
  • Graham : robot.graham.alliancecan.ca
  • Béluga : robot.beluga.alliancecan.ca
  • Narval : robot.narval.alliancecan.ca
  • Niagara : robot.niagara.alliancecan.ca

Ne pas se tromper de clé

Si vous avez plusieurs clés, assurez-vous d'utiliser la bonne. Ceci peut se faire avec des paramètres passés à la commande, comme dans les exemples ci-dessous.

Avec ssh ou scp,

Question.png
[name@server ~]$ ssh -i .ssh/private_key_to_use ...
Question.png
[name@server ~]$ scp -i .ssh/private_key_to_use ...

Avec rsync,

Question.png
[name@server ~]$ rsync -e "ssh -i .ssh/private_key_to_use" ...

Il est souvent beaucoup plus pratique d'inclure ces paramètres dans votre fichier ~/.ssh/config pour qu'ils soient pris en compte quand le client SSH est invoqué. Par exemple :

host robot
 hostname robot.cluster.alliancecan.ca
 user myrobot
 identityfile ~/.ssh/my-robot-key
 identitiesonly yes
 requesttty no

Ceci signifie que les deux types de commandes suivantes feront ce que vous voulez.

Question.png
[name@server ~]$ ssh robot /usr/bin/ls
Question.png
[name@server ~]$ rsync -a datadir/a robot:scratch/testdata