Skip to main content
Le chiavi API controllano chi e cosa può raggiungere il tuo server Failproof AI Observability, in modo che un collector possa inviare eventi senza mai acquisire permessi di lettura o amministrazione. Ogni chiave porta uno o più permessi e ogni permesso controlla specifiche rotte del server; concedi solo quelli di cui un job ha bisogno. La maggior parte delle implementazioni crea solo tre tipi di chiave.

Le 3 chiavi di cui la maggior parte delle implementazioni ha bisogno

Inizia da qui. Consulta il catalogo completo dei permessi qui sotto solo quando hai bisogno di una chiave più ristretta e personalizzata. Vedi anche Layout di chiave consigliato e Creazione di chiavi.

Permessi

Il server applica un catalogo fisso di permessi; ognuno controlla specifiche rotte HTTP. Una chiave amministratore li contiene tutti; una chiave limitata contiene il sottoinsieme che concedi al momento della creazione. Le stringhe di permesso sconosciute vengono rifiutate quando viene creata una chiave.
Nota: Due permessi validi sono solo per umani/dashboard e non possono essere concessi a una chiave API: orgs:admin (amministrazione dell’istanza, solo per operatori) e keys:update. Una richiesta a POST /keys o PATCH /keys/:id che tenta di concedere uno di questi viene rifiutata con HTTP 422. Vedi la riga keys:update di seguito per capire perché una chiave bearer può creare chiavi ma mai modificarle.

Ingestione e interrogazione di eventi

Sessioni e valutazioni

Dashboard

Query salvate (compositore SQL)

Assistente AI

Chiavi API

Utenti del dashboard

Questi permessi supportano la pagina Utenti del dashboard, dove gli ambiti concessi di ogni membro sono mostrati come chip: La pagina Utenti: una scheda per utente del dashboard con la sua email, permessi concessi e controlli di modifica/disabilitazione

Impostazioni operative

La pagina Impostazioni: impostazioni operative gestite dal dashboard come accessi consentiti e durate di sessione/OTP, modificabili senza riavvio

Avvisi e incidenti

Audit

