Sto eseguendo un’applicazione PHP che si connette a un database RDS utilizzando nome utente e password per fornire dati ai client. Il nome utente e la password vengono recuperati da AWS KMS come stringa crittografata utilizzando il client AWS SSM. Lo faccio per ogni singola richiesta all’app PHP per aprire una connessione al database.
Quindi il flusso assomiglia a questo
Incoming request -> Retrieve DB credentials from AWS -> Open DB connection -> Query -> return data
All’interno di questo flusso, ogni singola richiesta viene inviata ad AWS per recuperare le credenziali DB, la stringa sicura viene decrittografata utilizzando KMS e il risultato finale è un utilizzo elevato di KMS con conseguente aumento delle fatture. Inoltre introduce latenza a ogni richiesta API.
Mi chiedevo se ci sono alcune librerie di memorizzazione nella cache PHP che posso utilizzare per archiviare in modo sicuro le credenziali localmente sull’istanza EC2, quindi non ho bisogno di recuperarle tutto il tempo.
Ho letto molti forum e vedo alcune persone che dicono di archiviarli su un file che vive al di fuori di root o anche .env che vive al di fuori di root va bene, altri dicono di usare memcache, ma la maggior parte delle persone dice la memorizzazione nella cache delle credenziali è semplicemente un modello vietato.
So che non esiste una cosa come sicura al 100%, ma qualsiasi consiglio per memorizzare le credenziali nella cache + quali sono gli strumenti popolari che vengono utilizzati per PHP saranno apprezzati.
Dopo una pluriennale esperienza professionale in qualità di ‘web developer’ presso agenzie di comunicazione e aziende informatiche, ho deciso di intraprendere la sfida della libera professione. Da oltre 13 anni collaboro stabilmente con agenzie di comunicazioni e agenzie turistiche e freelance sia nel panorama nazionale e internazionale. Sviluppare software e creare applicazioni è una professione che richiede una grande passione, molta dedizione e massima precisione, oltre a tanta esperienza. Non basta essere programmatori. Non ci si improvvisa. Bisogna capire le esigenze del committente, conoscere i sistemi, i linguaggi, il mercato e, alla fine… programmare e rendere usabile un prodotto “virtuale”.
Lascia un commento