Mengonfigurasi CMEK untuk bucket log

Dokumen ini memberikan petunjuk untuk mengonfigurasi kunci enkripsi yang dikelola pelanggan (CMEK) untuk log yang disimpan di bucket log. Dokumen ini juga menjelaskan cara mengelola kunci tersebut, dan batasan yang terkait dengan penggunaan CMEK.

Anda dapat mengonfigurasi CMEK sebagai setelan resource default untuk organisasi atau folder. Saat dikonfigurasi, Cloud Logging memastikan bahwa semua bucket log baru di organisasi atau folder dienkripsi dengan kunci yang dikelola pelanggan. Jika Anda tidak memberikan kunci saat membuat bucket log, kunci default akan digunakan. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi CMEK untuk Cloud Logging.

Ringkasan

Secara default, Cloud Logging mengenkripsi konten pelanggan yang disimpan dalam penyimpanan. Data yang disimpan di bucket log oleh Logging dienkripsi menggunakan kunci enkripsi kunci, proses yang dikenal sebagai enkripsi amplop. Akses ke data logging Anda memerlukan akses ke kunci enkripsi kunci tersebut, yang dikelola oleh Google Cloud untuk Anda tanpa tindakan apa pun dari Anda.

Organisasi Anda mungkin memiliki persyaratan enkripsi peraturan, terkait kepatuhan, atau enkripsi lanjutan yang tidak disediakan oleh enkripsi default dalam penyimpanan kami. Untuk memenuhi persyaratan organisasi, Anda dapat mengelola kunci enkripsi yang melindungi data Anda, bukan Google Cloud.

Untuk informasi spesifik tentang penggunaan CMEK, termasuk keuntungan, dan batasan, lihat Kunci enkripsi yang dikelola pelanggan.

Untuk enkripsi simetris, memutar kunci secara berkala dan otomatis adalah praktik keamanan yang direkomendasikan. Untuk mengetahui informasi selengkapnya, lihat Rotasi kunci.

Prasyarat

Selesaikan langkah-langkah berikut:

  1. Ada beberapa batasan saat menggunakan CMEK. Sebelum membuat bucket log dengan CMEK yang diaktifkan, tinjau Batasan.

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Konfigurasikan project Google Cloud tempat Anda berencana membuat kunci:

    1. Untuk mendapatkan izin yang diperlukan untuk membuat kunci, minta administrator untuk memberi Anda peran IAM Cloud KMS Admin (roles/cloudkms.admin) di project atau resource induk. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

      Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

    2. Aktifkan Cloud KMS API.

    3. Buat key ring dan kunci.

      Cloud Logging memungkinkan Anda menggunakan kunci dari region mana pun. Namun, saat Anda membuat bucket log, lokasi bucket log harus cocok dengan lokasi kunci. Untuk mengetahui informasi tentang region yang didukung, lihat hal berikut:

      Anda tidak dapat mengaktifkan CMEK untuk bucket log yang dibuat di region global.

  4. Pastikan Anda memiliki izin Cloud Logging berikut di project Google Cloud tempat Anda berencana membuat bucket log:

    • logging.settings.get
    • logging.buckets.get
    • logging.buckets.list
    • logging.buckets.create
    • logging.buckets.update

Mengaktifkan CMEK

Setelah menyelesaikan langkah-langkah prasyarat, ikuti petunjuk berikut untuk mengaktifkan CMEK untuk setiap bucket log.

Menentukan ID akun layanan

