Aller au contenu principal

Scopes des clés API

Un scope limite ce qu'une clé API peut faire. L'interface les appelle Permissions. Les sessions de navigateur ont toujours toutes les permissions de leur utilisateur. Pour créer une clé, voir Clés API.

ScopeLibellé dans l'interfaceAutoriseAdmin uniquement
*Toutes les permissionsTout ce que le profil de l'utilisateur permet. Ne peut pas être combiné avec d'autres scopesNon
containers:readLecture (lister, inspecter)Lister les conteneurs et lire leur détail (GET /docker, GET /docker/{id})Non
containers:logsLogs (télécharger, streaming)Télécharger les logs, les suivre en direct, lire un fichier dans un conteneur (/logs/**, WebSocket logsStart)Non
containers:actionsActions (start, stop, restart, kill, delete)Actions sur les conteneurs et les stacks (POST /docker/{id}/{action}, POST /stacks/{name}/{action})Non
containers:shellShell (terminal distant)Ouvrir un terminal dans un conteneur (WebSocket attach)Non
containers:statsStats (monitoring temps réel)CPU, RAM, réseau et PIDs en direct (WebSocket statsStart)Non
containers:proxyProxy (tunnel de ports)Ouvrir un tunnel de ports vers un conteneur (WebSocket proxyOpen / streamOpen)Non
containers:cpCopie de fichiers (cp)Télécharger et envoyer des fichiers (GET / PUT /docker/{id}/cp)Non
cronTâches cronToutes les routes des tâches planifiées (/cron/**)Non
sftp:readSFTP (lecture)Lire les comptes et la configuration SFTPOui
sftp:writeSFTP (création, modification, suppression)Modifier les comptes SFTPOui
hosting:readHébergement (lecture)Lire les sites webOui
hosting:writeHébergement (création, modification, déploiement, suppression)Modifier et déployer les sites webOui
services:readBases de données (lecture)Lire les services managésOui
services:writeBases de données (création, nouveau mot de passe, suppression)Modifier les services managésOui
services:exposeBases de données (publication d'un port)Publier et fermer le port d'une instance. Non inclus dans services:writeOui
networks:readRéseaux privés (lecture)Lire les réseaux privésOui
networks:writeRéseaux privés (création, rattachement, détachement, suppression)Modifier les réseaux privés, y compris les réseaux d'une instance de serviceOui
functions:read—Lire les fonctions et la configuration du module (GET /functions/**)Oui
functions:write—Créer, redimensionner, démarrer, arrêter, redémarrer et supprimer des fonctionsOui
functions:deploy—Code et déploiements, secrets, identifiants d'invocation, variables, handler, réseaux, accès à Internet et autorisation MCP d'une fonctionOui
functions:invoke—Invoquer une fonction (POST /functions/{name}/invoke) et, avec cron, créer, modifier ou lancer une invocation planifiée. Implicite seulement avec *Oui
audit:readAudit trail (lecture)Lire le journal d'audit (GET /audit)Oui

Règles​

  • Le profil d'abord : une clé porte le profil de son utilisateur. Un scope réservé aux admins sur la clé d'un utilisateur ne donne rien.
  • Les permissions sur les conteneurs s'appliquent toujours : un scope conteneur n'atteint que les conteneurs auxquels l'utilisateur a accès.
  • Sans scope : votre propre profil et vos clés (/users/me, /users/me/api-keys), ainsi que les routes d'administration des utilisateurs et /domains, qui ne vérifient que le profil.
  • Pas d'escalade : une clé ne peut créer des clés que dans ses propres scopes.
  • Fonctions (travail en cours) : créer une fonction avec des variables, des réseaux, l'accès à Internet, SigV4 ou l'autorisation MCP, ou modifier ses variables, son handler ou son autorisation MCP, demande à la fois functions:write et functions:deploy.
  • Arrêts WebSocket : logsStop et statsStop ne demandent aucun scope : ils arrêtent seulement un flux ouvert par la connexion.
  • Validation : au moins un scope est requis, les scopes inconnus sont refusés. Les clés créées avant l'arrivée des scopes n'en ont aucun et gardent un accès complet.

Dans l'interface​

La liste Permissions du formulaire de création n'affiche que les scopes utiles :

ScopesAffichés quand
sftp:*, hosting:*, services:*Vous êtes admin et le module est activé (SFTP_ENABLED, HOSTING_ENABLED, SERVICES_ENABLED)
networks:*, audit:readVous êtes admin

Les scopes functions:* ne figurent pas encore dans le formulaire (« — » ci-dessus) : une clé avec Toutes les permissions les couvre, ou créez la clé via l'API (POST /users/me/api-keys).