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. Jika dikonfigurasi, Cloud Logging akan 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, maka 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, sebuah proses yang dikenal sebagai enkripsi menyeluruh. Akses ke data logging Anda memerlukan akses ke kunci enkripsi tersebut. Secara default, nilai ini adalah Google-owned and Google-managed encryption keys dan Anda tidak perlu melakukan tindakan apa pun.

Organisasi Anda mungkin memiliki persyaratan enkripsi tingkat lanjut, terkait kepatuhan, atau peraturan yang tidak disediakan oleh enkripsi saat istirahat default kami. Untuk memenuhi persyaratan organisasi Anda, alih-alih menggunakan Google-owned and Google-managed encryption keys, Anda dapat mengelola kunci Anda sendiri.

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

Untuk enkripsi simetris, merotasi 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 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. Konfigurasi project Google Cloud tempat Anda berencana membuat kunci:

    1. Untuk mendapatkan izin yang diperlukan untuk membuat kunci, minta administrator untuk memberi Anda peran IAM Admin Cloud KMS (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 bagian berikut:

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

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

    • logging.settings.get
    • logging.buckets.get
    • logging.buckets.list
    • logging.buckets.create
    • logging.buckets.update
  5. Mengaktifkan CMEK

    Setelah Anda menyelesaikan langkah-langkah prasyarat, ikuti petunjuk berikut untuk mengaktifkan CMEK bagi bucket log tertentu.

    Menentukan ID akun layanan

    Untuk menentukan ID akun layanan yang terkait dengan Google Cloud resource 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, lakukan penggantian berikut:

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

      Perintah sebelumnya membuat akun layanan untuk resource yang ditentukan, jika akun layanan 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 Anda. 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 Anda 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, lakukan penggantian berikut:

    • KMS_PROJECT_ID: ID alfanumerik unik, yang terdiri dari Google Cloud nama project dan nomor yang ditetapkan secara acak, dari Google Cloud project yang menjalankan Cloud KMS. Untuk mengetahui informasi tentang cara mendapatkan ID ini, lihat Mengidentifikasi project.
    • KMS_SERVICE_ACCT_NAME: Nama akun layanan yang ditampilkan di kolom kmsServiceAccountId dalam 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.

    Buat bucket log dan berikan 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, lakukan 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, lakukan penggantian berikut:

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

    Dalam output tabel, Anda akan melihat kolom berlabel CMEK. Jika nilai kolom CMEK adalah TRUE, maka CMEK 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 Anda

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

    Merotasi kunci Cloud KMS Anda

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

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

    Misalnya, Anda membuat bucket log dan mengaktifkan CMEK, lalu merotasi kunci Cloud KMS. Bucket log yang Anda buat tidak menggunakan versi kunci baru, melainkan 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 mengetahui 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 pada langkah sebelumnya.
    4. Ubah kunci Cloud KMS untuk bucket log ke kunci Cloud KMS asli.

    Mengubah kunci Cloud KMS Anda

    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 bucket log.

    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, perubahan tersebut dapat memerlukan waktu hingga satu jam untuk diterapkan.

    Untuk mengetahui 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, lakukan penggantian berikut:

    • KMS_PROJECT_ID: ID alfanumerik unik, yang terdiri dari Google Cloud nama project dan nomor yang ditetapkan secara acak, dari Google Cloud project yang menjalankan Cloud KMS. Untuk mengetahui informasi tentang cara mendapatkan ID ini, lihat Mengidentifikasi project.
    • KMS_SERVICE_ACCT_NAME: Nama akun layanan yang ditampilkan di kolom kmsServiceAccountId dalam 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 Error Reporting, jangan aktifkan 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.

    Penurunan kualitas karena kunci Cloud KMS tidak tersedia

    Kunci Cloud KMS dianggap tersedia dan dapat diakses oleh Logging jika kedua kondisi berikut benar:

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

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

    Hilangnya pemulihan dari bencana

    Jika terjadi kegagalan kritis di penyimpanan utama Cloud Logging, maka Logging akan mencerminkan data logging ke file pemulihan bencana. Jika CMEK diaktifkan untuk resource, seperti organisasi Google Cloud , log yang termasuk dalam resource tersebut dilindungi oleh kunci CMEK yang dikonfigurasi. Jika kunci CMEK tidak dapat diakses, file pemulihan bencana tidak dapat ditulis untuk resource tersebut.

    Hilangnya file pemulihan bencana tidak memengaruhi operasi pencatatan log 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 yang 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 di latar belakang pada data ini. Jika akses kunci dipulihkan, data akan tersedia; namun, data awalnya akan disimpan dalam status yang tidak dioptimalkan dan performa kueri mungkin terpengaruh.

    Penurunan kualitas 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 alternatif yang mungkin ada, saat menggunakan kunci eksternal, lihat dokumentasi Cloud External Key Manager.

    Regionalitas

    Saat membuat bucket log dan mengaktifkan CMEK, Anda harus menggunakan kunci yang regionnya 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 mengonfigurasi CMEK.

    Kuota

    Saat Anda menggunakan CMEK di Logging, project Anda dapat memakai kuota permintaan kriptografis Cloud KMS. Misalnya, mengaktifkan CMEK di bucket log dapat menggunakan kuota ini. Operasi enkripsi dan dekripsi menggunakan kunci CMEK memengaruhi kuota Cloud KMS hanya jika Anda menggunakan kunci hardware (Cloud HSM) atau kunci eksternal (Cloud EKM). Untuk informasi selengkapnya, lihat kuota Cloud KMS.

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

    Memecahkan masalah error konfigurasi

    Untuk mengetahui informasi tentang pemecahan masalah error konfigurasi CMEK, lihat Memecahkan masalah error setelan organisasi dan CMEK.