Mode enkripsi dan penegakan transit

Menggunakan Keamanan AWS untuk Developer

Rahul Singh

Technical Product Manager

Dua jaminan, satu default

Sebuah aplikasi mengirimkan objek ke bucket Amazon S3. Kurung hijau berlabel in transit membentang di lompatan jaringan, dan kurung hijau kedua berlabel at rest membentang di objek tersimpan, dengan catatan bahwa SSE-S3 berlaku kecuali permintaan menyatakan sebaliknya.

  • At rest: byte di disk
  • In transit: byte di jaringan
Menggunakan Keamanan AWS untuk Developer

Dua jaminan, satu default

Sebuah aplikasi mengirimkan objek ke bucket Amazon S3. Kurung hijau berlabel in transit membentang di lompatan jaringan, dan kurung hijau kedua berlabel at rest membentang di objek tersimpan, dengan catatan bahwa SSE-S3 berlaku kecuali permintaan menyatakan sebaliknya.

  • At rest: byte di disk
  • In transit: byte di jaringan
  • Sudah aktif: SSE-S3 pada setiap objek baru
  • Tetap milik Anda: Mode mana, dan siapa yang memegang kunci, ditentukan oleh
Menggunakan Keamanan AWS untuk Developer

Di mana plaintext berakhir

Sisi server

  • AWS menerima byte yang dapat dibaca
  • S3 mengenkripsi saat menulis

 

Alur sisi server. Proses Anda memegang plaintext, mengirimkannya melalui kabel TLS, dan Amazon S3 mengenkripsi saat menulis. Batang di bawah melacak byte, dibagi oleh garis putus-putus di S3: bagian sebelum S3 berlabel "your bytes: readable here" dan berwarna merah, bagian setelahnya berlabel "ciphertext" dan berwarna hijau.

 

Menggunakan Keamanan AWS untuk Developer

Di mana plaintext berakhir

Sisi server

  • AWS menerima byte yang dapat dibaca
  • S3 mengenkripsi saat menulis

Sisi klien

  • Anda mengenkripsi sebelum keluar
  • AWS hanya menyimpan ciphertext

Alur sisi server. Proses Anda memegang plaintext, mengirimkannya melalui kabel TLS, dan Amazon S3 mengenkripsi saat menulis. Batang di bawah melacak byte, dibagi oleh garis putus-putus di S3: bagian sebelum S3 berlabel "your bytes: readable here" dan berwarna merah, bagian setelahnya berlabel "ciphertext" dan berwarna hijau.

Alur sisi klien. Proses Anda mengenkripsi terlebih dahulu, mengirim ciphertext melalui kabel TLS, dan Amazon S3 menyimpan apa yang diterima. Batang di bawah melacak byte, dibagi oleh garis putus-putus di dalam proses Anda: bagian pendek sebelum itu berlabel "your bytes: readable here" dan berwarna merah, sisanya berlabel "ciphertext" dan berwarna hijau.

Menggunakan Keamanan AWS untuk Developer

Empat mode, satu perbedaan

Algoritme sama, empat pemilik kunci

  • Mode dikirim sebagai header pada PUT
  • SSE-S3: kunci AWS, tidak ada yang dikelola
  • SSE-KMS: kunci Anda, CloudTrail, dan kebijakan kunci terlampir yang menyatakan kepada siapa ia akan merespons

Empat kartu bertumpuk menamai SSE-S3, SSE-KMS, DSSE-KMS, dan SSE-C. Rel di kiri berjalan dari kendali AWS di atas ke kendali Anda di bawah, dan tiap kartu hanya memuat nilai header permintaan yang memilih mode tersebut.

Menggunakan Keamanan AWS untuk Developer

Empat mode, satu perbedaan

Algoritme sama, empat pemilik kunci

  • Mode dikirim sebagai header pada PUT
  • SSE-S3: kunci AWS, tidak ada yang dikelola
  • SSE-KMS: kunci Anda, CloudTrail, dan kebijakan kunci terlampir yang menyatakan kepada siapa ia akan merespons
  • DSSE-KMS: dua lapisan independen
  • SSE-C: kunci Anda di setiap permintaan, tanggung jawab Anda jika hilang

Empat kartu bertumpuk menamai SSE-S3, SSE-KMS, DSSE-KMS, dan SSE-C. Rel di kiri berjalan dari kendali AWS di atas ke kendali Anda di bawah, dan tiap kartu hanya memuat nilai header permintaan yang memilih mode tersebut.

Menggunakan Keamanan AWS untuk Developer

Keberatan biaya pada SSE-KMS

Dua baris. Tanpa Bucket Keys, enam panah berjalan dari Amazon S3 ke AWS KMS, satu untuk setiap permintaan objek. Dengan Bucket Keys, satu panah keluar dari kunci tingkat bucket yang dipegang di dalam S3. Catatan di bawah menyatakan bahwa Bucket Keys tidak tersedia dengan DSSE-KMS.

  • Tanpa: satu panggilan KMS per objek
  • Dengan Bucket Keys: satu kunci berumur pendek, digunakan ulang
  • Tidak tersedia dengan DSSE-KMS
  • Hingga 99% lebih sedikit permintaan KMS
Menggunakan Keamanan AWS untuk Developer

