Automatisation et CI

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.

GitHub Actions

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.

.github/workflows/deploy.yml yaml
- 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
Périmètre des jetons

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.

Autres exemples

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.

Ouvrir HTTPS, puis redémarrer bash
# 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.