Vai al contenuto
Indice
Siti web

Memorizzazione dei segreti dell'app per un sito

Traduzione automatica. L'originale in inglese è disponibile.

La scheda Secrets è un archivio crittografato per i valori di configurazione sensibili di cui un'app Node.js ha bisogno, come chiavi API, secret di firma e token di terze parti, mantenuti per ambiente in modo che le credenziali di produzione e quelle di anteprima non si mescolino mai.

Dove Risiedono i Secrets

Apri Siti web, fai clic sul sito, apri il gruppo Environment nel menu a sinistra del sito e scegli Secret. La scheda si chiama Secret.

La scheda compare solo sui siti Node.js. I siti WordPress, PHP e statici non la mostrano, perché la loro configurazione risiede in file su disco: wp-config.php per WordPress, e qualsiasi cosa il tuo framework legga per una semplice app PHP.

Secrets tab for a Node.js site in KPanel

Come Vengono Protetti i Valori

Ogni valore viene crittografato prima ancora di toccare il database. Nulla viene memorizzato come testo leggibile, e la vista elenco non mostra mai un valore completo: mostra una maschera con solo gli ultimi quattro caratteri, in modo da poter distinguere due chiavi simili senza esporre nessuna delle due.

Ogni riga porta un distintivo Encrypted a titolo di promemoria. Rileggere un valore è un'azione separata e deliberata, non qualcosa che accade semplicemente aprendo la pagina.

Impostare, rivelare ed eliminare un secret richiedono tutti il permesso sites:write. Un membro del team con accesso di sola lettura può vedere quali chiavi esistono e le loro maschere, ma non i loro valori.

I Due Ambienti

Un controllo segmentato nella parte superiore della pagina permette di passare tra production e preview. Sono due insiemi di chiavi completamente separati. Impostare STRIPE_SECRET_KEY in produzione non lo crea in anteprima, ed eliminarlo dall'anteprima non tocca la produzione.

Quella separazione è il punto centrale della funzione. Le build di anteprima sono ambienti usa e getta che chiunque abbia accesso al repository può avviare, quindi dovrebbero contenere credenziali di test, non credenziali reali. Vedi Deploy di Anteprima per le Pull Request per come vengono creati gli ambienti di anteprima.

Aggiungere o Aggiornare un Secret

  1. Scegli l'ambiente con il controllo segmentato.
  2. Digita il nome nel campo KEY_NAME. Il campo forza le maiuscole mentre digiti.
  3. Inserisci il valore nel secondo campo. Viene mascherato mentre digiti.
  4. Fai clic su Set.

Impostare una chiave già esistente la sovrascrive. Non esiste un'azione di modifica separata né un passaggio di conferma per una sovrascrittura, quindi controlla la scheda dell'ambiente prima di fare clic su Set.

Regole per il Nome della Chiave

Una chiave deve iniziare con una lettera maiuscola e può poi contenere lettere maiuscole, cifre e underscore, fino a 128 caratteri. DATABASE_URL, API_KEY_V2 e SENTRY_DSN sono tutti validi. Qualsiasi altra cosa viene rifiutata con il messaggio Key deve essere UPPER_SNAKE_CASE lettere/numeri/underscore.

Vale la pena conoscere altri due limiti:

  • Un valore non può essere vuoto. L'invio di un valore vuoto restituisce value obbligatorio.
  • Un valore non può superare i 16 KB. È generoso per un token, ma non sufficiente, ad esempio, per una catena di certificati completa, che va inserita in un file piuttosto che in un secret.

Rileggere un Valore

Fai clic su Copy sulla riga. KPanel decripta il valore lato server e lo mette direttamente negli appunti, con una conferma Valore copiato negli appunti. Il valore non viene stampato a schermo, quindi una condivisione schermo o qualcuno che guarda da dietro le spalle non riesce a vederlo.

Ogni rivelazione viene scritta nel registro di controllo del sito, insieme a chi l'ha effettuata e a quale chiave, e compare nel Registro Attività del Sito.