Enkripsi bidangnya, bukan tabelnya

At rest sudah aktif

  • Kueri mengembalikan plaintext ke siapa pun yang punya akses baca

Satu item DynamoDB dengan lima atribut. Dua atribut menyimpan ciphertext dan membawa rel biru, sementara partition key, sort key, dan timestamp tetap plaintext. Kotak hijau di bawah menyatakan bahwa seluruh tabel dienkripsi at rest.

Menggunakan Keamanan AWS untuk Developer

Enkripsi bidangnya, bukan tabelnya

At rest sudah aktif

  • Kueri mengembalikan plaintext ke siapa pun yang punya akses baca

AWS Database Encryption SDK

  • Enkripsi atribut terpilih di kode Anda
  • Partition dan sort key, bidang yang digunakan DynamoDB untuk menemukan item, tetap plaintext karena diindeks

Satu item DynamoDB dengan lima atribut. Dua atribut menyimpan ciphertext dan membawa rel biru, sementara partition key, sort key, dan timestamp tetap plaintext. Kotak hijau di bawah menyatakan bahwa seluruh tabel dienkripsi at rest.

Menggunakan Keamanan AWS untuk Developer

TLS ditawarkan, tidak diwajibkan

Ditawarkan, tidak ditegakkan

  • S3 menjawab HTTP dan HTTPS sama saja

Dua skenario. Tanpa kondisi pada bucket, klien HTTPS dan HTTP sama-sama mencapai objek. Dengan kondisi deny, jalur HTTP berhenti di tanda silang merah dan tidak pernah terhubung.

Menggunakan Keamanan AWS untuk Developer

TLS ditawarkan, tidak diwajibkan

Ditawarkan, tidak ditegakkan

  • S3 menjawab HTTP dan HTTPS sama saja

Jadikan persyaratan

  • Kebijakan bucket: tolak saat aws:SecureTransport bernilai false
  • Klien yang sah tidak menyadari perubahan apa pun

Dua skenario. Tanpa kondisi pada bucket, klien HTTPS dan HTTP sama-sama mencapai objek. Dengan kondisi deny, jalur HTTP berhenti di tanda silang merah dan tidak pernah terhubung.

Menggunakan Keamanan AWS untuk Developer

Otoritas mana yang menjamin nama tersebut

Nama publik

  • ACM: tepercaya publik, gratis, memperbarui sendiri

Nama yang hanya jaringan Anda resolusikan

  • AWS Private CA: otoritas sertifikat milik Anda
  • Tidak pernah tepercaya di internet publik

Dua kartu bertumpuk berjudul siapa yang dapat menerbitkan sertifikat. Kartu atas, nama publik, menampilkan reports dot example dot com sebagai nama yang diresolusikan dan ACM sebagai penerbit, tepercaya di mana-mana. Kartu bawah, nama internal, menampilkan admin dot example dot internal, hanya diresolusikan di dalam VPC Anda, dan AWS Private CA sebagai penerbit.

Menggunakan Keamanan AWS untuk Developer

Bagian privat adalah milik Anda—bisa hilang

Siapa yang memegangnya

  • ACM: AWS menyimpannya
  • Pasangan kunci EC2, atau kunci SSH apa pun: Anda memegang bagian privat, satu kali

Dua kartu bertumpuk berjudul siapa memegang bagian mana. Kartu atas, bagian publik, menyatakan bahwa ia berada di AWS atau instans. Kartu oranye bawah, bagian privat, memberi tiga baris: Anda mendapat satu salinan tanpa cadangan, simpan di Secrets Manager dengan tanda centang hijau, dan jangan pernah di repo, laptop, atau chat, dengan tanda silang oranye.

Menggunakan Keamanan AWS untuk Developer

Bagian privat adalah milik Anda—bisa hilang

Siapa yang memegangnya

  • ACM: AWS menyimpannya
  • Pasangan kunci EC2, atau kunci SSH apa pun: Anda memegang bagian privat, satu kali

Jika milik Anda

  • Secrets Manager, bukan repo
  • Ganti berkala sesuai jadwal

Dua kartu bertumpuk berjudul siapa memegang bagian mana. Kartu atas, bagian publik, menyatakan bahwa ia berada di AWS atau instans. Kartu oranye bawah, bagian privat, memberi tiga baris: Anda mendapat satu salinan tanpa cadangan, simpan di Secrets Manager dengan tanda centang hijau, dan jangan pernah di repo, laptop, atau chat, dengan tanda silang oranye.

Menggunakan Keamanan AWS untuk Developer

Tiga jawaban, bukan satu

Tiga kartu bernomor untuk mode, kontrol kunci, dan transit, masing-masing menampilkan header atau kunci kondisi yang menjawabnya. Garis di bawah mencatat bahwa hanya pemeriksaan ketiga yang berada di luar pengaturan enkripsi.

  1. Mode: apa yang menulis objek
  2. Kontrol kunci: siapa yang dapat mendekripsi, di akun ini atau lainnya
  3. Transit: diwajibkan, atau hanya ditawarkan
Menggunakan Keamanan AWS untuk Developer

Ayo berlatih!

Menggunakan Keamanan AWS untuk Developer

Preparing Video For Download...