Untuk menentukan ID akun layanan yang terkait dengan resource Google Cloud yang akan menerapkan CMEK, lakukan hal berikut:

  1. Jalankan perintah gcloud logging settings describe berikut:

    gcloud logging settings describe --project=BUCKET_PROJECT_ID
    

    Sebelum menjalankan perintah sebelumnya, buat penggantian berikut:

    • BUCKET_PROJECT_ID: Nama project Google Cloud tempat Anda berencana membuat bucket log.

    Perintah sebelumnya menghasilkan akun layanan untuk resource yang ditentukan, jika belum ada, dan menampilkan ID akun layanan tersebut di kolom kmsServiceAccountId:

    kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.
    loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.
    name: projects/BUCKET_PROJECT_ID/settings
    

    Kolom kmsServiceAccountId mencantumkan akun layanan yang digunakan oleh Cloud Logging untuk memanggil Cloud Key Management Service.

  2. Jika kolom KMS_SERVICE_ACCT_NAME memiliki format cmek-pPROJECT_NUMBER, dan jika Anda menggunakan Kontrol Layanan VPC atau jika Anda mengaktifkan berbagi terbatas domain, tentukan apakah Anda perlu memigrasikan akun layanan CMEK. Untuk mengetahui informasi tentang kapan Anda perlu melakukan migrasi dan langkah-langkah untuk melakukan migrasi, lihat Memecahkan masalah Kontrol Layanan VPC dan berbagi yang dibatasi domain.

Menetapkan peran Pengenkripsi/Pendekripsi

Saat Anda mengonfigurasi CMEK di tingkat bucket log, berikan izin akun layanan untuk menggunakan Cloud KMS dengan menetapkan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS ke akun layanan yang diidentifikasi oleh kolom kmsServiceAccountId:

gcloud kms keys add-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging. \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY_NAME

Sebelum menjalankan perintah sebelumnya, buat penggantian berikut:

  • KMS_PROJECT_ID: ID alfanumerik unik, yang terdiri dari nama project Google Cloud Anda dan nomor yang ditetapkan secara acak, dari project Google Cloud yang menjalankan Cloud KMS. Untuk informasi tentang cara mendapatkan ID ini, lihat Mengidentifikasi project.
  • KMS_SERVICE_ACCT_NAME: Nama akun layanan yang ditampilkan di kolom kmsServiceAccountId dari respons perintah gcloud logging settings describe.
  • KMS_KEY_LOCATION: Region kunci Cloud KMS.
  • KMS_KEY_RING: Nama key ring Cloud KMS.
  • KMS_KEY_NAME: Nama kunci Cloud KMS. Formatnya seperti ini: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

Membuat bucket log dan memberikan kunci Cloud KMS

Untuk membuat bucket log dan mengaktifkan CMEK untuk bucket log, jalankan perintah gcloud logging buckets create berikut:

gcloud logging buckets create BUCKET_ID \
--location=LOCATION \
--cmek-kms-key-name=KMS_KEY_NAME \
--project=BUCKET_PROJECT_ID

Sebelum menjalankan perintah sebelumnya, buat penggantian berikut:

  • BUCKET_ID: Nama atau ID bucket log.
  • LOCATION: Lokasi bucket log.
  • KMS_KEY_NAME: Nama kunci Cloud KMS. Formatnya seperti ini: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
  • BUCKET_PROJECT_ID: Nama project Google Cloud tempat bucket log akan dibuat.

Memverifikasi pengaktifan kunci

Untuk memverifikasi bahwa Anda telah berhasil membuat bucket log dengan CMEK yang diaktifkan, jalankan perintah gcloud logging buckets list berikut:

gcloud logging buckets list --project=BUCKET_PROJECT_ID

Sebelum menjalankan perintah sebelumnya, buat penggantian berikut:

  • BUCKET_PROJECT_ID: Nama project Google Cloud yang menyimpan log bucket.

Dalam output tabel, Anda akan melihat kolom berlabel CMEK. Jika nilai kolom CMEK adalah TRUE, CMEK akan diaktifkan untuk bucket log.

Untuk melihat detail bucket log tertentu, termasuk detail kunci, jalankan perintah ini:

gcloud logging buckets describe BUCKET_ID --location=LOCATION --project=BUCKET_PROJECT_ID

Mengelola kunci Cloud KMS

Bagian berikut menjelaskan cara mengupdate bucket log untuk menggunakan versi kunci utama terbaru dari kunci Cloud KMS. Panduan ini juga menjelaskan cara mengubah, mencabut akses, dan menonaktifkan kunci Cloud KMS Anda.

