Mengenkripsi data dengan kunci enkripsi yang dikelola pelanggan

Secara default, Filestore mengenkripsi konten pelanggan dalam penyimpanan. Filestore menangani enkripsi untuk Anda tanpa tindakan tambahan dari Anda. Opsi ini disebut enkripsi default Google.

Jika ingin mengontrol kunci enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud KMS dengan layanan terintegrasi CMEK, termasuk Filestore. Dengan menggunakan kunci Cloud KMS, Anda dapat mengontrol tingkat perlindungan, lokasi, jadwal rotasi, izin penggunaan dan akses, serta batas kriptografisnya. Dengan menggunakan Cloud KMS, Anda juga dapat melihat log audit dan mengontrol siklus proses kunci. Alih-alih Google yang memiliki dan mengelola kunci enkripsi kunci (KEK) simetris yang melindungi data Anda, Andalah yang mengontrol dan mengelola kunci ini di Cloud KMS.

Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Filestore Anda mirip dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi Anda, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

CMEK didukung untuk digunakan dengan instance dan cadangan Filestore.

Opsi CMEK

Filestore mendukung CMEK yang disimpan sebagai kunci software, sebagai kunci hardware di cluster HSM, dan sebagai kunci yang disimpan secara eksternal di Cloud External Key Manager (Cloud EKM).

Untuk mengetahui informasi selengkapnya, lihat Cloud Key Management Service.

Gangguan pada layanan EKM

Secara desain, kunci eksternal dikelola oleh pihak ketiga; dalam situasi ini, Google Cloud tidak bertanggung jawab atas ketersediaan kunci.

Jika Cloud Key Management Service (Cloud KMS) diberi tahu oleh External Key Manager (EKM) bahwa kunci eksternal tidak dapat dijangkau, pengguna akan menerima notifikasi ekm_key_unreachable_detected. Selama maksimal satu jam, pengguna memiliki akses terbatas ke operasi pada instance. Setelah satu jam, jika status kunci tidak berubah, tindakan berikut akan berlaku:

  • Kunci dinonaktifkan.
  • Semua operasi enkripsi dan dekripsi gagal.
  • Instance Filestore ditangguhkan.

Dalam beberapa kasus, seperti peristiwa yang tidak terencana seperti mulai ulang VM, akses ke instance dapat terganggu sebelum satu jam.

Notifikasi kunci yang tidak dapat dijangkau dapat dilihat dari halaman detail instance Filestore:

Buka halaman instance Filestore

Pengguna juga menerima notifikasi ekm_key_unreachable_detected pada salah satu operasi berikut jika dilakukan dalam waktu satu jam sejak notifikasi pertama dilaporkan:

Tingkat yang didukung

Tabel berikut menunjukkan tingkat layanan Filestore yang mendukung CMEK:

Tingkat Dukungan CMEK
HDD Dasar Tidak
SSD Dasar Tidak
Zonal Ya
Regional Ya
Enterprise Ya

Membuat key ring dan kunci untuk digunakan dengan instance Anda

Key ring dan kunci dapat berada di project yang berbeda dengan instance Filestore, tetapi harus berada di lokasi yang sama. Jika Anda sudah memiliki key ring dan kunci Cloud KMS yang ingin digunakan dengan Filestore, lanjutkan ke bagian berikutnya. Jika tidak, ikuti petunjuk di Membuat kunci enkripsi simetris untuk membuat key ring dan kunci.

Memberikan izin akses kunci ke akun layanan Filestore

