Layanan IT memerlukan konfigurasi. Bagian dari konfigurasi adalah rahasia yang Anda tidak ingin terlihat terbuka. Contoh umum adalah kredensial basis data atau nilai acak yang melindungi cookie sesi atau kredensial autentikasi. Jika Anda sedang mengembangkan perangkat lunak, hal-hal cenderung menjadi lebih buruk dengan pipeline build, sertifikat distribusi, dan kunci akses.
Rahasia yang dikompromikan dapat menyebabkan pengambilalihan akun pengguna, pencurian data, serangan rantai pembangunan, dan masalah mahal lainnya. Reputasi buruk, kehilangan properti intelektual, dan biaya hukum yang sangat besar hanyalah sebagian kecil dari biaya yang mungkin terjadi.
Psono menawarkan versi terbaru psonoci untuk lingkungan yang dilindungi. Lingkungan yang dilindungi memungkinkan Anda menjalankan proses dan mengonfigurasinya melalui variabel lingkungan tanpa terpapar ke sistem. Variabel lingkungan ini dimuat dengan aman dari Psono, tidak pernah disimpan di server dan hanya terpapar ke satu proses saja.
Pertama Anda harus membuat rahasia variabel lingkungan. Harap diperhatikan bahwa satu rahasia dapat menyimpan banyak variabel lingkungan sehingga Anda dapat mengelompokkan variabel lingkungan misalnya berdasarkan lingkungan atau hanya karena mereka terkait seperti pengguna basis data dan kata sandi basis data.
Setelah itu, Anda membuat kunci API dan mengizinkan kunci API ini untuk mengakses rahasia variabel lingkungan baru Anda.
Sekarang catat rahasia kunci API, karena parameter ini adalah satu-satunya parameter yang secara langsung terpapar ke sistem.
Instal psono ci di server Anda atau dalam pipeline build Anda dengan satu perintah:
curl https://get.psono.com/psono/psono-ci/x86_64-linux/psonoci --output psonoci && chmod +x psonoci
Dan alih-alih hanya menjalankan ./some_command Anda memulai proses Anda seperti ini:
psonoci \
--api-key-id eaee77c6-169f-4873-9be3-f2613149baa9 \
--api-secret-key-hex c8321d7a8e5b1f5ec3d969ecb5054c7548a1c709ddab2edae2ff7ff028538917 \
--server-url https://example.com/server \
run -- ./some_command
Untuk kesederhanaan kami melewati parameter seperti --api-key-id atau --api-secret-key-hex sebagai argumen namun Anda juga dapat
mengkonsumsi file konfigurasi.
Untuk tujuan demo, kami membuat skrip python kecil ini service.py yang mencetak semua variabel lingkungan dan argumen yang
dilewatkan ke skrip.
#!/usr/bin/python3
import os
import sys
print("args: {}".format(sys.argv))
print("environment: {}".format(os.environ))
Alih-alih mengeksekusi misalnya ./service.py --whatever=argument_1 kita bisa mengeksekusinya seperti ini:
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
Kami mendapatkan keluaran berikut:
args: ['service.py', '--whatever', 'argument_1']
environment: environ({'db_host': 'prd-db.example.com:5432', 'db_password': 'Df55sr2UQm7Wshv7', 'db_username': 'production'})
Seperti yang kita lihat semua argumen diteruskan dengan benar dan semua variabel lingkungan yang sebelumnya kami konfigurasikan tersedia untuk proses. Ada tanda yang memungkinkan Anda meneruskan variabel lingkungan sistem normal juga dan memperluasnya dengan yang dari Psono. Informasi lebih rinci dapat ditemukan di dokumentasi kami untuk psonoci.
Saya harap Anda menyukai ekskursi kecil kami menunjukkan bagaimana Psono dapat membantu melindungi infrastruktur Anda. Semua ini tidak akan mungkin tanpa Bernd, otak di balik fitur ini, jadi terima kasih banyak Bernd!