Automation in the context of multifactor authentication/fr: Difference between revisions
(Created page with "== Scripts enveloppants pour la commande <code>command=</code> == La <code>command</code> 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 ppour des cas qui se présentent fréquemment. Ces scripts se trouvent dans [https://github.com/ComputeCanada/software-stack-custom/tree/main/bi...") |
(Created page with "= 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.") |
||
Line 42: | Line 42: | ||
</div> | </div> | ||
= 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 <code>ssh</code> ou <code>scp</code>, | Avec <code>ssh</code> ou <code>scp</code>, |
Revision as of 21:40, 30 January 2024
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 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, é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 spéciaux se fera uniquement via les clés SSH téléversées dans CCDB. Les clés inscrites dans un fichier .ssh/authorized_keys ne seront 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=
La command
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 ppour 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, commescp
,sftp
oursync
./cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/archiving_commands.sh
permet les commmandes d'archivage de fichiers, commegzip
,tar
oudar
./cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/file_commands.sh
permet la commande de manipulation de fichiers, commemv
,cp
ourm
./cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/git_commands.sh
permet la commandegit
./cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/slurm_commands.sh
permet certaines commandes Slurm, commesqueue
,sbatch
./cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/allowed_commands.sh
permet toutes les commandes ci-dessus.
Examples of accepted SSH keys
Accepted SSH keys must include all 3 of the above constraints to be accepted. Here are examples of SSH keys that would be accepted:
For example, the following key would be accepted, and could only be used for transferring files (through scp
, sftp
or rsync
for example):
restrict,from="216.18.209.*",command="/cvmfs/soft.computecanada.ca/custom/bin/computecanada/allowed_commands/transfer_commands.sh" ssh-ed25519 AAAAC3NzaC1lZDI1NTE6AACAIExK9iTTDGsyqKKzduA46DvIJ9oFKZ/WN5memqG9Invw
while this one would only allow Slurm commands (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
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
,
[name@server ~]$ ssh -i .ssh/private_key_to_use ...
[name@server ~]$ scp -i .ssh/private_key_to_use ...
Avec rsync
,
[name@server ~]$ rsync -e "ssh -i .ssh/private_key_to_use" ...