Memutar kunci Cloud KMS

Saat membuat kunci Cloud KMS, Anda dapat mengonfigurasi periode rotasi. Anda juga dapat memutar kunci Cloud KMS secara manual. Setiap kali kunci dirotasi, versi baru untuk kunci tersebut akan dibuat.

Jika Anda memutar kunci Cloud KMS, versi kunci baru hanya berlaku untuk bucket log yang dibuat setelah rotasi kunci. Jika kunci digunakan oleh bucket log yang ada, memutar kunci tidak akan mengubah cara bucket log melindungi datanya.

Misalnya, Anda membuat bucket log dan mengaktifkan CMEK, lalu memutar kunci Cloud KMS. Bucket log yang Anda buat tidak menggunakan versi kunci baru, tetapi terus melindungi datanya dengan versi kunci yang ditandai sebagai utama saat bucket log dibuat.

Untuk memperbarui bucket log agar menggunakan versi kunci utama terbaru dari kunci Cloud KMS, lakukan hal berikut:

  1. Identifikasi kunci Cloud KMS saat ini untuk bucket log. Untuk informasi selengkapnya, lihat Memverifikasi pengaktifan kunci.
  2. Identifikasi kunci Cloud KMS lain yang dapat Anda gunakan. Jika key ring Anda hanya memiliki satu kunci, klik Buat kunci.
  3. Ubah kunci Cloud KMS untuk bucket log ke kunci Cloud KMS yang dibuat di langkah sebelumnya.
  4. Ubah kunci Cloud KMS untuk bucket log menjadi kunci Cloud KMS asli.

Mengubah kunci Cloud KMS

Untuk mengubah kunci Cloud KMS yang terkait dengan bucket log Anda, buat kunci dan perbarui setelan CMEK untuk bucket log:

gcloud logging buckets update BUCKET_ID --location=LOCATION \
--cmek-kms-key-name=NEW_KMS_KEY_NAME --project=BUCKET_PROJECT_ID
  • BUCKET_ID: Nama atau ID bucket log.
  • LOCATION: Lokasi bucket log.
  • NEW_KMS_KEY_NAME: Nama kunci baru.
  • BUCKET_PROJECT_ID: Nama project Google Cloud yang menyimpan log bucket.

Mencabut akses ke kunci Cloud KMS

Untuk mencabut akses Logging ke kunci Cloud KMS kapan saja, hapus izin IAM akun layanan yang dikonfigurasi untuk kunci tersebut.

Jika Anda menghapus akses Logging ke kunci, mungkin diperlukan waktu hingga satu jam agar perubahan diterapkan.

Jika Anda memiliki set data BigQuery tertaut, BigQuery tidak dapat menggunakan akses ini untuk menerapkan kunci ke tabel BigQuery baru. Jika Anda ingin menggunakan kunci di tabel BigQuery yang tidak ditautkan ke Logging, ikuti dokumentasi BigQuery untuk melakukannya. Jika Anda mencabut akses Logging ke kunci dan jika Anda memiliki set data BigQuery tertaut, Anda juga akan mencabut akses BigQuery ke kunci yang sama.

Anda tidak dapat mencabut akses BigQuery ke kunci set data tertaut sekaligus mempertahankan akses Logging.

Untuk informasi selengkapnya tentang dampak pencabutan akses, lihat Batasan.

Untuk menghapus akses Logging ke kunci, jalankan perintah berikut:

gcloud kms keys remove-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging. \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY_NAME

Sebelum menjalankan perintah sebelumnya, buat penggantian berikut:

  • KMS_PROJECT_ID: ID alfanumerik unik, yang terdiri dari nama project Google Cloud Anda dan nomor yang ditetapkan secara acak, dari project Google Cloud yang menjalankan Cloud KMS. Untuk informasi tentang cara mendapatkan ID ini, lihat Mengidentifikasi project.
  • KMS_SERVICE_ACCT_NAME: Nama akun layanan yang ditampilkan di kolom kmsServiceAccountId dari respons perintah gcloud logging settings describe.
  • KMS_KEY_LOCATION: Region kunci Cloud KMS.
  • KMS_KEY_RING: Nama key ring Cloud KMS.
  • KMS_KEY_NAME: Nama kunci Cloud KMS. Formatnya seperti ini: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

