Enkripsi Data in Transit - Mengenkripsi Data File dengan Amazon Elastic File System

Enkripsi Data in Transit

Anda dapat memasang sistem file sehingga semua lalu lintas NFS dienkripsi saat in transit menggunakan Keamanan Lapisan Pengangkutan (TLS) 1.2 dengan cipher AES-256 standar industri. TLS adalah serangkaian protokol kriptografi standar industri yang digunakan untuk mengenkripsi informasi yang dipertukarkan melalui jaringan. AES-256 adalah cipher enkripsi 256-bit yang digunakan untuk transmisi data di TLS. Sebaiknya siapkan enkripsi saat in transit pada setiap klien yang mengakses sistem file.

Anda dapat menggunakan kebijakan IAM untuk menerapkan enkripsi saat in transit untuk akses klien NFS ke Amazon EFS. Ketika klien terhubung ke sistem file, Amazon EFS akan mengevaluasi kebijakan sumber daya IAM untuk sistem file, yang disebut kebijakan sistem file, bersama dengan kebijakan IAM berbasis identitas apa pun, untuk menentukan izin akses sistem file yang sesuai untuk diberikan. Anda dapat menggunakan Kunci Kondisi aws:SecureTransport dalam kebijakan sumber daya sistem file untuk mendorong klien NFS untuk menggunakan TLS saat terhubung ke sistem file EFS.

catatan

Anda harus menggunakan EFS mount helper untuk memasang sistem file Amazon EFS Anda agar menggunakan otorisasi IAM untuk mengontrol akses oleh klien NFS. Untuk informasi selengkapnya, lihat Pemasangan dengan otorisasi IAM dalam Panduan Pengguna Amazon EFS.

Contoh kebijakan sistem file EFS berikut memberlakukan enkripsi saat in transit dan memiliki karakteristik berikut:

  • effect adalah allow.

  • Principal diatur ke * untuk semua entitas IAM.

  • Tindakan diatur ke ClientMount, ClientWrite, ClientRootAccess.

  • Kondisi pemberian izin diatur ke SecureTransport. Hanya klien NFS yang menggunakan TLS untuk terhubung ke sistem file yang akan diberikan akses.

    { “Version”: “2012-10-17”, “Id”: “ExamplePolicy01”, “Statement”: [ { “Sid”: “VisualEditior0”, “Effect”: “Allow”, “Principal”: { “AWS”: “*”, }, “Action”: [ “elasticfilesystem:ClientRootAccess”, “elasticfilesystem:ClientMount”, “elasticfilesystem:ClientWrite” ], “Condition”: { “Bool”: { “aws:SecureTransport”: “true” } } } ] }

    Anda dapat membuat kebijakan sistem file menggunakan konsol Amazon EFS atau menggunakan AWS CLI.

Untuk membuat kebijakan sistem file menggunakan konsol EFS:

  1. Buka konsol Amazon EFS.

  2. Pilih File Systems (Sistem File).

  3. Pada halaman Sistem file, pilih sistem file yang ingin diedit atau dibuatkan kebijakan sistem file-nya. Halaman detail untuk sistem file tersebut ditampilkan.

  4. Pilih File system policy (Kebijakan sistem file), lalu pilih Edit. Halaman Kebijakan sistem file muncul.

    Buat kebijakan sistem file

  5. Dalam Policy options (Opsi kebijakan), kami menyarankan Anda memilih opsi kebijakan yang telah dikonfigurasikan sebelumnya sebagai berikut:

    • Cegah akses root secara default

    • Berlakukan akses hanya-baca secara default

    • Berlakukan enkripsi saat in transit untuk semua klien

    Jika Anda memilih kebijakan yang telah dikonfigurasi sebelumnya, objek JSON kebijakan akan ditampilkan di panel Policy editor (Editor kebijakan).

  6. Gunakan Grant additional permissions (Berikan izin tambahan) untuk memberikan izin sistem file kepada principal IAM tambahan, termasuk akun AWS lainnya. Pilih Add (Tambahkan), lalu masukkan ARN Principal dari entitas yang Anda beri izin, lalu pilih Permissions (Izin) yang akan diberikan.

  7. Gunakan Kebijakan editor untuk menyesuaikan kebijakan yang telah dikonfigurasi sebelumnya atau untuk membuat kebijakan Anda sendiri berdasarkan kebutuhan Anda. Saat Anda menggunakan editor, opsi kebijakan yang telah dikonfigurasi sebelumnya menjadi tidak tersedia. Untuk membatalkan perubahan kebijakan, pilih Clear (Kosongkan).

    Ketika Anda mengosongkan editor, kebijakan yang telah dikonfigurasikan sebelumnya akan tersedia lagi.

  8. Setelah Anda selesai mengedit atau membuat kebijakan, pilih Save (Simpan).

    Halaman detail untuk sistem file ditampilkan, yang menunjukkan kebijakan dalam File system policy (Kebijakan sistem file).

    Anda juga dapat membuat kebijakan sistem file secara terprogram menggunakan AWS CloudFormation, SDK AWS, atau API Amazon EFS secara langsung. Untuk informasi selengkapnya tentang membuat kebijakan sistem file, lihat Membuat kebijakan sistem file dalam Panduan Pengguna Amazon EFS.

Menyiapkan Enkripsi Data in Transit

