Mengenkripsi data dengan kunci enkripsi yang dikelola pelanggan

Halaman ini menunjukkan cara mengenkripsi data pada instance dan cadangan Filestore menggunakan kunci enkripsi Anda sendiri.

Secara default, Google Cloud otomatis mengenkripsi data saat dalam penyimpanan menggunakan kunci enkripsi yang dikelola oleh Google Cloud. Jika memerlukan kontrol lebih besar atas kunci yang melindungi data, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan untuk Filestore.

Opsi kunci enkripsi yang dikelola pelanggan

Cloud Key Management Service mendukung kunci enkripsi yang dikelola pelanggan (CMEK) yang dapat disimpan sebagai kunci software, sebagai kunci hardware di cluster HSM, atau secara eksternal di Cloud External Key Manager (Cloud EKM). Tersedia beberapa opsi.

Untuk mengetahui informasi selengkapnya, lihat Cloud Key Management Service.

Cloud External Key Manager

Dukungan Cloud EKM untuk Filestore kini tersedia secara umum (GA). Untuk mengetahui informasi selengkapnya, lihat Cloud External Key Manager.

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. Pengguna memiliki akses terbatas ke operasi pada instance hingga satu jam. 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 tidak terencana seperti mulai ulang VM, akses ke instance dapat terganggu sebelum satu jam.

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

Buka halaman instance Filestore

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

Tingkatan yang didukung

Tabel berikut menunjukkan tingkat layanan Filestore yang mendukung kunci enkripsi yang dikelola pelanggan:

Tingkat Dukungan CMEK
HDD Dasar Tidak
SSD Dasar Tidak
Zonal dengan rentang kapasitas lebih rendah Ya
Zonal dengan rentang kapasitas lebih tinggi (sebelumnya SSD skala tinggi) Ya
Enterprise Ya

Buat 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 tentang 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 kunci enkripsi yang dikelola pelanggan, akun layanan Filestore harus memiliki peran Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter).

  1. Akun layanan Filestore dibuat saat pertama kali Anda membuat instance Filestore dalam 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 atau ID project tempat Anda ingin membuat instance Filestore.

  2. Tetapkan peran Cloud KMS CryptoKey Encrypter/Decrypter untuk akun layanan Filestore 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.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Ganti kode berikut:

    • KMS_PROJECT_NUMBER_OR_ID dengan nomor atau ID project project yang berisi kunci Cloud KMS yang ingin Anda gunakan.
    • INSTANCE_PROJECT_NUMBER dengan nomor project (bukan ID project) 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 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 diisi dan opsional lainnya seperti yang biasa Anda lakukan.

  4. Klik Tampilkan opsi lanjutan.

  5. Centang kotak 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 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 kunci enkripsi yang dikelola pelanggan.
  • 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 wilayah key ring. Key ring dan instance harus berada di region yang sama.

Mendapatkan daftar kunci

Anda dapat memperoleh 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 wilayah key ring.

Kolom Name pada output memberikan nama yang sepenuhnya memenuhi syarat untuk 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 penting instance.

Membuat daftar 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 dan 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 sebuah 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 enkripsi yang dikelola Google, nama kunci tersebut 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 menyalurkan 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 semua snapshot 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 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, 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 lagi untuk rantai pencadangan. Beberapa persyaratan berlaku:

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

  • 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 pencadangan tingkat dasar.

Untuk mengetahui informasi selengkapnya, lihat Cadangan.

Langkah selanjutnya