Donnez à chaque pipeline exactement l'accès dont il a besoin
Avec des jetons d'API, automatisez dans vos pipelines les tâches liées aux serveurs, aux réseaux et aux bases de données. Limitez chaque jeton aux services et aux droits nécessaires à la tâche, et fixez une date d'expiration.
Une sauvegarde de la base de données avant chaque déploiement
Ajoutez cette étape à votre workflow de déploiement. Le jeton stocké dans vos secrets ne peut écrire que sur ce seul service de base de données : même divulgué, il ne peut toucher à rien d'autre.
- name: Back up the database before deploying
run: |
curl -sf -X POST "https://api.faastic.com/v1/orgs/${{ vars.FAASTIC_ORG }}/services/${{ vars.DB_SERVICE }}/data/backups" \
-H "Authorization: Bearer ${{ secrets.FAASTIC_TOKEN }}"
# the token only has "read/write" on this one service, nothing else Le moindre privilège pour chaque pipeline
Les jetons commencent par fst_ et se créent dans le tableau de bord.
-
Lecture, ou lecture et écriture
Un jeton en lecture peut seulement consulter. Un jeton en lecture et écriture peut faire des modifications.
-
Limité à des catégories
Serveurs, réseaux, pare-feu, load balancers, bases de données, DNS et plus encore. Choisissez uniquement ce dont la tâche a besoin.
-
Limité à des projets
Gardez votre pipeline de préproduction à l'écart de la production.
-
Limité à un seul service
Une base de données, un serveur. Tout le reste est hors de portée.
-
Avec une date d'expiration
Faites expirer un jeton à la date de votre choix.
-
Jamais de droits d'administration
Aucun jeton ne peut gérer les membres de l'équipe ni d'autres jetons.
-
Confirmé par vous
Créer un jeton demande votre mot de passe ou votre code d'authentification, pour qu'une session détournée ne puisse pas en créer.
-
Journalisé par jeton
Les modifications faites avec un jeton apparaissent à votre nom, via ce jeton.
Pare-feu et alimentation, depuis un script
Ouvrez un port quand un nouveau service est mis en ligne, créez un snapshot, redémarrez après une mise à jour. La liste complète des endpoints se trouve dans le document OpenAPI.
# Open HTTPS on a server (area: firewalls)
curl -s -X POST "https://api.faastic.com/v1/orgs/$ORG/services/$SERVER/firewall/rules" \
-H "Authorization: Bearer $FAASTIC_TOKEN" -H "Content-Type: application/json" \
-d '{"action":"ACCEPT","proto":"tcp","dport":"443","comment":"https"}'
# Reboot it after the deploy (area: servers)
curl -s -X POST "https://api.faastic.com/v1/orgs/$ORG/services/$SERVER/power" \
-H "Authorization: Bearer $FAASTIC_TOKEN" -H "Content-Type: application/json" \
-d '{"action":"reboot"}' Questions fréquentes
Puis-je utiliser des jetons d'API Faastic dans GitHub Actions ou un autre outil de CI/CD ?
Oui. Créez un jeton pour la tâche, stockez-le dans les secrets de votre pipeline et appelez l'API, par exemple pour sauvegarder une base de données avant chaque déploiement.
Jusqu'à quel point puis-je restreindre un jeton ?
Lecture seule ou lecture et écriture, limité à des catégories (serveurs, pare-feu, bases de données, etc.), à des projets ou à des services précis, avec une date d'expiration. Aucun jeton ne peut gérer les membres de l'équipe ni d'autres jetons.
Et si un jeton est divulgué ?
Il ne peut faire que ce que son périmètre autorise, il cesse de fonctionner à sa date d'expiration, et vous pouvez le révoquer à tout moment dans l'espace client. Chaque modification qu'il a faite figure dans votre journal d'activité.
Comment créer un jeton ?
Dans l'espace client, sous Team → API tokens. La création demande votre mot de passe ou votre code d'authentification, et le jeton ne s'affiche qu'une seule fois.
Créez votre premier jeton
Dans le tableau de bord, sous Team → API tokens. Copiez-le une fois et conservez-le dans vos secrets.