Batasan

Berikut adalah batasan umum.

CMEK menonaktifkan Error Reporting

Jika Anda ingin menggunakan Pelaporan Error, janganaktifkan kunci enkripsi yang dikelola pelanggan (CMEK) di bucket log Anda. Untuk mengetahui informasi selengkapnya, lihat Pemecahan masalah.

CMEK tidak dapat dihapus dari bucket log

Anda tidak dapat mengonfigurasi ulang bucket log untuk mengubah atau menghapus CMEK.

Degradasi karena kunci Cloud KMS tidak tersedia

Kunci Cloud KMS dianggap tersedia dan dapat diakses oleh logging jika kedua hal berikut benar:

  • Kunci diaktifkan.
  • Akun layanan Logging memiliki izin enkripsi dan dekripsi pada kunci.

Logging sangat merekomendasikan untuk memastikan bahwa kunci apa pun dikonfigurasi dengan benar dan selalu tersedia.

Hilangnya pemulihan dari bencana

Jika ada kegagalan kritis di penyimpanan utama Cloud Logging, logging akan mencerminkan data logging ke file disaster recovery. Jika CMEK diaktifkan untuk resource, seperti organisasi Google Cloud, log yang dimiliki resource tersebut akan dilindungi oleh kunci CMEK yang dikonfigurasi. Jika kunci CMEK tidak dapat diakses, file disaster recovery tidak dapat ditulis untuk resource tersebut.

Kehilangan file disaster recovery tidak memengaruhi operasi logging normal. Namun, jika terjadi bencana penyimpanan, Cloud Logging mungkin tidak dapat memulihkan log dari resource yang CMEK-nya tidak dikonfigurasi dengan benar.

Batasan dukungan

Cloud Customer Care tidak dapat membaca log resource Anda jika kuncinya tidak dikonfigurasi dengan benar atau tidak tersedia.

Performa kueri menurun

Jika kunci enkripsi yang dikelola pelanggan tidak dapat diakses, Cloud Logging akan terus mengenkripsi data Anda dan menyimpan data di bucket log. Namun, Cloud Logging tidak dapat melakukan pengoptimalan latar belakang pada data ini. Jika akses kunci dipulihkan, data akan tersedia; tetapi, data awalnya disimpan dalam status yang tidak dioptimalkan dan performa kueri dapat terpengaruh.

Degradasi karena kunci Cloud EKM tidak tersedia

Saat Anda menggunakan kunci Cloud EKM, Google Cloud tidak memiliki kontrol atas ketersediaan kunci yang dikelola secara eksternal di sistem partner pengelolaan kunci eksternal. Untuk CMEK tingkat bucket, jika kunci yang dikelola secara eksternal tidak tersedia, Cloud Logging akan terus menyimpan log di bucket log, tetapi pengguna tidak dapat mengakses log tersebut.

Untuk pertimbangan lainnya, dan potensi alternatif, saat menggunakan kunci eksternal, lihat dokumentasi Cloud External Key Manager.

Regionalitas

Saat membuat bucket log dan mengaktifkan CMEK, Anda harus menggunakan kunci yang region-nya cocok dengan cakupan regional data Anda. Anda tidak dapat mengonfigurasi CMEK untuk bucket log yang dibuat di region global.

Ketersediaan library klien

Library klien logging tidak menyediakan metode untuk mengonfigurasiCMEK.

Kuota

Untuk mengetahui detail tentang batas penggunaan Logging, lihat Kuota dan batas.

Memecahkan masalah error konfigurasi

Untuk informasi tentang cara memecahkan masalah error konfigurasi CMEK, lihat Memecahkan masalah CMEK dan error setelan organisasi.