Convivere con i token di accesso personali: proprietà, scadenza e rotazione
Un token è facile da creare e facile da dimenticare, ed è dalla dimenticanza che nascono le interruzioni. Chi ne possiede uno, cosa fa la sua scadenza a un job che nessuno guarda, cosa succede quando il proprietario se ne va, e come ruotarne uno senza interruzioni.
Un token di accesso personale viene emesso a una persona con un nome, a suo nome, e porta esattamente i permessi Tableau che quella persona già ha. È questo che lo rende adatto a costruirci sopra un confine di governance: qualsiasi cosa fatta con esso è qualcosa che il proprietario avrebbe potuto fare comunque, e ogni riga di audit a valle porta onestamente il suo nome.
Rende anche il token un oggetto amministrativo, non tecnico. Ha un proprietario, il proprietario ha un team, e il team ha una turnazione. Quasi ogni cosa scomoda in questa pagina discende da questo unico fatto.
Il primo artefatto che vale la pena avere è un registro: una riga per token, con il job che alimenta, la persona che ne risponde, dove è conservato, e la data in cui scade. Quattro righe richiedono dieci minuti e rispondono alla domanda che altrimenti richiede una mattinata, cioè: se revoco questo, cosa si ferma.
Una sessione attiva per token, e come pianificarci intorno
Tableau Cloud consente una sola sessione attiva per token. Ogni nuovo accesso con quel token termina la sessione precedente, il che è comodo finché lo usa una persona sola e scomodo nel momento in cui lo usano due cose.
La suite è costruita intorno a quel comportamento invece che contro. Il gateway accede una volta, conia una singola sessione Tableau, e consegna quell’unica sessione a ogni strumento. Gli strumenti la condividono invece di accedere ciascuno di nuovo con lo stesso token e invalidare l’accesso precedente.
La stessa regola dà forma al comportamento di un job lungo. Prima che un’esecuzione di migrazione da una sorgente Cloud venga approvata, l’anteprima preliminare lo dice a chiare lettere: usa un token dedicato a questa esecuzione, con un nome che nient’altro usa, e assicurati che nessuna pianificazione, scheda del browser o secondo dispositivo lo condivida. L’esecuzione ritenta i fallimenti di autenticazione in tornate distanziate: una collisione è sopportabile, ma un client che continua a riaccedere con lo stesso token lo affamerà comunque. Una sorgente Server tollera sessioni concorrenti su un token, ed è per questo che un’abitudine innocua per anni può sorprendere un team alla sua prima esecuzione Cloud.
Un job pianificato e una persona che sembrano interferire tra loro di solito sono questo, e si presenta come instabilità intermittente del prodotto, raramente come il problema di credenziali che è. Controlla quale token ha in mano ciascuna parte prima di indagare qualsiasi altra cosa.
Cosa fa la scadenza a un’automazione
Un token ha una scadenza, e un’automazione costruita sopra eredita quella data senza mai menzionarla di nuovo. Il guasto arriva quindi alla successiva esecuzione pianificata invece che al momento della scadenza. Il divario tra la morte del token e il momento in cui qualcuno ne sente parlare è una cadenza intera. Su un job mensile, è un mese.
Due impostazioni vale la pena leggerle sul tuo sito, non darle per scontate: la scadenza che un amministratore ha impostato quando il token è stato emesso, e qualunque cosa il tuo sito faccia con un token rimasto inutilizzato. Un token che alimenta un job trimestrale passa la maggior parte della sua vita inattivo, che è la combinazione che coglie i team di sorpresa.
Dove un’esecuzione pianificata può ripiegare dal token personale a una credenziale di servizio, la risposta progettuale è piccola ma decisiva: quale credenziale ha davvero autenticato viene registrato sull’esecuzione e mostrato sulla riga. Senza quel record, un ripiego silenzioso resta non riparato, e il problema emerge solo quando fallisce anche il ripiego.
Un’esecuzione fallita arma comunque la successiva: una pianificazione che smette di avanzare resta permanentemente dovuta, e il runner continua a cercarla.
Quando il proprietario di un token se ne va
L’account se ne va e il token con lui. È il comportamento corretto, ed è anche il momento in cui diversi job non presidiati si fermano tutti insieme senza che nessuno di essi compaia nella lista di uscita.
Una persona su un sito Tableau può possedere sei tipi di cose: cartelle di lavoro, origini dati pubblicate, flussi, progetti, sottoscrizioni e attività di aggiornamento. I suoi token sono un settimo, e a differenza degli altri sei un token non compare in nessun albero di progetti. Occupatene nella stessa ora in cui ti occupi dei contenuti che possiede, o una pianificazione lo troverà per te.
La riassegnazione ha bisogno di un destinatario che possa possedere i contenuti: un ruolo di livello Creator, un Explorer autorizzato a pubblicare, o un ruolo di amministratore. Un destinatario fuori da quell’insieme è un ruolo non compatibile, e vale la pena coglierlo nel piano, prima che l’esecuzione sia a metà.
Ogni elemento riceve un nuovo proprietario con un nome. Un destinatario di riassegnazione è sempre richiesto: i contenuti vengono spostati, mai rimossi lungo la strada.
I contenuti con credenziali incorporate vengono segnalati a parte, perché consegnare un’origine dati a un nuovo proprietario non riautentica la sua connessione.
La licenza vale la pena registrarla mentre viene rilasciata. Il ruolo di sito corrisponde a un livello, e l’esecuzione registra cosa è stato recuperato, la cifra che una conversazione finanziaria chiederà tre mesi dopo.
L’offboarding e l’igiene dei token sono la stessa disciplina vista dai due estremi. Un registro che nomina la persona responsabile di ogni token trasforma la conversazione di uscita in una ricerca invece che in un’indagine.
Ruotare un token mentre il lavoro continua
La rotazione va male quando viene fatta come uno scambio. Fatta come una sovrapposizione, passa senza eventi.
Emetti prima il nuovo token, con il nome del job che alimenterà, con una nuova scadenza che scrivi nello stesso minuto.
Installalo dove vive quello vecchio. Installare sostituisce la credenziale precedente invece di affiancarla.
Esegui il job una volta a mano, poi leggi la riga. Deve dire che ha autenticato il token personale, non la credenziale di servizio.
Revoca il vecchio token solo quando quella riga è verde.
Metti la nuova scadenza in un calendario condiviso due settimane in anticipo, e tratta la voce come il lavoro stesso, non come un promemoria.
Il passo di installazione è sicuro da eseguire mentre il lavoro è in corso. Una credenziale bloccata viene scritta in un file temporaneo e poi spostata al suo posto, così un’esecuzione che parte a metà rotazione legge o la vecchia credenziale o la nuova e mai metà di un file.
Il passo tre è quello che le persone saltano, ed è l’unico passo che prova qualcosa. Se l’esecuzione riesce con la credenziale di servizio, il token personale è già rotto, la rotazione non ha testato nulla, e hai appena revocato la tua prova.
Dove un token è bloccato da un amministratore per un deployment ospitato, il controllo di disconnessione è deliberatamente nascosto, perché il caricamento di pagina successivo lo riconnetterebbe comunque. Quella credenziale si cambia invece nella console di amministrazione, che è dove chiunque la cerchi penserà di guardare.
Dove vive la credenziale quando nessuno è connesso
I segreti in questa suite durano solo per la sessione, il che regge bene finché un job non deve girare alle due e mezza senza nessuno. L’eccezione è esplicita, ristretta, e vale la pena capirla prima di farci affidamento.
Lo scheduler tiene la pianificazione, la cadenza e la conservazione. Deliberatamente non tiene alcuna credenziale propria.
Il segreto viene risolto lato server e consegnato a un endpoint di breve durata che accede, cattura ciò per cui è venuto, e si disconnette.
Un token bloccato è cifrato a riposo, mai registrato nei log, e mai restituito a un browser: la chiamata di stato restituisce solo il nome del token. Un clic lo rimuove.
Sotto una chiave della macchina, ogni ambito utente sigilla la propria credenziale con la propria chiave derivata. Il token di una persona non può essere letto usando quello di un’altra.
Una riga in quell’elenco fa più lavoro di quanto sembri. Il sito a cui punta una pianificazione viene impresso lato server dalla sessione attiva, mai letto dalla richiesta, perché un chiamante in grado di impostarlo potrebbe puntare un’esecuzione pianificata a un sito diverso mentre tiene la credenziale di qualcun altro.
Una routine che sopravvive a un trimestre pieno
Rivedi il registro quando qualcuno entra o esce, non a un ciclo trimestrale che nessuno rispetta.
Dai a ogni job non presidiato il proprio token. Condividerne uno con una persona è ciò che produce la disconnessione che nessuno sa spiegare.
Leggi la credenziale registrata sulle esecuzioni pianificate una volta al mese. Due minuti, ed è l’unico posto in cui un ripiego silenzioso emerge.
Ruota per sovrapposizione: emetti, installa, prova un’esecuzione, poi revoca.
Conserva la riga di un token revocato e annota la data accanto. La cronologia è ciò che rende breve la prossima indagine.
È tutto ordinario. È l’unica parte della gestione delle credenziali che nessuna interfaccia invita mai qualcuno a fare. Scrivilo una volta e conservalo.
Due credenziali Tableau che fanno due lavori diversi. Una porta i permessi di una persona. L’altra estende una capacità della piattaforma. Scegliere quella giusta lascia al comando di chi vede cosa un modello di permessi che hai impiegato anni a costruire.
Una persona se ne va. Il suo nome resta su cartelle di lavoro, pianificazioni e sottoscrizioni, e diverse di queste si guastano senza un rumore. Cosa possiede, cosa si rompe, e l’ordine che mantiene la licenza recuperabile.
Un’affermazione è una frase. Una prova è qualcosa che una seconda persona può verificare senza chiedertelo. Cosa deve contenere una traccia di audit, cosa prova davvero un hash, e cosa pretendere da qualsiasi strumento che sostiene di produrne una.