Cyber Security Academy · Pelajaran

Peti Besi dan Gedung Rahsia

Memusatkan rahsia dengan alat seperti Vault.

Pelajaran 2 daripada 413 langkah

Peti Besi dan Gedung Rahsia ialah pelajaran Cyber Security Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cyber Security Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cyber Security Academy merangkumi sejumlah 4 pelajaran.

Perkara yang Diselesaikan oleh Stor Secret

Stor secret (atau peti besi) ialah perkhidmatan terpusat dan diperkuatkan yang tugasnya hanya menyimpan, mengawal serta mengaudit akses kepada secret. Ia menggantikan fail dan pemboleh ubah persekitaran yang berselerak dan menyebabkan penyebaran.

Pengurus rahsia yang baik menyediakan empat keupayaan teras:

  • Storan terpusat satu sumber kebenaran berwibawa.
  • Kawalan akses dasar terperinci tentang pihak dan perkara yang boleh membaca setiap secret.
  • Pengelogan audit rekod setiap akses untuk tindak balas insiden.
  • Penyulitan secret disulitkan ketika disimpan dan semasa dihantar.

Contohnya termasuk HashiCorp Vault, AWS Secrets Manager, Azure Key Vault dan GCP Secret Manager.

Struktur HashiCorp Vault

HashiCorp Vault ialah pengurus rahsia sumber terbuka yang popular. Ia menyusun fungsi kepada enjin rahsia yang boleh dipalamkan dan dipasang pada laluan.

  • Enjin KV menyimpan rahsia statik dalam pasangan kunci-nilai.
  • Enjin pangkalan data menjana kelayakan pangkalan data yang dinamik dan berjangka hayat pendek.
  • Enjin PKI mengeluarkan sijil TLS atas permintaan.
  • Enjin Transit menyediakan penyulitan sebagai perkhidmatan tanpa mendedahkan kunci.

Anda berinteraksi dengan Vault melalui API HTTP atau CLI. Setiap laluan dikawal oleh dasar yang menentukan pihak yang boleh membaca atau menulis di situ.

# Enable a KV v2 secrets engine at the 'secret/' path
vault secrets enable -path=secret kv-v2

# Write and read a static secret
vault kv put secret/app/db password='S3cr3t' user='app'
vault kv get secret/app/db

Model Penguncian dan Nyahkunci

Vault melindungi datanya dengan mekanisme penguncian/nyahkunci. Apabila Vault dimulakan, ia berada dalam keadaan terkunci; ia mengetahui lokasi data yang disulitkan tetapi tidak dapat menyahsulitkannya.

Kunci induk yang menyahsulit storan itu sendiri disulitkan oleh kunci nyahkunci. Dengan menggunakan Shamir's Secret Sharing, kunci nyahkunci tersebut dipecahkan kepada beberapa pecahan yang diedarkan kepada pengendali yang berbeza.

Ambang yang boleh dikonfigurasi (contohnya 3 daripada 5 pecahan) mesti diberikan untuk membina semula kunci dan menyahkunci Vault. Tiada seorang pun boleh menyahkuncinya sendirian, sekali gus melindungi sistem daripada pencerobohan orang dalam.

# Initialize Vault: 5 key shares, threshold of 3 to unseal
vault operator init -key-shares=5 -key-threshold=3

# Each operator supplies one shard until threshold is met
vault operator unseal <shard-1>
vault operator unseal <shard-2>
vault operator unseal <shard-3>

Pengesahan: Siapakah Anda

Sebelum membaca mana-mana secret, klien mesti mengesahkan identiti untuk mendapatkan token. Vault menyokong banyak kaedah pengesahan yang disesuaikan dengan identiti yang berbeza:

  • AppRole untuk aplikasi dan sistem integrasi berterusan (ID peranan + ID secret).
  • Kubernetes menggunakan token akaun perkhidmatan pod.
  • AWS/GCP/Azure IAM mempercayai identiti platform awan.
  • OIDC/LDAP untuk pengguna manusia melalui SSO.

Prinsip utamanya: identiti datang daripada platform, bukan kata laluan yang berjangka hayat panjang. Pod Kubernetes membuktikan identitinya menggunakan token akaun perkhidmatannya sendiri; tiada secret permulaan untuk dibocorkan.

# App authenticates via AppRole to receive a token
vault write auth/approle/login \
  role_id="db-app-role" \
  secret_id="$WRAPPED_SECRET_ID"