Sebelum Anda dapat membuat instance Filestore yang menggunakan CMEK, akun layanan Filestore harus memiliki peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter).

  1. Akun layanan Filestore dibuat saat pertama kali Anda membuat instance Filestore di project. Jika Anda belum memiliki akun layanan Filestore, jalankan perintah services identity create berikut:

    gcloud beta services identity create --service=file.googleapis.com --project=INSTANCE_PROJECT_NUMBER_OR_ID
    

    Ganti INSTANCE_PROJECT_NUMBER_OR_ID dengan nomor project atau ID project tempat Anda ingin membuat instance Filestore.

  2. Tetapkan akun layanan Filestore ke peran Pengenkripsi/Pendekripsi Cloud KMS CryptoKey dengan menjalankan perintah projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding KMS_PROJECT_NUMBER_OR_ID \
        --member serviceAccount:service-INSTANCE_PROJECT_NUMBER@cloud-filer. \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Ganti kode berikut:

    • KMS_PROJECT_NUMBER_OR_ID dengan nomor atau ID project yang berisi kunci Cloud KMS yang ingin Anda gunakan.
    • INSTANCE_PROJECT_NUMBER dengan nomor project (bukan project ID) project tempat Anda ingin membuat instance Filestore.

Membuat instance yang menggunakan kunci Cloud KMS Anda

Konsol Google Cloud

Untuk membuat instance yang menggunakan kunci Cloud KMS Anda untuk enkripsi data:

  1. Di konsol Google Cloud, buka halaman instance Filestore.

    Buka halaman instance Filestore

  2. Klik Create Instance

  3. Pilih tingkat instance yang mendukung CMEK dan isi semua kolom wajib dan opsional lainnya seperti biasa.

  4. Klik Tampilkan opsi lanjutan.

  5. Pilih kotak centang Gunakan kunci enkripsi yang dikelola pelanggan (CMEK).

  6. Pilih kunci Cloud KMS yang ingin Anda gunakan untuk instance.

  7. Klik Create.

gcloud CLI

Untuk membuat instance Filestore yang menggunakan kunci Cloud KMS Anda untuk enkripsi data, tentukan flag --kms-key dalam perintah filestore instances create:

gcloud filestore instances create nfs-server \
    --tier=<var>TIER</var> \
    --location=us-central1 \
    --file-share=name="vol1",capacity=1TiB \
    --network=name="default" \
    --kms-key=KMS_KEY

Ganti kode berikut:

  • TIER dengan tingkat Filestore yang mendukung CMEK.
  • KMS_KEY dengan nama kunci Cloud KMS yang sepenuhnya memenuhi syarat yang ingin Anda gunakan. Atau, Anda dapat menentukan setiap argumen secara terpisah dalam format:
--kms-key=KMS_KEY : --kms-keyring=KEY_RING --kms-location=KMS_REGION --kms-project=KMS_PROJECT_NUMBER_OR_ID

Ganti kode berikut:

  • KMS_KEY dengan nama kunci Cloud KMS.
  • KMS_PROJECT_NUMBER_OR_ID dengan nomor project atau ID project tempat kunci dibuat.
  • KMS_KEY_RING dengan nama key ring.
  • KMS_REGION dengan region key ring. Key ring dan instance harus berada di region yang sama.

Mendapatkan daftar kunci

Anda bisa mendapatkan daftar kunci dengan menjalankan perintah kms keys list:

  gcloud kms keys list \
  --project=KMS_PROJECT_NUMBER_OR_ID \
  --keyring=KEY_RING \
  --location=KMS_REGION

Ganti kode berikut:

  • KMS_PROJECT_NUMBER_OR_ID dengan nomor project atau ID project tempat kunci dibuat.
  • KEY_RING dengan nama key ring.
  • KMS_REGION dengan region key ring.

Kolom Name pada output memberikan nama yang sepenuhnya memenuhi syarat dari kunci yang ada. Contoh:

projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key

Mendapatkan informasi kunci instance

Bagian berikut membahas cara mendapatkan informasi kunci instance.

Mencantumkan instance yang menggunakan kunci Cloud KMS tertentu

Anda dapat mencantumkan instance Filestore yang menggunakan kunci tertentu dengan menjalankan perintah instances list:

gcloud filestore instances list --filter="kmsKeyName=KMS_KEY"

Ganti KMS_KEY dengan nama kunci yang sepenuhnya memenuhi syarat yang ingin Anda gunakan.