Nota: Per concedere a una chiave la superficie di audit, assegna esplicitamente audits:* a essa. Vedi Note di aggiornamento e compatibilità all’indietro per come i beneficiari esistenti sono stati migrati al rilascio di Audits.
L’endpoint del selettore dei destinatari GET /alerts/recipients (che elenca le email dei membri che un editor di avvisi può notificare) è raggiungibile da un titolare di uno qualsiasi tra alerts:read o alerts:write, così gli editor di avvisi possono popolare il selettore senza essere assegnati a users:read.
Un visualizzatore di dashboard ha bisogno di entrambi dashboards:read (per caricare le viste salvate) e evaluations:read (le metriche di salute vengono calcolate dai dati di valutazione). Assegna dashboards:write per consentire a un utente di creare o modificare dashboard e dashboards:delete per rimuoverli.
/health e /auth/* (richiesta OTP, verifica OTP, controllo sessione, logout) sono senza autenticazione per progettazione; sono il flusso di accesso e la sonda di vivacità. GET /access-granters richiede una chiave valida ma nessun permesso specifico, in modo che qualsiasi utente registrato possa vedere quali amministratori contattare per i cambiamenti di accesso.

Set di permessi

I set di permessi ti permettono di applicare un ruolo denominato invece di selezionare manualmente i token individuali ogni volta. Invece di selezionare una dozzina di permessi uno per uno per ogni nuovo utente del dashboard o chiave API, scegli un set e tutti assegnati a esso portano una concessione coerente e verificabile. La modifica di un set personalizzato riapplica la nuova concessione a ogni utente già assegnato a esso, quindi un cambiamento di ruolo è una modifica piuttosto che un’operazione su ogni membro. Ogni organizzazione è inizializzata con tre set incorporati: I tre set incorporati sono immutabili; i loro nomi significano sempre la stessa cosa, quindi read-only, standard e admin sono sicuri da referenziare in policy e onboarding. Un operatore può creare set personalizzati aggiuntivi per modellare ruoli specifici della tua organizzazione (ad esempio, un ruolo di “autore di dashboard” o un ruolo di “solo collector”). I set sono presentati nel dashboard e gestiti tramite API su GET /permission-sets (elenco, controllato da users:read) e POST /permission-sets / PUT /permission-sets/:name / DELETE /permission-sets/:name (creazione, modifica, eliminazione di un set personalizzato, controllato da settings:write). L’eliminazione o la modifica di un set incorporato viene rifiutata. L’appartenenza al set è ciò che supporta due altre funzionalità:
  • DEFAULT_USER_PERMISSIONS (la concessione preselezionata quando un amministratore apre + nuovo utente) per impostazione predefinita è il set standard.
  • Il flag --set su agenteye-orgctl (gestione dei membri dell’organizzazione) avvia un membro da un set denominato, che quindi affini con --add / --remove.
Nota: Quando un set include un permesso che non è assegnabile a una chiave (ad esempio un set personalizzato con keys:update), l’inizializzazione di una chiave da quel set elimina i token non assegnabili; il server altrimenti rifiuterebbe la chiave con HTTP 422. Gli utenti del dashboard non sono soggetti a quella restrizione.

Chiave amministratore bootstrap

La chiave amministratore è la credenziale radice singola che consente a un operatore di avviare l’accesso da zero: con essa puoi creare ogni altra chiave limitata, invitare i primi utenti del dashboard e configurare l’istanza prima che esista qualsiasi altra chiave. È l’unica chiave che non crei tramite l’API delle chiavi; è fornita dall’ambiente in modo che il server sia raggiungibile al primo avvio. Imposta la variabile d’ambiente ADMIN_KEY sul server. Ad ogni avvio il server inserisce/aggiorna questo valore come una chiave amministratore con tutti i permessi. Per ruotare: cambia ADMIN_KEY con un nuovo segreto e riavvia il server.

Scoping dell’organizzazione

Le organizzazioni stesse sono create e gestite fuori banda da un operatore, non tramite questa API di chiavi. Il ciclo di vita dell’organizzazione e del membro (creazione/ridenominazione/eliminazione/purga di un’organizzazione; aggiunta/aggiornamento/rimozione di un membro) viene eseguito con la CLI agenteye-orgctl; non esiste un’API HTTP o pulsante del dashboard per ciò. Quello che rimane invariato: le chiavi API per organizzazione vengono comunque create nel dashboard (o tramite questa API di chiavi) dai membri dell’organizzazione. In un’implementazione multi-org, ogni chiave che un membro dell’organizzazione crea (tramite questa API di chiavi o la pagina Chiavi del dashboard) appartiene a un’organizzazione e può solo leggere o scrivere i dati di quell’organizzazione; l’organizzazione viene timbrata sulla chiave al momento della creazione e applicata ad ogni richiesta. Le due chiavi bootstrap sono l’unica eccezione: la chiave admin (fornita da ADMIN_KEY) e la chiave dashboard-assistant (fornita da AGENT_API_KEY) sono con ambito istanza (non portano alcun’organizzazione). Il dashboard si autentica con la chiave admin in modo da poter rappresentare le richieste per organizzazione per conto dei membri registrati. Le implementazioni single-tenant non hanno bisogno di pensare a questo; tutte le chiavi appartengono all’organizzazione default incorporata.

Creazione di chiavi

Usa la chiave amministratore (o qualsiasi chiave con permesso keys:create) per creare ulteriori chiavi limitate.

Chiave collector (solo ingestione)

Chiave dashboard (sola lettura)

Quando crei una chiave tramite l’API HTTP, fornisci tu stesso il valore key; scegli un segreto forte e conservalo in modo sicuro. (Il dashboard funziona al contrario: genera un segreto forte per te e lo mostra una sola volta al momento della creazione; vedi Gestione delle chiavi nel dashboard.) La risposta conferma che la chiave è stata creata:

Elenco delle chiavi

I segreti delle chiavi non vengono restituiti negli elenchi, solo ID, nomi e permessi.

Disabilitazione di una chiave

La disabilitazione revoca l’accesso immediatamente senza eliminare il record della chiave.

Rigenerazione di una chiave

Genera un nuovo segreto per una chiave esistente. Il vecchio segreto viene invalidato immediatamente.
La risposta include il nuovo segreto in testo libero, mostrato una sola volta.

Gestione delle chiavi nel dashboard

La pagina Chiavi nel dashboard fornisce un’interfaccia utente per tutte le operazioni di cui sopra. Hai bisogno di una chiave con permesso keys:read per visualizzare l’elenco e keys:create / keys:update / keys:disable / keys:regenerate per le azioni di creazione/modifica/disabilitazione/rigenerazione rispettivamente. La modifica dei permessi di una chiave (keys:update) è separata dalla creazione di una (keys:create), quindi puoi concedere a un operatore la capacità di creare chiavi senza la capacità di riscrivere le esistenti, o viceversa. La chiave amministratore copre tutti questi. Quando crei una chiave dal dashboard non fornisci il segreto; il dashboard genera un segreto forte per te e lo visualizza una volta al momento della creazione. Copialo immediatamente e conservalo in modo sicuro; non viene mai più mostrato, esattamente come con una rigenerazione. Puoi comunque selezionare i permessi della chiave direttamente o inizializzarli da un set di permessi (vedi di seguito). La pagina Chiavi API: una scheda per chiave che mostra il suo nome, permessi concessi e tempo di creazione, con azioni di rigenerazione e disabilitazione; le chiavi protette come admin sono contrassegnate

Layout di chiave consigliato

Nota: La chiave dell’assistente è inizializzata automaticamente dal server dalla variabile d’ambiente AGENT_API_KEY (lo stesso segreto che l’agente presenta come AGENTEYE_API_KEY); non c’è un passaggio manuale di creazione della chiave e nessuna chiave amministratore coinvolta. I suoi permessi sono fissi nel codice sorgente quindi l’ambito non può essere ampliato per errore di configurazione: lettura tra eventi/valutazioni/dashboard, più dashboards-write e queries-read/write/run per il flusso di authoring di “Chiedi AI di scrivere una query”. Tutto il SQL passa comunque attraverso lo stesso ruolo di sola lettura e percorso SQL protetto come una query scritta dall’utente, quindi ciò amplia la superficie di authoring, non la superficie dei dati; le operazioni distruttive (queries:delete, dashboards:delete) rimangono deliberatamente fuori dalla chiave dell’assistente. Come la chiave admin, è protetta: non può essere disabilitata o rigenerata tramite l’API delle chiavi, solo ruotata cambiando AGENT_API_KEY e riavviando. Gli utenti del dashboard inoltre hanno bisogno del permesso agent:use per vedere e usare l’assistente. Se abiliti l’auto-strumentazione, dai all’assistente una chiave separata solo per events:add.

Note di aggiornamento e compatibilità all’indietro

Ne hai bisogno solo se stai aggiornando un’istanza esistente; le nuove implementazioni possono saltarle.
Al rilascio di Audits, i beneficiari esistenti sono stati ampliati lungo le stesse forme di ruolo degli avvisi: ogni utente e set di permessi che contiene alerts:read ha acquisito audits:read e ogni titolare di alerts:write ha acquisito audits:write. Le chiavi API esistenti non sono state ampliate. Assegna audits:* a una chiave esplicitamente se necessita della superficie di audit.
Le concessioni memorizzate del token legacy alerts:ack vengono analizzate come incidents:ack in modo che gli on-caller mantengano l’accesso senza ricreate le chiavi. Il token non è più assegnabile dall’editor utente del dashboard; la matrice offre invece incidents:ack.

Prossimi passi

  • Python SDK: come il tuo codice agente si autentica quando invia eventi.
  • Sicurezza: come funzionano l’accesso, il controllo degli accessi e l’isolamento dei dati per organizzazione.