Cara mengonversi EBS yang tidak terenkripsi menjadi terenkripsi

18

Saya memiliki sejumlah volume EBS lama yang tidak dienkripsi. Dalam memuaskan langkah-langkah keamanan perusahaan yang baru, semua data perlu "dienkripsi saat istirahat" jadi saya perlu mengubah semua volume yang akan dienkripsi.

Apa cara terbaik untuk mencapai ini?

Abu-abu
sumber

Jawaban:

37

Mungkin untuk menyalin snapshot EBS yang tidak terenkripsi ke snapshot EBS terenkripsi. Jadi proses berikut dapat digunakan:

  1. Hentikan instance EC2 Anda.
  2. Buat cuplikan EBS dari volume yang ingin Anda enkripsi.
  3. Salin snapshot EBS, mengenkripsi salinan dalam proses.
  4. Buat volume EBS baru dari snapshot EBS terenkripsi baru Anda. Volume EBS baru akan dienkripsi.
  5. Lepaskan volume EBS asli dan lampirkan volume EBS terenkripsi baru Anda, pastikan untuk mencocokkan nama perangkat (/ dev / xvda1, dll.)
Matt Houser
sumber
1
Wow. Tidak tahu itu matt. Bagus
Gray
2
Hanya untuk menjadi sombong, Anda klik pada snapshot tidak terenkripsi, tarik ke bawah untuk menyalin, dan klik tombol terenkripsi untuk mengenkripsi salinan.
Gray
4
Satu gotcha kecil. Pastikan instance Anda mendukung EBS terenkripsi juga. Mungkin saja Anda berada pada contoh yang tidak. Tapi itu hanya masalah menghentikan instance, lalu mengubah tipenya.
Dave Beer
Untuk beberapa alasan setelah melakukan ini, volume terenkripsi HANYA akan dipasang sebagai hanya baca ...
Douglas Gaskell
Anda, kawan, adalah PRIA.
aran
0

[[Ini bukan jawaban yang tepat dan bukan bagaimana kita melakukan hal-hal sekarang, tetapi saya akan meninggalkan ini di sini kalau-kalau ada orang lain yang menemukan utilitas untuk melakukannya dengan "cara yang sulit"). ]]

Proses berikut ini bekerja dengan baik bagi kami untuk mengubah volume EBS kami yang ada menjadi volume yang dienkripsi.

  • Buat volume dengan ukuran persis sama dan di zona ketersediaan yang sama dengan volume yang tidak dienkripsi tetapi dengan enkripsi diaktifkan. Jika volume lama bernama "XYZ", beri nama volume baru sebagai "XYZ Baru" sehingga Anda tidak kehilangan jejaknya. Kami menggunakan kunci enkripsi AWS default tetapi ada opsi lain dalam dokumen EBS .
  • Boot instance linux sementara sebagai mesin konverter ke zona ketersediaan yang sama dengan volume. Benar-benar setiap contoh ukuran akan dilakukan meskipun contoh yang dioptimalkan EBS dapat menyelesaikan migrasi lebih cepat.
  • Matikan instance dengan volume yang tidak terenkripsi saat ini.
  • Lepaskan volume yang tidak terenkripsi dari instance.
  • Pasang volume yang tidak terenkripsi ke instance konverter. Tonton perangkat yang menurut dialog lampiran terpasang sebagai. Volume tambahan pertama harus berupa sesuatu /dev/sdf.
  • Lampirkan volume terenkripsi baru yang baru saja Anda buat juga ke instance konverter. Volume tambahan kedua mungkin akan /dev/sdg.
  • Masuk ke instance konverter sebagai root atau sebagai pengguna dengan akses sudo.
  • Jika Anda melihat /proc/diststatsfile, di bagian bawah Anda akan melihat sesuatu seperti xvdfdan xvdgyang sesuai dengan partisi tambahan terlampir. Nama-nama mungkin berbeda tergantung pada varian / versi Linux Kernel yang Anda gunakan. Jika ada pertanyaan, Anda dapat memeriksa /proc/diststatsfile sebelum melampirkan untuk melihat partisi apa yang ditambahkan.

    ...
    # root partition
    202       1 xvda1 187267 4293 12100842 481972 52550 26972 894168 156944 0 150548 ...
    # swap partion
    202      16 xvdb 342 10 2810 8 5 1 48 12 0 20 20
    # first attached drive, corresponds to /dev/xvdf
    202      80 xvdf 86 0 688 28 0 0 0 0 0 28 28
    # second attached drive, corresponds to /dev/xvdg
    202      96 xvdg 86 0 688 32 0 0 0 0 0 32 32
    
  • Jalankan ddperintah berikut untuk menyalin dari sumber volume yang tidak dienkripsi ke volume yang dienkripsi tujuan. PERINGATAN: Perintah ini bisa sangat merusak. Gunakan waktumu. Periksa dua kali, potong sekali. Minta seseorang melihat dari balik bahu Anda. Ini akan membantu Anda dari mencemari data Anda. Ayo berhati-hati di luar sana!

    # using a block-size of 16k (a guess), copy from input-file (if) to output-file (of)
    dd bs=16k if=/dev/xvdf of=/dev/xvdg
    
  • Tunggu perintah dd selesai dan kembali ke command prompt. Pada contoh kami, disk 16 GB memakan waktu ~ 5 menit sehingga Anda dapat menghitung dengan lebih besar. Jarak tempuh Anda mungkin beragam.
  • Lepaskan volume yang tidak terenkripsi dan terenkripsi baru dari instance konverter.
  • Lampirkan volume terenkripsi baru ke instance yang menggunakan volume yang tidak terenkripsi sebelumnya dan boot itu.
  • Ketika muncul lakukan apa yang perlu Anda lakukan untuk memvalidasi bahwa sistem terlihat bagus.
  • Ganti nama volume dari "XYZ" menjadi "Old XYZ". Ganti nama "New XYZ" menjadi "XYZ". Tinggalkan volume "Old XYZ" jika Anda perlu mengembalikan jika ada masalah.
Abu-abu
sumber