IT služby vyžadují konfiguraci. Část konfigurace tvoří tajné informace, které nechcete zveřejnit. Běžnými příklady jsou přihlašovací údaje k databázi nebo náhodné hodnoty, které chrání cookies relací nebo autentizační údaje. Pokud vyvíjíte software, situace se zhoršuje s build pipeliny, certifikáty distribuce a přístupovými klíči.
Kompromitované tajné informace mohou vést k převzetí uživatelských účtů, krádeži dat, útokům na build chaîne a dalším nákladným problémům. Špatná pověst, ztráta duševního vlastnictví a potenciálně vysoké advokátní poplatky jsou jen zlomek možných nákladů.
Psono nabízí v nejnovější verzi psonoci chráněná prostředí. Chráněná prostředí umožňují spouštět procesy a konfigurovat je pomocí proměnných prostředí bez jejich zveřejnění systému. Tyto proměnné prostředí jsou bezpečně načteny z Psona, nejsou nikde na serveru uloženy a jsou vystaveny pouze jedinému procesu.
Nejprve musíte vytvořit tajný klíč pro proměnné prostředí. Uvědomte si, že jeden tajný klíč může obsahovat více proměnných prostředí, takže můžete skupinovat proměnné prostředí podle např. prostředí nebo jen proto, že k sobě patří jako uživatel databáze a heslo do databáze.
Poté vytvoříte API klíč a umožníte tomuto API klíči přístup k vašemu novému tajnému klíči pro proměnné prostředí.
Nyní si zaznamenejte tajné informace API klíče, protože tyto parametry jsou jedinými parametry, které jsou přímo vystaveny systému.
Nainstalujte psono ci na váš server nebo do vaší build pipeline jednoduchým příkazem:
curl https://get.psono.com/psono/psono-ci/x86_64-linux/psonoci --output psonoci && chmod +x psonoci
A místo pouhého spuštění ./some_command spustíte váš proces takto:
psonoci \
--api-key-id eaee77c6-169f-4873-9be3-f2613149baa9 \
--api-secret-key-hex c8321d7a8e5b1f5ec3d969ecb5054c7548a1c709ddab2edae2ff7ff028538917 \
--server-url https://example.com/server \
run -- ./some_command
Pro jednoduchost předáváme parametry jako --api-key-id nebo --api-secret-key-hex jako argumenty, ale můžete také nastavit konfigurační soubor.
Pro demo účely jsme vytvořili tento malý python skript service.py, který vypisuje všechny proměnné prostředí a argumenty, které byly předány skriptu.
#!/usr/bin/python3
import os
import sys
print("args: {}".format(sys.argv))
print("environment: {}".format(os.environ))
Místo spuštění například ./service.py --whatever=argument_1 ho můžeme spustit takto:
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
Dostaneme následující výstup:
args: ['service.py', '--whatever', 'argument_1']
environment: environ({'db_host': 'prd-db.example.com:5432', 'db_password': 'Df55sr2UQm7Wshv7', 'db_username': 'production'})
Jak vidíme, všechny argumenty byly správně předány a všechny dříve nakonfigurované proměnné prostředí byly k dispozici procesu. Jsou zde zástavky, které umožňují předávat i normální systémové proměnné prostředí a rozšiřovat je těmi z Psona. Podrobnější informace můžete najít zde v naší dokumentaci pro psonoci.
Doufám, že se vám líbila naše malá exkurze, která demonstruje, jak může Psono pomoci chránit vaši infrastrukturu. To vše by nebylo možné bez Bernda, mistra stojícího za touto funkcionalitou, takže Bernde, veliké díky!