Mengonfigurasi CMEK untuk Cloud Logging

Dokumen ini menjelaskan cara mengonfigurasi dan mengelola kunci enkripsi yang dikelola pelanggan (CMEK) untuk Cloud Logging guna memenuhi kebutuhan kepatuhan organisasi Anda. Anda dapat mengonfigurasi CMEK sebagai setelan resource default untuk organisasi, folder, atau keduanya. Saat dikonfigurasi, Cloud Logging memastikan bahwa semua bucket log baru di organisasi atau folder dienkripsi dengan kunci yang dikelola pelanggan.

Ringkasan

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

Organisasi Anda mungkin memiliki persyaratan enkripsi terkait peraturan, terkait kepatuhan, atau enkripsi lanjutan yang tidak diberikan oleh enkripsi default kami. Untuk memenuhi persyaratan organisasi, Anda dapat mengonfigurasi CMEK untuk mengontrol dan mengelola enkripsi, bukan mengelola kunci enkripsi yang melindungi data oleh Google.

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

Jika Anda mengonfigurasi CMEK sebagai setelan resource default untuk Logging, bucket log baru di organisasi atau folder otomatis dienkripsi dengan kunci yang dikonfigurasi. Namun, Anda dapat mengubah kunci tersebut atau membuat bucket log dan menentukan kunci yang berbeda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi CMEK untuk bucket log.

Prasyarat

Untuk memulai, selesaikan langkah-langkah berikut:

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

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

    Panduan ini berisi petunjuk menggunakan Google Cloud CLI.

  3. Temukan ID untuk organisasi atau folder tempat Anda ingin mengaktifkan CMEK:

    • ORGANIZATION_ID adalah ID numerik unik dari organisasi Google Cloud tempat Anda mengaktifkan CMEK. Anda tidak memerlukan nilai ini jika hanya berencana mengonfigurasi CMEK untuk sebuah folder. Untuk informasi tentang cara mendapatkan ID ini, lihat Mendapatkan ID organisasi.
    • FOLDER_ID adalah ID numerik unik dari folder Google Cloud tempat Anda mengaktifkan CMEK. Anda tidak memerlukan nilai ini jika hanya berencana mengonfigurasi CMEK untuk organisasi. Untuk mengetahui informasi tentang penggunaan folder, lihat Membuat dan mengelola folder.
  4. Untuk mendapatkan izin yang Anda perlukan untuk membuat kunci, minta administrator untuk memberi Anda peran IAM Cloud KMS Admin (roles/cloudkms.admin) pada project atau resource induk. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

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

  5. Pastikan Anda memiliki izin Cloud Logging berikut untuk organisasi:

    • logging.settings.get
    • logging.settings.update
  6. Aktifkan Cloud KMS API untuk project Google Cloud yang menjalankan Cloud KMS.

  7. Buat key ring dan kunci untuk project Google Cloud yang menjalankan Cloud KMS.

    Dengan Cloud Logging, Anda dapat 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 referensi berikut:

    Jika Anda mengonfigurasi CMEK sebagai setelan resource default untuk Logging menggunakan langkah-langkah dalam dokumen ini, bucket log baru yang dibuat di organisasi atau folder akan otomatis dikonfigurasi untuk CMEK. Selain itu, karena lokasi bucket log harus cocok dengan lokasi kunci, setelah mengonfigurasi CMEK sebagai setelan resource default, Anda tidak dapat membuat bucket log di region global.

  8. Identifikasi nilai untuk parameter Cloud KMS berikut:

    • KMS_PROJECT_ID adalah ID alfanumerik unik, yang terdiri dari nama project Google Cloud dan angka yang ditetapkan secara acak, untuk project Google Cloud yang menjalankan Cloud KMS. Untuk informasi tentang cara mendapatkan ID ini, lihat Mengidentifikasi project.
    • KMS_KEY_LOCATION adalah region kunci Cloud KMS.
    • KMS_KEY_RING adalah nama key ring Cloud KMS.
    • KMS_KEY_NAME dengan nama kunci Cloud KMS. Formatnya seperti ini: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY

