IT-tjenester kræver konfiguration. En del af konfigurationen er hemmeligheder, som du ikke vil have afsløret. Almindelige eksempler er database legitimationsoplysninger eller tilfældige værdier, der beskytter sessionscookies eller autentificeringsoplysninger. Hvis du udvikler software, har tendens til at blive værre med build pipelines, distributionscertifikater og adgangsnøgler.
Kompromitterede hemmeligheder kan føre til overtagelse af brugeraccounts, datatyveri, build chain-angreb og andre kostbare problemer. Dårligt omdømme, tab af intellektuel ejendom og potentielt store advokatomkostninger er kun en brøkdel af de mulige omkostninger.
Psono tilbyder med den seneste version af psonoci beskyttede miljøer. Beskyttede miljøer tillader dig at køre processer og konfigurere dem gennem miljøvariabler uden at eksponere dem for systemet. Disse miljøvariabler bliver sikkert indlæst fra Psono, aldrig gemt noget sted på serveren og kun eksponeret for en enkelt proces.
Først skal du oprette en miljøvariabel hemmelighed. Bemærk venligst, at en enkelt hemmelighed kan indeholde flere miljøvariabler, så du kan gruppere miljøvariabler efter f.eks. et miljø eller bare fordi de hører sammen, som en databasebruger og en databaseadgangskode.
Derefter opretter du en API-nøgle og tillader denne API-nøgle adgang til dine nye miljøvariabler hemmeligheder.
Nu skal du notere dig API-nøgle hemmelighederne, da disse parametre er de eneste parametre, der direkte eksponeres for systemet.
Installer psono ci på din server eller i din build pipeline med en enkelt kommando:
curl https://get.psono.com/psono/psono-ci/x86_64-linux/psonoci --output psonoci && chmod +x psonoci
Og i stedet for bare at køre ./some_command
kan du starte din proces sådan her:
psonoci \
--api-key-id eaee77c6-169f-4873-9be3-f2613149baa9 \
--api-secret-key-hex c8321d7a8e5b1f5ec3d969ecb5054c7548a1c709ddab2edae2ff7ff028538917 \
--server-url https://example.com/server \
run -- ./some_command
For enkelhedens skyld passerer vi parametrene som --api-key-id
eller --api-secret-key-hex
som argumenter, men du kan også
konfigurere en konfigurationsfil i stedet.
Til demoformål har vi oprettet dette lille python script service.py
, som udskriver alle miljøvariabler og argumenter, der
blev sendt til scriptet.
#!/usr/bin/python3
import os
import sys
print("args: {}".format(sys.argv))
print("environment: {}".format(os.environ))
I stedet for at køre for eksempel ./service.py --whatever=argument_1
kan vi køre det sådan her:
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
Vi får følgende output:
args: ['service.py', '--whatever', 'argument_1']
environment: environ({'db_host': 'prd-db.example.com:5432', 'db_password': 'Df55sr2UQm7Wshv7', 'db_username': 'production'})
Som vi kan se, blev alle argumenter korrekt overført, og alle de miljøvariabler, vi tidligere havde konfigureret, var tilgængelige for processen. Der er flag, der tillader dig at passere de normale systemmiljøvariabler også og udvide dem med dem fra Psono. Mere detaljeret information kan findes her i vores dokumentation for psonoci.
Jeg håber, du kunne lide vores lille udflugt, der demonstrerer, hvordan Psono kan hjælpe med at beskytte din infrastruktur. Alt dette ville ikke være muligt uden Bernd, hjernen bag denne funktion, så tusind tak Bernd!