Intégration

Portées (scopes) et moindre privilège

Matrice ressource:action, implication write→read, et clés séparées par usage CI.

Contrat OpenAPIÉmettre une clé d’APICompte Solo gratuit

Document complet, sans authentification, à donner à votre générateur de client.

Portées (scopes)

Une portée s’écrit ressource:action. La clé n’atteint que les routes dont la portée figure dans la sienne. Hors portée → 403 en nommant celle qui manque.

Écrire implique lire : scenarios:write accorde aussi scenarios:read. runs:trigger est distinct de runs:read : déclencher consomme du quota d’exécution.

RessourceLectureÉcriture
Scénariosscenarios:readscenarios:write
Exécutionsruns:readruns:trigger
Incidentsincidents:readincidents:write
Webhooks sortantsalerting:readalerting:write
Fenêtres de maintenancemaintenance:readmaintenance:write
Objectifs de disponibilitésla:readsla:write
Organisation, consommation, page de statutorg:readorg:write
Membresmembers:read—

Moindre privilège

Émettez une clé par usage. CI de lecture seule : scenarios:read + runs:read. Pipeline qui crée des moniteurs : scenarios:write. Job qui déclenche un smoke post-deploy : runs:trigger seul si possible. Webhooks : alerting:write seulement sur le service qui les gère.

Révoquez dès qu’un pipeline ou un poste change. Une clé large oubliée dans un fork public est un incident, pas une note de backlog.

Matrice recommandée

# usage              scopes
# terraform apply    scenarios:write alerting:write maintenance:write sla:write
# terraform plan     scenarios:read  alerting:read  maintenance:read  sla:read
# smoke post-deploy  runs:trigger runs:read
# dashboard RO       scenarios:read runs:read incidents:read org:read