IT služby vyžadujú konfiguráciu. Súčasťou konfigurácie sú aj tajné údaje, ktoré nechcete, aby boli zverejnené. Bežné príklady sú prihlasovacie údaje k databáze alebo náhodné hodnoty, ktoré chránia session cookies alebo prihlasovacie údaje. Ak vyvíjate softvér, situácia sa často zhoršuje s build-pipeline-ami, distribučnými certifikátmi a prístupovými kľúčmi.
Kompromitované tajomstvá môžu viesť k prevzatiu účtu používateľa, krádeži dát, útokom na build-reťazec a ďalším nákladným problémom. Zlá reputácia, strata duševného vlastníctva a potenciálne vysoké právne poplatky sú len zlomkom možných nákladov.
Psono ponúka v najnovšej verzii psonoci chránené prostredia. Chránené prostredia vám umožňujú spúšťať procesy a konfigurovať ich cez environment variabilné, bez toho, aby ste ich vystavili systému. Tieto environment premenné sa načítavajú bezpečne z Psona, nikdy nie sú nikde na serveri uložené a sú prístupné iba jednému procesu.
Najprv musíte vytvoriť tajomstvo s environment premennými. Upozorňujeme, že jedno tajomstvo môže obsahovať viacero environment premenných, takže ich môžete zoskupovať podľa prostredia alebo preto, že spolu patria, napríklad databázový používateľ a databázové heslo.
Následne vytvoríte API kľúč a povolíte tomuto API kľúču prístup k vášmu novému tajomstvu s environment premennými.
Poznačte si API kľúč-tajomstvá, keďže tieto parametre sú jediné, ktoré sú priamo vystavené systému.
Nainštalujte psono ci na svoj server alebo do build pipeline jediným príkazom:
curl https://get.psono.com/psono/psono-ci/x86_64-linux/psonoci --output psonoci && chmod +x psonoci
A miesto obyčajného spustenia ./nejaky_prikaz spustite svoj proces takto:
psonoci \
--api-key-id eaee77c6-169f-4873-9be3-f2613149baa9 \
--api-secret-key-hex c8321d7a8e5b1f5ec3d969ecb5054c7548a1c709ddab2edae2ff7ff028538917 \
--server-url https://example.com/server \
run -- ./nejaky_prikaz
Pre jednoduchosť odovzdávame parametre ako --api-key-id alebo --api-secret-key-hex ako argumenty, môžete však tiež nakonfigurovať konfiguračný súbor.
Na účely demonštrácie sme vytvorili tento malý python skript service.py, ktorý vypíše všetky environment premenné a argumenty, ktoré boli skriptu odovzdané.
#!/usr/bin/python3
import os
import sys
print("args: {}".format(sys.argv))
print("environment: {}".format(os.environ))
Namiesto vykonania napríklad ./service.py --whatever=argument_1 ho môžeme spustiť 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 nasledujúci výstup:
args: ['service.py', '--whatever', 'argument_1']
environment: environ({'db_host': 'prd-db.example.com:5432', 'db_password': 'Df55sr2UQm7Wshv7', 'db_username': 'production'})
Ako vidíme, všetky argumenty boli správne odovzdané a všetky environment premenné, ktoré sme predtým nakonfigurovali, boli procesu dostupné. Sú k dispozícii príznaky, ktoré vám umožňujú odovzdať aj bežné systémové environment premenné a rozšíriť ich o tie z Psona. Podrobnejšie informácie nájdete v našej dokumentácii k psonoci.
Dúfam, že sa vám páčila naša malá exkurzia, ktorá demonštrovala, ako Psono môže pomôcť chrániť vašu infraštruktúru. Toto všetko by nebolo možné bez Bernda, mozgu stojaceho za touto funkcionalitou, takže veľká vďaka, Bernd!