Mengaktifkan CMEK untuk organisasi atau folder

Setelah menyelesaikan langkah-langkah prasyarat, ikuti petunjuk berikut guna mengaktifkan CMEK untuk organisasi Google Cloud Anda.

Menentukan ID akun layanan

Untuk menentukan ID akun layanan yang terkait dengan organisasi atau folder tempat CMEK akan diterapkan, jalankan perintah gcloud logging settings describe berikut:

FOLDER

 gcloud logging settings describe --folder=FOLDER_ID

ORGANISASI

gcloud logging settings describe --organization=ORGANIZATION_ID

Menjalankan perintah sebelumnya akan menghasilkan akun layanan untuk organisasi atau folder, jika belum ada, dan menampilkan ID di kolom kmsServiceAccountId. Berikut adalah contoh respons terhadap perintah sebelumnya saat organisasi ditentukan:

kmsServiceAccountId: cmek-p12345@gcp-sa-logging.iam.gserviceaccount.com
name: organizations/ORGANIZATION_ID/settings

Dalam contoh ini, nilai SERVICE_ACCT_NAME adalah cmek-p12345.

Jalankan proses penyediaan hanya sekali per resource. Menjalankan perintah describe beberapa kali akan menampilkan nilai yang sama untuk kolom kmsServiceAccountId.

Jika Anda tidak dapat menggunakan Google Cloud CLI, jalankan metode Cloud Logging API getSettings.

Menetapkan peran Pengenkripsi/Pendekripsi

Untuk menggunakan CMEK, beri akun layanan izin untuk menggunakan Cloud KMS Anda dengan menetapkan peran Cloud KMS CryptoKey Encrypter/Decrypter ke akun layanan:

gcloud

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

Tetapkan variabel dalam perintah sebagai berikut:

  • Ganti SERVICE_ACCT_NAME dengan nilai serviceAccountId yang Anda tentukan di langkah sebelumnya.

  • Ganti variabel lainnya dengan nilai yang Anda tentukan dalam langkah-langkah prasyarat.

Konsol

  1. Buka browser Cloud Key Management Service Keys di Konsol Google Cloud.
    Buka browser Kunci Cloud KMS
  2. Klik nama key ring yang berisi kunci yang diinginkan.

  3. Centang kotak untuk kunci yang diinginkan.

    Tab Izin akan tersedia.

  4. Pada dialog Add members, tentukan alamat email akun layanan Logging yang Anda beri akses.

  5. Di menu drop-down Select a role, pilih Cloud KMS CryptoKey Encrypter/Decrypte.

  6. Klik Tambahkan.

Mengonfigurasi kebijakan organisasi

Logging mendukung kebijakan organisasi yang dapat memerlukan perlindungan CMEK dan dapat membatasi CryptoKey Cloud KMS yang dapat digunakan untuk perlindungan CMEK:

  • Jika logging.googleapis.com berada dalam daftar layanan kebijakan Deny untuk batasan constraints/gcp.restrictNonCmekServices, Logging akan menolak pembuatan bucket baru yang ditentukan pengguna yang tidak dilindungi CMEK. Namun, batasan ini tidak mencegah Cloud Logging membuat bucket log _Required dan _Default yang dibuat saat project Google Cloud dibuat.

  • Saat constraints/gcp.restrictCmekCryptoKeyProjects diterapkan, Logging akan membuat resource yang dilindungi CMEK yang dilindungi oleh CryptoKey dari project, folder, atau organisasi yang diizinkan.

Untuk mengetahui informasi selengkapnya tentang CMEK dan kebijakan organisasi, lihat kebijakan organisasi CMEK.

