IT-tjänster kräver konfiguration. En del av konfigurationen är hemligheter som du inte vill exponera. Vanliga exempel är databasanvändare eller slumpmässiga värden som skyddar sessioncookies eller autentiseringsuppgifter. Om du utvecklar mjukvara, tenderar det att bli värre med byggpipelines, distributionscertifikat och åtkomstnycklar.
Komprometterade hemligheter kan leda till kapningar av användarkonton, datastöld, byggkedjeattacker och andra kostsamma problem. Dåligt rykte, förlorad immateriell egendom och potentiellt höga advokatkostnader är bara en bråkdel av de möjliga kostnaderna.
Psono erbjuder med den senaste versionen av psonoci skyddade miljöer. Skyddade miljöer tillåter dig att köra processer och konfigurera dem genom miljövariabler utan att exponera dem för systemet. Dessa miljövariabler laddas säkert från Psono, lagras aldrig någonstans på servern och exponeras endast för en enskild process.
Först måste du skapa en miljövariablerhemlighet. Observera att en enda hemlighet kan hålla flera miljövariabler så att du kan gruppera miljövariabler efter t.ex. en miljö eller bara för att de hör ihop som en databasanvändare och ett databaslösenord.
Därefter skapar du en API-nyckel och tillåter denna API-nyckel att komma åt din nya miljövariablerhemlighet.
Notera nu API-nyckelhemligheterna, eftersom dessa parametrar är de enda parametrarna som direkt exponeras för systemet.
Installera psono ci på din server eller i din byggpipeline med ett enda kommando:
curl https://get.psono.com/psono/psono-ci/x86_64-linux/psonoci --output psonoci && chmod +x psonoci
Och istället för att bara köra ./some_command
startar du din process så här:
psonoci \
--api-key-id eaee77c6-169f-4873-9be3-f2613149baa9 \
--api-secret-key-hex c8321d7a8e5b1f5ec3d969ecb5054c7548a1c709ddab2edae2ff7ff028538917 \
--server-url https://example.com/server \
run -- ./some_command
För enkelhetens skull passerar vi parametrar som --api-key-id
eller --api-secret-key-hex
som argument men du kan också
konfigurera en konfigurationsfil istället.
För demonstrationsändamål skapade vi detta lilla pythonskript service.py
som skriver ut alla miljövariabler och argument som
passerades till skriptet.
#!/usr/bin/python3
import os
import sys
print("args: {}".format(sys.argv))
print("environment: {}".format(os.environ))
Istället för att exempelvis köra ./service.py --whatever=argument_1
kan vi köra det så här:
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öljande utdata:
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 passerade alla argument korrekt och alla miljövariabler som vi tidigare konfigurerat var tillgängliga för processen. Det finns flaggor på plats som tillåter dig att passera de vanliga systemmiljövariablerna också och utöka dem med de från Psono. Mer detaljerad information finns i vår dokumentation för psonoci.
Jag hoppas att du gillade vår lilla utflykt som demonstrerar hur Psono kan hjälpa dig att skydda din infrastruktur. Allt detta skulle inte vara möjligt utan Bernd, hjärnan bakom denna funktion, så stort tack Bernd!