Contoh:

gcloud filestore instances list \
    --filter="kmsKeyName=projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key"

Outputnya akan terlihat seperti:

INSTANCE_NAME LOCATION    TIER       CAPACITY_GB FILE_SHARE_NAME IP_ADDRESS   STATE CREATE_TIME
nfs-server    us-central1 ENTERPRISE 1024        vol1            10.166.108.2 READY 2021-08-12T11:38:56

Mendapatkan informasi kunci Cloud KMS untuk instance

Gunakan salah satu metode berikut untuk mendapatkan informasi kunci Cloud KMS untuk instance Filestore:

Konsol Google Cloud

  1. Buka halaman instance Filestore.

    Buka halaman instance Filestore

  2. Klik ID instance untuk membuka halaman detail instance.

  3. Klik tab Ringkasan.

Jika instance mengenkripsi data menggunakan kunci Cloud KMS, bukan kunci milik dan dikelola Google, nama kunci akan ditampilkan di kolom Kunci enkripsi.

gcloud CLI

Jalankan perintah instances describe berikut:

gcloud filestore instances describe INSTANCE_ID \
   --location=INSTANCE_LOCATION

Ganti kode berikut:

  • INSTANCE_ID dengan ID instance instance Filestore yang ingin Anda dapatkan informasinya.
  • INSTANCE_LOCATION dengan region atau zona tempat instance berada.

Outputnya akan terlihat seperti:

createTime: '2021-08-12T11:38:56.851157387Z'
fileShares:
- capacityGb: '1024'
  name: vol1
kmsKeyName: projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
labels:
  key: val
name: projects/consumer-project/locations/us-central1/instances/nfs-server
networks:
- ipAddresses:
  - 10.0.100.2
  modes:
  - MODE_IPV4
  network: network
  reservedIpRange: 10.166.108.0/23
state: READY
tier: ENTERPRISE

Menonaktifkan atau menghancurkan kunci Cloud KMS yang digunakan oleh instance

Jika perubahan status kunci Cloud KMS terdeteksi, instance akan otomatis berhenti menayangkan data. Beberapa contoh termasuk berikut ini:

Deteksi ini biasanya terjadi dalam beberapa menit setelah perubahan status kunci, tetapi dalam beberapa kasus dapat memerlukan waktu hingga satu jam.

Setelah instance dihentikan, semua akses ke data berbagi file dan snapshot apa pun akan diblokir. Instance yang dihentikan akan terus ditagih hingga dihapus.

Memulai instance yang dihentikan

Jika instance Filestore yang dihentikan menggunakan kunci Cloud KMS untuk enkripsi data, semua versi kunci harus diaktifkan atau dipulihkan sebelum memulai ulang instance.

Setelah status kunci Cloud KMS diaktifkan, instance akan otomatis mendeteksi perubahan kunci dan memulai ulang tanpa tindakan tambahan apa pun, biasanya dalam waktu 20 menit.

Dukungan CMEK untuk rantai cadangan

Anda dapat menggunakan CMEK untuk mengenkripsi tidak hanya instance Filestore, tetapi juga rantai cadangan.

Rantai cadangan berada di satu bucket dan region. Untuk menyimpan dan mengenkripsi data cadangan di region di luar instance sumber, pengguna harus menerapkan dua CMEK terpisah: satu untuk instance dan satu untuk rantai cadangan. Beberapa persyaratan berlaku:

  • CMEK harus berada di region yang sama dengan rantai cadangan yang dienkripsi.

  • Satu CMEK diterapkan ke bucket tempat rantai cadangan disimpan dan tidak dapat digabungkan atau diganti.

  • Untuk membuat cadangan menggunakan CMEK baru, seluruh rantai cadangan yang ada harus dihapus terlebih dahulu.

Dukungan CMEK tidak tersedia untuk cadangan tingkat dasar.

Untuk informasi selengkapnya, lihat Pencadangan.

Langkah selanjutnya