Saat ada kebijakan organisasi yang menentukan batasan CMEK, pastikan batasan tersebut konsisten dengan setelan resource default Logging untuk organisasi atau folder. Selanjutnya, jika Anda berencana untuk mengubah setelan resource default, sebelum memperbarui setelan resource default, tinjau dan, jika perlu, perbarui kebijakan organisasi.

Untuk melihat atau mengonfigurasi kebijakan organisasi, lakukan hal berikut:

  1. Pada panel navigasi konsol Google Cloud, pilih IAM & Admin, lalu pilih Organization Policies:

    Buka Kebijakan Organisasi

  2. Pilih organisasi Anda.
  3. Verifikasi, dan jika perlu, perbarui batasan khusus untuk CMEK.

    Untuk informasi tentang cara mengubah kebijakan organisasi, lihat Membuat dan mengedit kebijakan.

Mengonfigurasi Cloud Logging dengan kunci Cloud KMS

Untuk mengonfigurasi CMEK sebagai setelan resource default untuk Logging, jalankan perintah gcloud logging settings update berikut:

FOLDER

gcloud logging settings update \
    --folder=FOLDER_ID \
    --kms-location=KMS_KEY_LOCATION \
    --kms-key-name=KMS_KEY_NAME \
    --kms-keyring=KMS_KEY_RING \
    --kms-project=KMS_PROJECT_ID

Perintah sebelumnya memperbarui setelan resource default untuk menyimpan informasi tentang kunci Cloud KMS. Anda harus memastikan bahwa lokasi penyimpanan default untuk folder ditetapkan ke nilai KMS_KEY_LOCATION. Jika Anda belum menetapkan lokasi penyimpanan default, atau jika nilai lokasi tersebut tidak cocok dengan nilai KMS_KEY_LOCATION, maka tambahkan kode berikut ke perintah sebelumnya:

--storage-location = KMS_KEY_LOCATION

Tanda --storage-location memungkinkan Anda menetapkan atau memperbarui lokasi penyimpanan default untuk folder.

ORGANISASI

gcloud logging settings update \
    --organization=ORGANIZATION_ID \
    --kms-location=KMS_KEY_LOCATION \
    --kms-key-name=KMS_KEY_NAME \
    --kms-keyring=KMS_KEY_RING \
    --kms-project=KMS_PROJECT_ID

Perintah sebelumnya memperbarui setelan resource default untuk menyimpan informasi tentang kunci Cloud KMS. Anda harus memastikan bahwa lokasi penyimpanan default untuk organisasi ditetapkan ke nilai KMS_KEY_LOCATION. Jika Anda belum menetapkan lokasi penyimpanan default, atau jika nilai lokasi tersebut tidak cocok dengan nilai KMS_KEY_LOCATION, maka tambahkan kode berikut ke perintah sebelumnya:

--storage-location = KMS_KEY_LOCATION

Tanda --storage-location memungkinkan Anda menetapkan atau memperbarui lokasi penyimpanan default untuk organisasi.

Setelah kunci diterapkan, bucket log baru di organisasi atau folder akan dikonfigurasi untuk mengenkripsi data dalam penyimpanan menggunakan kunci ini. Anda juga dapat mengubah kunci untuk masing-masing bucket log. Anda tidak dapat membuat bucket log di region global karena Anda harus menggunakan kunci dengan region yang cocok dengan cakupan regional data Anda.

Jika Anda tidak dapat menggunakan Google Cloud CLI, jalankan metode Cloud Logging API updateSettings.

Memverifikasi pengaktifan kunci

Untuk memverifikasi bahwa Anda telah berhasil mengaktifkan CMEK untuk organisasi atau folder, jalankan perintah gcloud logging settings describe berikut:

FOLDER

gcloud logging settings describe --folder=FOLDER_ID

ORGANISASI

gcloud logging settings describe --organization=ORGANIZATION_ID

Perintah sebelumnya menampilkan nama kunci Cloud KMS:

kmsKeyName: KMS_KEY_NAME
kmsServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com

Jika kolom kmsKeyName terisi, CMEK akan diaktifkan untuk organisasi atau folder.

Merutekan log ke tujuan yang didukung

  • Bucket log Cloud Logging dapat dikonfigurasi untuk mengenkripsi data dengan CMEK. Jika Anda mengonfigurasi CMEK sebagai setelan resource default untuk organisasi atau folder, bucket log baru di organisasi atau folder akan otomatis menggunakan CMEK. Anda dapat mengubah kunci bucket log ini, dan membuat bucket log yang menggunakan kunci KMS berbeda dengan yang ditentukan oleh setelan resource default.

    Untuk mengetahui informasi tentang CMEK yang diterapkan pada bucket log, termasuk cara mengubah kunci dan batasan saat Anda mengaktifkan CMEK pada bucket log, lihat Mengonfigurasi CMEK untuk bucket log.

  • Cloud Storage mendukung CMEK untuk merutekan log. Untuk mengetahui petunjuk cara mengonfigurasi CMEK untuk Cloud Storage, lihat Menggunakan kunci enkripsi yang dikelola pelanggan.

    Jika data hilang karena ketidaktersediaan kunci saat merutekan data log ke Cloud Storage, Anda dapat menyalin log secara retroaktif ke Cloud Storage saat log tersebut juga disimpan di bucket log. Untuk mengetahui detailnya, lihat Menyalin entri log.

  • BigQuery secara default mengenkripsi konten pelanggan yang tersimpan dalam penyimpanan. Untuk mengetahui detailnya, lihat Melindungi data dengan kunci Cloud Key Management Service.

  • Pub/Sub secara default mengenkripsi konten pelanggan yang tersimpan dalam penyimpanan. Untuk mengetahui detailnya, lihat Mengonfigurasi enkripsi pesan.

Mengelola kunci Cloud KMS

Bagian berikut menjelaskan cara mengubah, mencabut akses, atau menonaktifkan kunci Cloud KMS.

Mengubah kunci Cloud KMS

Untuk mengubah kunci Cloud KMS yang terkait dengan organisasi atau folder, buat kunci lalu perbarui setelan CMEK dengan nama kunci Cloud KMS baru:

FOLDER

gcloud logging settings update \
    --folder=FOLDER_ID
    --kms-key-name=NEW_KMS_KEY_NAME
    --kms-location=NEW_KMS_KEY_LOCATION \
    --kms-keyring=NEW_KMS_KEY_RING \
    --kms-project=NEW_KMS_PROJECT_ID

Anda harus memastikan bahwa lokasi penyimpanan default untuk folder ditetapkan ke nilai KMS_KEY_LOCATION. Jika Anda belum menetapkan lokasi penyimpanan default, atau jika nilai lokasi tersebut tidak cocok dengan nilai KMS_KEY_LOCATION, maka tambahkan kode berikut ke perintah sebelumnya:

--storage-location = NEW_KMS_KEY_LOCATION

ORGANISASI

gcloud logging settings update \
    --organization=ORGANIZATION_ID
    --kms-key-name=NEW_KMS_KEY_NAME
    --kms-location=NEW_KMS_KEY_LOCATION \
    --kms-keyring=NEW_KMS_KEY_RING \
    --kms-project=NEW_KMS_PROJECT_ID

Anda harus memastikan bahwa lokasi penyimpanan default untuk organisasi ditetapkan ke nilai KMS_KEY_LOCATION. Jika Anda belum menetapkan lokasi penyimpanan default, atau jika nilai lokasi tersebut tidak cocok dengan nilai KMS_KEY_LOCATION, maka tambahkan kode berikut ke perintah sebelumnya:

--storage-location = NEW_KMS_KEY_LOCATION

Mencabut akses ke kunci Cloud KMS