Untuk menyiapkan enkripsi data in transit, kami sarankan Anda mengunduh EFS mount helper pada setiap klien. EFS mount helper adalah utilitas sumber terbuka yang disediakan AWS untuk menyederhanakan penggunaan EFS, termasuk menyiapkan enkripsi data in transit. EFS mount helper menggunakan opsi pemasangan yang direkomendasikan EFS secara default.

EFS mount helper didukung pada distribusi Linux berikut:

  • Amazon Linux 2017.09+

  • Amazon Linux 2+

  • Debian 9+

  • Fedora 28+

  • Red Hat Enterprise Linux / CentOS 7+

  • Ubuntu 16.04+

Untuk menyiapkan enkripsi data in transit:

  1. Instal EFS mount helper:

    • Untuk Amazon Linux, gunakan perintah ini:

      sudo yum install -y amazon-efs-utils
    • Untuk distribusi Linux lainnya, unduh dari GitHub dan instal.

      Paket amazon-efs-utils secara otomatis menginstal dependensi berikut: NFS client (nfs-utils), Network relay (stunnel), OpenSSL, dan Python.

  2. Pasang sistem file:

    sudo mount -t efs -o tls file-system-id efs-mount-point
    • mount -t efs memanggil EFS mount helper.

    • Menggunakan nama DNS dari sistem file atau alamat IP dari target pemasangan tidak didukung ketika pemasangan menggunakan EFS mount helper, jadi gunakan ID sistem file sebagai gantinya.

    • EFS mount helper menggunakan opsi pemasangan yang direkomendasikan AWS secara default. Mengganti opsi pemasangan default ini tidak disarankan tetapi kami memberikan fleksibilitas untuk melakukannya ketika terdapat kesempatan yang sesuai. Kami menyarankan untuk menguji secara menyeluruh setiap penggantian opsi pemasangan sehingga Anda memahami bagaimana perubahan ini memengaruhi akses dan performa sistem file.

    • Tabel berikut menunjukkan opsi pemasangan default yang digunakan oleh EFS helper mount.

      Opsi Deskripsi
      nfsvers=4.1 Versi protokol NFS
      rsize=1048576 Jumlah maksimum bita data yang dapat diterima klien NFS untuk setiap permintaan READ jaringan)
      wsize=1048576 Jumlah maksimum bita data yang dapat dikirim klien NFS untuk setiap permintaan WRITE jaringan
      hard Perilaku pemulihan klien NFS setelah waktu permintaan NFS habis, sehingga permintaan NFS dicoba ulang tanpa batas waktu sampai server membalas
      timeo=600 Nilai batas waktu yang digunakan klien NFS untuk menunggu respons sebelum mencoba ulang permintaan NFS dalam Desidetik
      retrans=2 Frekuensi klien NFS mencoba kembali permintaan sebelum mencoba tindakan pemulihan lebih lanjut
      noresvport Memberi tahu klien NFS untuk menggunakan port sumber TCP baru ketika koneksi jaringan dibuat kembali
    • Tambahkan baris berikut ke /etc/fstab untuk secara otomatis memasang ulang sistem file Anda setelah sistem dimulai ulang.

      file-system-id efs-mount-point efs _netdev, tls, iam 0 0

Menggunakan Enkripsi Data in Transit

Jika organisasi Anda tunduk pada kebijakan korporasi atau peraturan yang mengharuskan enkripsi data in transit, sebaiknya gunakan enkripsi data in transit pada setiap klien yang mengakses sistem file. Enkripsi dan dekripsi dikonfigurasi pada tingkat koneksi dan menambahkan lapisan keamanan lainnya.

Memasang sistem file menggunakan EFS mount helper akan menyiapkan dan mempertahankan terowongan TLS 1.2 antara klien dan Amazon EFS, serta merutekan semua lalu lintas NFS melalui terowongan terenkripsi ini. Sertifikat yang digunakan untuk membuat koneksi TLS terenkripsi ditandatangani oleh Amazon Certificate Authority (CA) dan dipercaya oleh sebagian besar distribusi Linux modern. EFS mount helper juga menghasilkan proses watchdog guna memantau semua terowongan aman untuk setiap sistem file dan memastikan sistem file ini berjalan.

Setelah menggunakan EFS mount helper untuk membuat koneksi terenkripsi ke Amazon EFS, tidak diperlukan input atau konfigurasi pengguna lain. Enkripsi akan terlihat untuk koneksi pengguna dan aplikasi yang mengakses sistem file.

Setelah berhasil memasang dan membuat koneksi terenkripsi ke sistem file EFS menggunakan EFS mount helper, output dari perintah pasang menunjukkan sistem file dipasang dan terowongan yang terenkripsi telah dibuat menggunakan localhost (127.0.0.1) sebagai relai jaringan. Lihat contoh output berikut.

127.0.0.1:/ on efs-mount-point type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=20059,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)

Untuk memetakan efs-mount-point ke sistem file EFS, lakukan kueri file mount.log dalam /var/log/amazon/efs dan temukan operasi pemasangan yang terakhir berhasil. Hal ini dapat dilakukan dengan menggunakan perintah grep sederhana berikut.

grep -E "Successfully mounted.*efs-mount-point" /var/log/amazon/efs/mount.log | tail -1

Output dari perintah grep ini akan mengembalikan nama DNS dari sistem file EFS yang dipasang. Lihat contoh output di bawah ini.

2018-03-15 07:03:42,363 - INFO - Successfully mounted file-system-id.efs.region.amazonaws.com at efs-mount-point