I servizi IT richiedono configurazione. Parte della configurazione sono i segreti che non vuoi che vengano esposti. Esempi comuni sono le credenziali del database o i valori casuali che proteggono i cookie di sessione o le credenziali di autenticazione. Se stai sviluppando software, le cose tendono a peggiorare con pipeline di build, certificati di distribuzione e chiavi di accesso.
I segreti compromessi possono portare all'acquisizione di account utente, furto di dati, attacchi alla catena di build e altri problemi costosi. La cattiva reputazione, la perdita di proprietà intellettuale e potenzialmente enormi spese legali sono solo una frazione dei possibili costi.
Psono offre con l'ultima versione di psonoci ambienti protetti. Gli ambienti protetti ti consentono di eseguire processi e configurarli tramite variabili d'ambiente senza esporli al sistema. Queste variabili d'ambiente vengono caricate in modo sicuro da Psono, mai memorizzate da nessuna parte sul server e sono esposte solo a un singolo processo.
Per prima cosa devi creare un segreto di variabili d'ambiente. Si prega di notare che un singolo segreto può contenere più variabili d'ambiente in modo da poter raggruppare le variabili d'ambiente per esempio per un ambiente o semplicemente perché appartengono insieme come un utente del database e una password del database.
Successivamente crei una chiave API e permetti a questa chiave API di accedere al nuovo segreto delle variabili d'ambiente.
Ora prendi nota dei segreti della chiave API, poiché questi parametri sono gli unici parametri direttamente esposti al sistema.
Installa psono ci sul tuo server o nella tua pipeline di build con un singolo comando:
curl https://get.psono.com/psono/psono-ci/x86_64-linux/psonoci --output psonoci && chmod +x psonoci
E invece di eseguire semplicemente ./some_command
avvii il tuo processo in questo modo:
psonoci \
--api-key-id eaee77c6-169f-4873-9be3-f2613149baa9 \
--api-secret-key-hex c8321d7a8e5b1f5ec3d969ecb5054c7548a1c709ddab2edae2ff7ff028538917 \
--server-url https://example.com/server \
run -- ./some_command
Per semplicità passiamo i parametri come --api-key-id
o --api-secret-key-hex
come argomenti, tuttavia puoi anche
configurare un file di configurazione.
A scopo dimostrativo abbiamo creato questo piccolo script python service.py
che stampa tutte le variabili d'ambiente e gli argomenti che
sono stati passati allo script.
#!/usr/bin/python3
import os
import sys
print("args: {}".format(sys.argv))
print("environment: {}".format(os.environ))
Invece di eseguire ad esempio ./service.py --whatever=argument_1
possiamo eseguirlo così:
psonoci \
--api-key-id eaee77c6-169f-4873-9be3-f2613149baa9 \
--api-secret-key-hex c8321d7a8e5b1f5ec3d969ecb5054c7548a1c709ddab2edae2ff7ff028538917 \
--server-url https://example.com/server \
run -- ./service.py --whatever=argument_1
Otteniamo il seguente output:
args: ['service.py', '--whatever', 'argument_1']
environment: environ({'db_host': 'prd-db.example.com:5432', 'db_password': 'Df55sr2UQm7Wshv7', 'db_username': 'production'})
Come possiamo vedere, tutti gli argomenti sono stati passati correttamente e tutte le variabili d'ambiente che abbiamo precedentemente configurato erano disponibili per il processo. Ci sono flag in atto che ti permettono di passare anche le normali variabili d'ambiente del sistema e di estenderle con quelle di Psono. Maggiori informazioni dettagliate possono essere trovate qui nella nostra documentazione per psonoci.
Spero che ti sia piaciuta la nostra piccola escursione che dimostra come Psono può aiutare a proteggere la tua infrastruttura. Tutto questo non sarebbe stato possibile senza Bernd, la mente dietro questa funzionalità, quindi grazie mille Bernd!