Els serveis informàtics requereixen configuració. Part d’aquesta configuració són els secrets que no vols que quedin exposats. Exemples habituals són les credencials de les bases de dades o valors aleatoris que protegeixen les galetes de sessió o les credencials d’autenticació. Si desenvolupes programari, les coses solen empitjorar amb les pipelines de compilació, certificats de distribució i claus d’accés.
Unes credencials compromeses poden conduir a la presa de control de comptes d’usuari, robatori de dades, atacs a la cadena de compilació i altres problemes costosos. Una mala reputació, la pèrdua de propietat intel·lectual i possibles despeses legals enormes només són una petita fracció dels costos possibles.
Psono ofereix, amb la darrera versió de psonoci, entorns protegits. Els entorns protegits et permeten executar processos i configurar-los a través de variables d’entorn sense exposar-les al sistema. Aquestes variables d’entorn es carreguen de manera segura des de Psono, mai s’emmagatzemen al servidor i només s’exposen a un únic procés.
Primer has de crear un secret de variables d’entorn. Cal tenir en compte que un únic secret pot contenir múltiples variables d’entorn, de manera que pots agrupar-les, per exemple, per un entorn específic o senzillament perquè van juntes com un usuari i una contrasenya de base de dades.
Després crees una clau d’API i permets que aquesta clau d’API accedeixi al teu nou secret de variables d’entorn.
Ara pren nota dels secrets de la clau API, ja que aquests paràmetres són els únics que realment s’exposen al sistema.
Instal·la psono ci al teu servidor o a la teva pipeline de compilació amb una sola comanda:
curl https://get.psono.com/psono/psono-ci/x86_64-linux/psonoci --output psonoci && chmod +x psonoci
I, en comptes d’executar simplement ./some_command has d’executar el teu procés així:
psonoci \
--api-key-id eaee77c6-169f-4873-9be3-f2613149baa9 \
--api-secret-key-hex c8321d7a8e5b1f5ec3d969ecb5054c7548a1c709ddab2edae2ff7ff028538917 \
--server-url https://example.com/server \
run -- ./some_command
Per simplicitat passem els paràmetres com ara --api-key-id o --api-secret-key-hex com a arguments, però també pots
configurar un fitxer de configuració si ho prefereixes.
A efectes de demostració hem creat aquest petit script python service.py que imprimeix totes les variables d’entorn i els arguments que
s’han passat a l’script.
#!/usr/bin/python3
import os
import sys
print("args: {}".format(sys.argv))
print("environment: {}".format(os.environ))
En comptes d’executar, per exemple, ./service.py --whatever=argument_1, el podem executar així:
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
Obtenim la sortida següent:
args: ['service.py', '--whatever', 'argument_1']
environment: environ({'db_host': 'prd-db.example.com:5432', 'db_password': 'Df55sr2UQm7Wshv7', 'db_username': 'production'})
Com podem veure tots els arguments s’han passat correctament i totes les variables d’entorn que havíem configurat prèviament estaven disponibles pel procés. Hi ha opcions que et permeten passar també les variables d’entorn normals del sistema i ampliar-les amb les de Psono. Trobaràs més informació detallada a la nostra documentació de psonoci.
Espero que t’hagi agradat aquesta petita introducció mostrant com Psono pot ajudar a protegir la teva infraestructura. Res d’això hauria estat possible sense Bernd, el cervell darrere d’aquesta funcionalitat, així que moltes gràcies Bernd!