come gestisci le chiavi API?

1

Ho alcuni progetti che utilizzano vari servizi web, ad es. DropBox, AWS. Per la gestione delle informazioni private uso bash_profile che funziona perfettamente con heroku che usa le variabili env per gestire le informazioni segrete. Il problema è che il mio bash_profile sta crescendo in modo significativo (HEROKU_ADD_ON_1 HEROKU_ADD_ON_2 ecc.) E oggi mi ha morso.

Qual è il modo migliore?

    
posta Lukasz Madon 28.04.2014 - 15:15
fonte

2 risposte

1

In genere ho gestito tutti i tipi di segreti del progetto tramite i file di configurazione (spesso specifici dell'ambiente) e quindi non li ho mai commessi al controllo del codice sorgente. Il formato di questi file può essere qualsiasi cosa tu voglia / qualunque cosa funzioni bene: xml, yaml, json, ecc. Quindi il codice è responsabile della lettura dei valori dal file di configurazione.

A volte è fastidioso che questi valori non siano nel controllo del codice sorgente (rende l'implementazione un po 'più difficile, ad esempio), ma sembra che tu stia gestendo i valori separatamente in ogni caso, quindi non dovresti aggiungere molto overhead.

Modifica Non ho molta familiarità con Heroku, quindi ho appena risposto alla domanda in generale. Ma dopo averlo esaminato di più, posso vedere dove questo potrebbe essere un problema da gestire.

Sembra che tu già gestisca i vali di configurazione tramite bash_profile - questo è positivo perché vorresti avere un documento "fonte di registrazione" in cui puoi guardare e modificare questi valori.

Oltre a ciò, sembra che nominare sarà la prossima cosa più importante. HEROKU_ADD_ON_1 non è molto descrittivo. Ma DROPBOX_API_KEY o AWS_S3_BUCKET_KEY danno una migliore idea di cosa sia la variabile. E puoi distinguere tra le chiavi dello stesso provider anche attraverso una buona denominazione: FEATURE_A_AWS_KEY vs FEATURE_B_AWS_KEY.

    
risposta data 28.04.2014 - 23:07
fonte
0

Se utilizzi il ruby o un framework basato su ruby, puoi utilizzare un progetto come dotenv che ti consente di gestisci queste variabili d'ambiente all'interno di un singolo file .env (che devi ignorare) all'interno del tuo repository di codice invece di utilizzare i file di sistema.

Se ti piace il modo in cui lo gestisce per lo sviluppo locale, c'è un progetto gemello che lo gestisce per la produzione o ambienti di staging anche.

    
risposta data 28.04.2014 - 22:19
fonte

Leggi altre domande sui tag