Anda dapat mencabut akses Logging ke kunci Cloud KMS dengan menghapus izin IAM akun layanan yang dikonfigurasi untuk kunci tersebut.

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

Untuk mencabut akses Logging ke kunci Cloud KMS, jalankan perintah Google Cloud CLI berikut:

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

Nonaktifkan CMEK

Menonaktifkan CMEK untuk organisasi atau folder hanya akan menghapus penerapan kebijakan CMEK untuk operasi mendatang; konfigurasi yang diterapkan sebelumnya tidak akan berubah.

Untuk menonaktifkan CMEK pada resource yang memiliki CMEK yang dikonfigurasi sebagai setelan resource default, jalankan perintah Google Cloud CLI berikut:

FOLDER

gcloud logging settings update --folder=FOLDER_ID --clear-kms-key

ORGANISASI

gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key

Jika ingin menghancurkan kunci, lihat Menghancurkan dan memulihkan versi kunci.

Pertimbangan rotasi kunci Cloud KMS

Cloud Logging tidak otomatis merotasi kunci enkripsi untuk file pemulihan dari bencana sementara saat kunci Cloud KMS yang terkait dengan organisasi atau folder Google Cloud dirotasi. File pemulihan yang sudah ada akan terus menggunakan versi kunci yang digunakan untuk membuatnya. File pemulihan baru menggunakan versi kunci utama saat ini.

Batasan

Berikut adalah batasan umum saat Anda mengonfigurasi CMEK sebagai setelan resource default untuk Logging.

Tidak tersedianya file pemulihan dari bencana (disaster recovery)

Kunci Cloud KMS dianggap tersedia dan dapat diakses oleh Logging jika kedua hal berikut terpenuhi:

  • Kunci diaktifkan.
  • Akun layanan Logging memiliki izin untuk mengenkripsi dan mendekripsi kunci tersebut.

Jika Logging kehilangan akses ke kunci Cloud KMS, Logging tidak akan dapat menulis file pemulihan dari bencana sementara dan, bagi pengguna, kueri akan berhenti berfungsi. Performa kueri dapat tetap menurun bahkan setelah akses kunci dipulihkan.

Memilih rute log ke Cloud Storage juga dapat terpengaruh karena Logging tidak dapat menulis file sementara yang diperlukan untuk memfasilitasi perutean. Jika terjadi error saat mengenkripsi atau mendekripsi data, notifikasi akan dikirim ke project Google Cloud yang berisi kunci Cloud KMS.

Ketersediaan library klien

Library klien logging tidak menyediakan metode untuk mengonfigurasi CMEK.

Penurunan karena ketidaktersediaan kunci Cloud EKM

Saat Anda menggunakan kunci Cloud EKM, Google tidak memiliki kontrol atas ketersediaan kunci yang dikelola secara eksternal di sistem partner pengelolaan kunci eksternal.

Jika CMEK dikonfigurasi sebagai setelan resource default untuk organisasi atau folder, jika kunci yang dikelola secara eksternal tidak tersedia, Cloud Logging akan terus mencoba mengakses kunci tersebut. Cloud Logging juga melakukan buffering data log yang masuk hingga satu jam. Setelah satu jam, jika Cloud Logging masih tidak dapat mengakses kunci yang dikelola secara eksternal, Cloud Logging akan mulai menghapus data.

Jika CMEK diterapkan ke bucket log, dan jika kunci yang dikelola secara eksternal tidak tersedia, Cloud Logging akan terus menyimpan log di bucket log, tetapi pengguna tidak akan dapat mengakses data tersebut.

Lihat dokumentasi Cloud External Key Manager untuk pertimbangan lainnya dan kemungkinan alternatif saat menggunakan kunci eksternal.

Batasan pada bucket log

Untuk mengetahui batasan saat menggunakan CMEK dengan bucket log, lihat Batasan.

Kuota

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

Memecahkan masalah error konfigurasi

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