Se hai bisogno di verificare che un valore sia corretto senza esporlo, confronta invece la maschera. Gli ultimi quattro caratteri sono sufficienti per confermare di avere il token giusto, e sono già visibili a schermo.

Usare un Secret Nella Tua App

Copia il valore ovunque la tua applicazione legga la sua configurazione sul server. Per un'app Node.js si tratta normalmente di una variabile d'ambiente impostata dal tuo process manager, oppure di un file .env nella radice dell'app che il tuo codice carica all'avvio.

Non fare il commit di quel file nel tuo repository. Aggiungi .env a .gitignore prima di crearlo. Un secret che è stato inviato a un remote git deve essere considerato compromesso e ruotato presso il fornitore, perché rimane nella cronologia anche dopo aver eliminato il file.

La scheda Secrets è il tuo registro di ciò che è il valore, mantenuto crittografato e sottoposto a controllo, piuttosto che un appunto in un password manager o in un thread di messaggi. Mantienila come fonte di verità: quando ruoti una chiave presso il fornitore, aggiornala qui allo stesso tempo, in modo che la prossima persona che fa il deploy abbia il valore attuale.

Eliminare un Secret

Fai clic su Delete sulla riga. KPanel chiede di confermare con Delete API_TOKEN? e avverte che l'app perderà l'accesso a questo valore al suo prossimo riavvio. Non esiste un annulla e non viene conservata alcuna copia, quindi se potresti avere di nuovo bisogno del valore, copialo prima.

Elimina un secret quando la credenziale sottostante è stata revocata presso il fornitore, o quando il codice che la utilizzava è stato rimosso. Lasciare in giro chiavi obsolete rende più difficile capire, in seguito, quali siano effettivamente importanti.

Ruotare una Credenziale in Sicurezza

L'ordine sicuro è sempre: crea la nuova credenziale presso il fornitore, aggiornala qui, fai il deploy, conferma che l'app funzioni, poi revoca la vecchia credenziale presso il fornitore.

Fare il contrario, revocare per primo, crea una finestra temporale in cui l'app in esecuzione detiene una credenziale morta e ogni richiesta che ne ha bisogno fallisce. Se la modifica è rischiosa, esegui prima un backup così da poter tornare a uno stato noto e funzionante: vedi Eseguire un Backup.

Risoluzione dei Problemi

La scheda Secrets non è nel menu. Il sito non è un sito Node.js. Controlla il distintivo dello stack accanto al nome del sito nella parte superiore della pagina.

Il pulsante Set non fa nulla. Entrambi i campi sono obbligatori. Il pulsante segnala Chiave + valore obbligatori se uno dei due è vuoto.

La chiave è stata rifiutata. Lettere minuscole, trattini, punti e spazi non sono ammessi. api-key e Api_Key falliscono entrambi; API_KEY passa.

Copy non ha messo nulla negli appunti. Alcuni browser bloccano la scrittura negli appunti su una scheda inattiva. Fai clic prima sulla pagina, poi fai di nuovo clic su Copy.

Dove Andare Ora

Ti è stato utile?

È un'IA? Legga questa pagina in Markdown

Articoli correlati

Connessione tramite SFTP: FileZilla, Cyberduck e riga di comandoSFTP (Secure File Transfer Protocol) ti offre accesso diretto ai file del tuo sito sul server. Questa guida copre tutto ciò che ti serve per collegarti con…Certificati SSL e HTTPSQuesto articolo spiega cosa sia SSL in parole semplici, come KapsuleHost gestisca automaticamente SSL per i tuoi siti e cosa fare se qualcosa va storto con il…Siti web: da dove iniziareCome funziona l'hosting di siti web presso KapsuleHost, cosa si trova in ciascuna scheda di un sito e quale guida leggere per il compito che hai davanti.…Monitoraggio del Tempo di Attività del SitoOgni sito su KapsuleHost viene controllato automaticamente ogni 60 secondi, e la scheda Uptime mostra il risultato: stato attuale, percentuale di uptime, tempi…

Hai ancora bisogno di aiuto?

Chiedi a Kora, che conosce il tuo account, o contatta il nostro team.

ContattaciContatta il supporto