Jauhkan rahasia dari kode dan log

Menggunakan Keamanan AWS untuk Developer

Rahul Singh

Technical Product Manager

Tidak semua yang sensitif adalah rahasia

Tiga jenis string

  • Rahasia: orang asing bisa bertindak sebagai Anda
  • Data sensitif: seseorang terekspos
  • Konfigurasi: tak ada yang bisa didapat

Tiga baris bertumpuk membandingkan rahasia, data sensitif, dan konfigurasi. Tiap baris menampilkan dua nilai contoh dan apa yang bisa dilakukan orang asing dengannya, dari bertindak sebagai Anda hingga tidak ada yang bisa didapat.

Menggunakan Keamanan AWS untuk Developer

Tidak semua yang sensitif adalah rahasia

Tiga jenis string

  • Rahasia: orang asing bisa bertindak sebagai Anda
  • Data sensitif: seseorang terekspos
  • Konfigurasi: tak ada yang bisa didapat

Dua istilah untuk data pribadi

  • PII: personally identifiable information
  • PHI: protected health information

Tiga baris bertumpuk membandingkan rahasia, data sensitif, dan konfigurasi. Tiap baris menampilkan dua nilai contoh dan apa yang bisa dilakukan orang asing dengannya, dari bertindak sebagai Anda hingga tidak ada yang bisa didapat.

Menggunakan Keamanan AWS untuk Developer

Empat cara rahasia bocor keluar

Sebuah rahasia dalam sistem berjalan bercabang ke empat jalur bernomor: penanda satu ke kode sumber dan riwayatnya, dua ke variabel lingkungan, tiga ke log aplikasi, empat ke keluaran error dan jejak. Keempatnya bermuara pada kotak bertuliskan dapat dibaca oleh seseorang.

  1. Kode sumber dan riwayatnya
  2. Variabel lingkungan
Menggunakan Keamanan AWS untuk Developer

Empat cara rahasia bocor keluar

Sebuah rahasia dalam sistem berjalan bercabang ke empat jalur bernomor: penanda satu ke kode sumber dan riwayatnya, dua ke variabel lingkungan, tiga ke log aplikasi, empat ke keluaran error dan jejak. Keempatnya bermuara pada kotak bertuliskan dapat dibaca oleh seseorang.

  1. Kode sumber dan riwayatnya
  2. Variabel lingkungan
  3. Log aplikasi
  4. Keluaran error dan jejak
Menggunakan Keamanan AWS untuk Developer

Terenkripsi saat tersimpan bukan berarti tersembunyi

Pilihan yang terasa aman

  • Di-enkripsi saat tersimpan, selalu
  • Kunci AWS KMS, dikelola AWS secara default

Fungsi Lambda yang menyimpan variabel lingkungan terbagi dua jalur. Di disk terenkripsi saat tersimpan dengan kunci AWS KMS (hijau). Lewat API, pemanggilan GetFunctionConfiguration mengembalikan nilai dalam bentuk jelas (merah). Keduanya bertemu pada catatan bahwa hanya satu jalur yang terlindungi.

Menggunakan Keamanan AWS untuk Developer

Terenkripsi saat tersimpan bukan berarti tersembunyi

Pilihan yang terasa aman

  • Di-enkripsi saat tersimpan, selalu
  • Kunci AWS KMS, dikelola AWS secara default

Apa yang dikembalikan GetFunctionConfiguration

  • Nilainya, dalam teks biasa

Jawaban penyimpanan untuk pertanyaan akses

Fungsi Lambda yang menyimpan variabel lingkungan terbagi dua jalur. Di disk terenkripsi saat tersimpan dengan kunci AWS KMS (hijau). Lewat API, pemanggilan GetFunctionConfiguration mengembalikan nilai dalam bentuk jelas (merah). Keduanya bertemu pada catatan bahwa hanya satu jalur yang terlindungi.

Menggunakan Keamanan AWS untuk Developer

Pilih penyimpanan mana, dan alasannya

Dua layanan, masing-masing satu tugas

  • Secrets Manager: dibuat untuk rahasia
  • Parameter Store: dibuat untuk konfigurasi, dan parameter SecureString dienkripsi dengan kunci KMS

Diagram spektrum. Secrets Manager di kiri, Systems Manager Parameter Store di kanan, empat rel horizontal di antaranya. Penanda bernomor di tiap rel: satu jauh di kiri, dua kiri-tengah, tiga di garis tengah, empat jauh di kanan, dengan angka biaya di ujung rel keempat dan catatan bahwa rotasi jadi penentu.

Menggunakan Keamanan AWS untuk Developer

Pilih penyimpanan mana, dan alasannya

Dua layanan, masing-masing satu tugas

  • Secrets Manager: dibuat untuk rahasia
  • Parameter Store: dibuat untuk konfigurasi, dan parameter SecureString dienkripsi dengan kunci KMS

Empat hal yang menentukan

  1. Rotasi terkelola
  2. Berbagi lintas akun
  3. Versi
  4. Biaya

Diagram spektrum. Secrets Manager di kiri, Systems Manager Parameter Store di kanan, empat rel horizontal di antaranya. Penanda bernomor di tiap rel: satu jauh di kiri, dua kiri-tengah, tiga di garis tengah, empat jauh di kanan, dengan angka biaya di ujung rel keempat dan catatan bahwa rotasi jadi penentu.

Menggunakan Keamanan AWS untuk Developer

Baca yang baru, cache sebentar