# Response includes client_token used for subsequent reads

Pemberian Kuasa dengan Dasar

Pengesahan membuktikan identiti; dasar menentukan perkara yang boleh dilakukan oleh identiti tersebut. Dasar Vault ditulis dalam HCL dan mengikut prinsip keistimewaan minimum dengan hanya memberikan laluan serta keupayaan yang diperlukan oleh beban kerja.

Dasar ini membolehkan sesuatu perkhidmatan membaca secret pangkalan datanya sendiri sahaja dan tidak lebih daripada itu:

Keupayaan dipetakan kepada kata kerja API: read, create, update, delete dan list. Tolak secara lalai; berikan secara eksplisit.

# policy: billing-app.hcl
path "secret/data/billing/*" {
  capabilities = ["read"]
}
path "database/creds/billing-readonly" {
  capabilities = ["read"]
}
# everything else is implicitly denied

Stor Rahsia Awan-Natif

Jika anda beroperasi pada satu awan sahaja, stor terurus penyedia menghapuskan beban operasi—tiada proses penguncian/nyahkunci dan tiada pelayan untuk ditampal:

  • AWS Secrets Manager bersepadu dengan IAM dan menyokong fungsi Lambda untuk penggiliran terbina dalam.
  • Azure Key Vault menyimpan rahsia, kunci dan sijil dengan RBAC.
  • GCP Secret Manager menyediakan rahsia berversi yang dilindungi oleh pengikatan IAM.

Akses dikawal oleh IAM awan, jadi beban kerja membaca secret menggunakan peranan sedia ada—tiada kata laluan berasingan. Pertukarannya ialah keterikatan kepada pembekal dan sokongan berbilang awan yang lebih lemah berbanding Vault.

# Read a secret from AWS Secrets Manager (workload uses its IAM role)
aws secretsmanager get-secret-value \
  --secret-id prod/billing/db \
  --query SecretString --output text

# GCP equivalent
gcloud secrets versions access latest --secret=billing-db

Penyulitan sebagai Perkhidmatan

Kadangkala anda tidak mahu menyimpan secret langsung; anda mahu menyulitkan data aplikasi tanpa aplikasi anda memegang kunci penyulitan.

Enjin Transit Vault melakukan perkara ini. Aplikasi menghantar teks biasa kepada Vault, menerima teks tersulit dan tidak pernah melihat kunci tersebut. Kaedah ini dipanggil penyulitan sebagai perkhidmatan.

Manfaatnya: kunci hanya berada di dalam Vault, boleh digilirkan secara terpusat dan aplikasi yang terjejas tidak dapat membocorkan kunci yang tidak pernah dimilikinya.

# Encrypt data without the app ever seeing the key
vault write transit/encrypt/orders-key \
  plaintext=$(echo -n 'card=4111...' | base64)
# returns: ciphertext=vault:v1:abc123...

# Decrypt later
vault write transit/decrypt/orders-key ciphertext='vault:v1:abc123...'

Menyuntik Rahsia ke dalam Beban Kerja

Peti besi hanya berguna jika aplikasi boleh menggunakan rahsia tanpa mengekod keras laluan atau token. Corak suntikan yang biasa:

  • Ejen pendamping Vault Agent berjalan bersama aplikasi, melakukan pengesahan dan menulis rahsia ke dalam volum memori yang dikongsi.
  • Pemacu CSI Kubernetes memasang rahsia sebagai fail melalui pemacu CSI Stor Rahsia.
  • Perolehan melalui SDK aplikasi memanggil API peti besi secara terus semasa permulaan.

Utamakan pemasangan pada sistem fail dalam memori (tmpfs) berbanding pemboleh ubah persekitaran, dan elakkan menulis rahsia ke cakera kerana rahsia tersebut boleh kekal di situ.

# Vault Agent template renders a secret to an in-memory file
template {
  contents = "DB_PASS={{ with secret \"secret/app/db\" }}{{ .Data.data.password }}{{ end }}"
  destination = "/run/secrets/db.env"
}

Pengelogan Audit dan Kebertanggungjawaban

Setiap peristiwa baca, tulis dan pengesahan dalam Vault hendaklah direkodkan dalam log audit. Inilah yang menjadikan pengurusan rahsia dapat dipertahankan semasa berlaku insiden.

Log audit menjawab soalan kritikal: siapa yang mencapai rahsia yang mana, bila dan dari mana. Vault mencincang nilai sensitif dalam log supaya log itu sendiri tidak membocorkan rahsia.