Proses Anda yang berjalan memanggil GetSecretValue pada penyimpanan rahasia di penanda satu, memakai peran terbatas di penanda dua yang dibatasi ke satu ARN rahasia plus kms:Decrypt, lalu menahan nilai yang dikembalikan dalam cache di memori pada penanda tiga sebelum memanggil basis data atau API mitra.

  1. Panggil GetSecretValue saat awal jalan
  2. Peran dibatasi ke satu ARN rahasia plus kms:Decrypt
Menggunakan Keamanan AWS untuk Developer

Baca yang baru, cache sebentar

Proses Anda yang berjalan memanggil GetSecretValue pada penyimpanan rahasia di penanda satu, memakai peran terbatas di penanda dua yang dibatasi ke satu ARN rahasia plus kms:Decrypt, lalu menahan nilai yang dikembalikan dalam cache di memori pada penanda tiga sebelum memanggil basis data atau API mitra.

  1. Panggil GetSecretValue saat awal jalan
  2. Peran dibatasi ke satu ARN rahasia plus kms:Decrypt
  3. Cache nilai di memori

Cache selamanya, rotasi akan merusak Anda

Menggunakan Keamanan AWS untuk Developer

Rotasi memindahkan nilai di bawah Anda

Mengapa empat langkah, bukan satu tukar

  • Nilai baru dibuktikan sebelum digunakan siapa pun
  • Satu tukar akan merusak semua klien sekaligus

Tiga kolom menurun: langkah rotasi, label, dan cache Anda. Secrets Manager menjalankan createSecret, setSecret, dan testSecret, lalu garis putus menandai momen finishSecret memindahkan label. Di atas garis, label berbunyi AWSCURRENT sama dengan nilai lama dan cache benar; di bawahnya, label berbunyi AWSCURRENT sama dengan nilai baru dan cache yang sama diarsir merah. Dua perbaikan menutup diagram: masa pakai cache singkat dan penyegaran saat kegagalan autentikasi.

Menggunakan Keamanan AWS untuk Developer

Rotasi memindahkan nilai di bawah Anda

Mengapa empat langkah, bukan satu tukar

  • Nilai baru dibuktikan sebelum digunakan siapa pun
  • Satu tukar akan merusak semua klien sekaligus

Empat langkah, satu serah-terima

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

Tiga kolom menurun: langkah rotasi, label, dan cache Anda. Secrets Manager menjalankan createSecret, setSecret, dan testSecret, lalu garis putus menandai momen finishSecret memindahkan label. Di atas garis, label berbunyi AWSCURRENT sama dengan nilai lama dan cache benar; di bawahnya, label berbunyi AWSCURRENT sama dengan nilai baru dan cache yang sama diarsir merah. Dua perbaikan menutup diagram: masa pakai cache singkat dan penyegaran saat kegagalan autentikasi.

Menggunakan Keamanan AWS untuk Developer

Rotasi memindahkan nilai di bawah Anda

Mengapa empat langkah, bukan satu tukar

  • Nilai baru dibuktikan sebelum digunakan siapa pun
  • Satu tukar akan merusak semua klien sekaligus

Empat langkah, satu serah-terima

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

Tidak ada yang memberi tahu cache Anda

  • Masa pakai menit, lalu baca ulang
  • Segarkan saat autentikasi gagal

Tiga kolom menurun: langkah rotasi, label, dan cache Anda. Secrets Manager menjalankan createSecret, setSecret, dan testSecret, lalu garis putus menandai momen finishSecret memindahkan label. Di atas garis, label berbunyi AWSCURRENT sama dengan nilai lama dan cache benar; di bawahnya, label berbunyi AWSCURRENT sama dengan nilai baru dan cache yang sama diarsir merah. Dua perbaikan menutup diagram: masa pakai cache singkat dan penyegaran saat kegagalan autentikasi.

Menggunakan Keamanan AWS untuk Developer

Mask, sunting, tetap mudah debug

Satu baris log mentah berisi ID permintaan, nomor kartu penuh, dan token, diberi bingkai merah. Di bawahnya tiga kolom yang sama setelah diproses: ID permintaan dibiarkan, kartu dimasker hanya empat digit terakhir, dan token diganti penanda disunting, dengan catatan cukup untuk debug.

Bersihkan sebelum menulis

  • Mask: bentuk dipertahankan, nilai disembunyikan
Menggunakan Keamanan AWS untuk Developer

Mask, sunting, tetap mudah debug

Satu baris log mentah berisi ID permintaan, nomor kartu penuh, dan token, diberi bingkai merah. Di bawahnya tiga kolom yang sama setelah diproses: ID permintaan dibiarkan, kartu dimasker hanya empat digit terakhir, dan token diganti penanda disunting, dengan catatan cukup untuk debug.

Bersihkan sebelum menulis

  • Mask: bentuk dipertahankan, nilai disembunyikan
  • Redact: nilai dihapus, sisakan penanda
Menggunakan Keamanan AWS untuk Developer

Mask, sunting, tetap mudah debug

Satu baris log mentah berisi ID permintaan, nomor kartu penuh, dan token, diberi bingkai merah. Di bawahnya tiga kolom yang sama setelah diproses: ID permintaan dibiarkan, kartu dimasker hanya empat digit terakhir, dan token diganti penanda disunting, dengan catatan cukup untuk debug.

Bersihkan sebelum menulis

  • Mask: bentuk dipertahankan, nilai disembunyikan
  • Redact: nilai dihapus, sisakan penanda

On-call butuh konfigurasi, orang asing butuh sisanya

Menggunakan Keamanan AWS untuk Developer

Ayo berlatih!

Menggunakan Keamanan AWS untuk Developer

Preparing Video For Download...