Hantar log audit ke sistem berasingan yang dapat mengesan pengusikan (SIEM) supaya penyerang yang menjejaskan hos Vault tidak dapat memadam bukti tentang perkara yang telah dicapainya.

# Enable a file audit device (HMAC-hashes secret values)
vault audit enable file file_path=/var/log/vault/audit.log

# Forward to a SIEM/syslog endpoint for tamper resistance
vault audit enable syslog tag="vault" facility="AUTH"

Melindungi Vault Itu Sendiri

Storan berpusat menumpukan risiko; jika Vault terjejas, semuanya turut terjejas. Kukuhkannya sebagai aset paling kritikal Anda:

  • Jalankan dengan TLS pada semua titik akhir; jangan dedahkan API tanpa penyulitan.
  • Simpan Vault pada rangkaian peribadi di sebalik peraturan tembok api yang ketat.
  • Dayakan nyahsegel automatik melalui KMS awan untuk mengelakkan pengendalian serpihan secara manual, tetapi lindungi kunci KMS itu dengan ketat.
  • Gunakan TTL token yang singkat dan pajakan yang boleh diperbaharui supaya token yang dicuri tamat tempoh dengan cepat.
  • Pasang tampalan dengan segera dan pantau log audit untuk mengesan kejanggalan.

Vault menukar banyak titik kegagalan kepada satu titik yang dipertahankan dengan sangat baik.

Memilih Storan yang Tepat

Tiada satu alat yang terbaik untuk semua keadaan; padankan storan dengan persekitaran Anda:

  • Satu awan, keperluan mudah gunakan pengurus asli (AWS/Azure/GCP) untuk beban operasi yang paling rendah.
  • Berbilang awan atau di premis HashiCorp Vault menyediakan abstraksi yang konsisten dan mudah alih.
  • Memerlukan rahsia dinamik atau penyulitan sebagai perkhidmatan enjin Vault mempunyai keupayaan yang paling menyeluruh.
  • Persekitaran yang banyak menggunakan Kubernetes gabungkan storan dengan pemacu CSI atau operator seperti External Secrets.

Walau apa pun pilihan Anda, matlamatnya sama: satu sumber kebenaran yang diaudit dan dikawal aksesnya bagi menggantikan teks biasa yang berselerak.

Semakan Pantas

Uji pemahaman Anda tentang model perlindungan Vault.

Imbas Kembali: Vault dan Stor Rahsia

Anda telah mempelajari cara menggantikan rahsia yang berselerak dengan storan berpusat yang diaudit.

  • Stor rahsia menyediakan storan berpusat, kawalan akses, pengelogan audit dan penyulitan.
  • HashiCorp Vault menggunakan enjin rahsia yang boleh dipasang dan model penyegelan/nyahsegelan yang dilindungi oleh Perkongsian Rahsia Shamir.
  • Kaedah pengesahan memperoleh identiti daripada platform (Kubernetes, IAM, AppRole), manakala dasar menguatkuasakan keistimewaan minimum.
  • Storan asli awan (AWS, Azure, GCP) mengorbankan kemudahalihan demi beban operasi yang rendah.
  • Enjin Transit menawarkan penyulitan sebagai perkhidmatan supaya aplikasi tidak pernah memegang kunci.
  • Suntik rahsia melalui ejen atau CSI ke dalam storan dalam memori, rekodkan setiap capaian dan kukuhkan Vault sebagai aset paling kritikal Anda.

Seterusnya, kita akan menjadikan rahsia lebih selamat dengan menjana rahsia secara dinamik dan berjangka hayat pendek.

Percuma untuk bermula

Pelajari Cyber Security Academy dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
76
Pelajaran
303

Soalan Lazim

Adakah pelajaran “Peti Besi dan Gedung Rahsia” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Cyber Security Academy, termasuk “Peti Besi dan Gedung Rahsia”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Cyber Security Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Peti Besi dan Gedung Rahsia”?

Memusatkan rahsia dengan alat seperti Vault. Anda berlatih Cyber Security Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cyber Security Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cyber Security Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Peti Besi dan Gedung Rahsia” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cyber Security Academy ini?

Ya. Setiap pelajaran Cyber Security Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Masalah Rahsia yang Bersepah
  2. Peti Besi dan Gedung Rahsia
  3. Rahsia Dinamik dan Pajakan
  4. Putaran Kunci dan Pengesanan
← Kembali ke Cyber Security Academy