Menggunakan kunci enkripsi yang dikelola pelanggan

Secara default, Eventarc mengenkripsi konten pelanggan dalam penyimpanan. Eventarc 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 Eventarc. 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 Eventarc mirip dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi Anda, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Kunci enkripsi yang dikelola pelanggan disimpan sebagai kunci software, dalam cluster Cloud HSM, atau secara eksternal menggunakan Cloud External Key Manager.

Cloud KMS menghasilkan log audit saat kunci diaktifkan, dinonaktifkan, atau digunakan oleh resource Eventarc Advanced untuk mengenkripsi dan mendekripsi pesan. Untuk mengetahui informasi selengkapnya, lihat Informasi logging audit Cloud KMS.

Yang dilindungi dengan CMEK

Anda dapat mengonfigurasi CMEK untuk saluran yang digunakan Eventarc Standard dan mengenkode peristiwa yang melewati saluran tersebut.

Mengaktifkan saluran dengan CMEK akan melindungi data yang terkait dengannya (misalnya, topik Pub/Sub yang digunakan sebagai lapisan transpor) dengan menggunakan kunci enkripsi yang hanya dapat Anda akses.

Perhatikan bahwa saat Anda mengaktifkan CMEK untuk saluran Google di project Google Cloud, semua pemicu Eventarc Standard untuk jenis peristiwa Google di project dan region tersebut dienkripsi sepenuhnya dengan kunci CMEK tersebut. Kunci CMEK tidak dapat diterapkan berdasarkan pemicu.

Sebelum memulai

Sebelum menggunakan fitur ini di Eventarc, Anda harus:

Konsol

  1. Enable the Cloud KMS and Eventarc APIs.

    Enable the APIs

  2. Buat key ring.
  3. Membuat kunci untuk key ring yang ditentukan.

gcloud

  1. Perbarui komponen gcloud.
    gcloud components update
  2. Aktifkan Cloud KMS dan Eventarc API untuk project yang akan menyimpan kunci enkripsi Anda.
    gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
  3. Buat key ring.
  4. Membuat kunci untuk key ring yang ditentukan.

Untuk mengetahui informasi tentang semua flag dan kemungkinan nilai, jalankan perintah dengan flag --help.

Perhatikan bahwa Cloud KMS dan Eventarc adalah layanan regional. Region untuk kunci Cloud KMS dan saluran Eventarc yang dilindungi harus sama.

Memberi akun layanan Eventarc akses ke kunci

Untuk memberi akun layanan Eventarc akses ke kunci Cloud KMS, tambahkan akun layanan sebagai akun utama kunci, dan berikan akun layanan tersebut peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS:

Konsol

Saat mengaktifkan CMEK untuk saluran Google atau pihak ketiga melalui konsol, Anda akan diminta untuk memberikan peran Pengenkripsi/Pendekripsi Cloud KMS CryptoKey ke akun layanan. Untuk informasi selengkapnya, dalam dokumen ini, lihat Mengaktifkan CMEK untuk jenis peristiwa Google atau Mengaktifkan CMEK untuk saluran peristiwa pihak ketiga.

gcloud

 gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --member serviceAccount:SERVICE_AGENT_EMAIL \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Ganti kode berikut:

  • KEY_NAME: nama kunci. Contoh, my-key.
  • KEY_RING: nama key ring. Contoh, my-keyring.
  • LOCATION: lokasi kunci. Contoh, us-central1.
  • SERVICE_AGENT_EMAIL: alamat email akun layanan dengan peran eventarc.serviceAgent.

    Misalnya, service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com. Untuk mengetahui informasi selengkapnya, lihat Agen layanan.

Mengaktifkan CMEK untuk jenis peristiwa Google

Pemicu Eventarc yang me-rutekan jenis peristiwa Google memublikasikan peristiwa ke saluran virtual yang disebut sebagai saluran Google yang khusus untuk project dan wilayah. Saluran virtual ini tersedia di semua wilayah Eventarc.

Saat Anda mengaktifkan CMEK untuk saluran Google di project Google Cloud , semua pemicu Eventarc untuk jenis peristiwa Google di project dan region tersebut akan dienkripsi sepenuhnya dengan kunci CMEK tersebut. Anda dapat menambahkan beberapa kunci CMEK, dan mengaitkan setiap kunci dengan wilayah tertentu untuk saluran Google. Kunci CMEK tidak dapat diterapkan berdasarkan per pemicu.

Konsol

  1. Di konsol Google Cloud, buka halaman Eventarc > Channels.

    Buka Channel

  2. Klik saluran dengan Penyedia Google.

  3. Di halaman Edit channel, centang kotak Gunakan kunci enkripsi yang dikelola pelanggan (CMEK).

  4. Klik Tambahkan kunci enkripsi.

  5. Pilih Region, lalu di daftar CMEK encryption key, pilih key ring yang telah Anda buat untuk region tersebut. Perhatikan bahwa Anda hanya dapat menambahkan satu kunci enkripsi per region untuk satu channel.

  6. Opsional: Untuk memasukkan nama resource kunci secara manual, di daftar Kunci enkripsiCMEK, klik Tidak melihat kunci Anda? Masukkan nama resource kunci, dan masukkan nama kunci dalam format yang ditentukan.

  7. Jika diminta, berikan peran cloudkms.cryptoKeyEncrypterDecrypter ke akun layanan Eventarc dengan peran eventarc.serviceAgent.

  8. Opsional: Klik Tambahkan kunci enkripsi untuk menambahkan key ring lain yang telah Anda buat untuk region yang berbeda.

  9. Klik Simpan.

gcloud

 gcloud eventarc google-channels update \
    --location=LOCATION \
    --crypto-key=KEY

Ganti kode berikut:

  • LOCATION: lokasi saluran Google yang akan dilindungi. Ini harus cocok dengan lokasi kunci yang digunakan.
  • KEY: nama kunci Cloud KMS yang sepenuhnya memenuhi syarat dalam format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Jika Anda membuat pemicu Pub/Sub menggunakan topik yang sudah ada, untuk perlindungan CMEK yang komprehensif, sebaiknya Anda juga mengonfigurasi kunci KMS pada topik tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi topik Pub/Sub.

Memverifikasi penggunaan Cloud KMS

Untuk memverifikasi bahwa channel kini mematuhi CMEK:

Konsol

  1. Di konsol Google Cloud, buka halaman Eventarc > Triggers.

    Buka Pemicu

  2. Klik pemicu yang mencantumkan sumber Google Cloud sebagai Penyedia peristiwa dan Region yang telah Anda lindungi menggunakan CMEK.

  3. Di halaman Detail pemicu, status Enkripsi akan ditampilkan, pesan, Events encrypted using Customer-managed encryption keys.

gcloud

 gcloud eventarc google-channels describe \
     --location=LOCATION

Outputnya akan mirip dengan berikut ini:

 cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
 updateTime: '2022-06-28T17:24:56.365866104Z'

Nilai cryptokeyName menunjukkan kunci Cloud KMS yang digunakan untuk saluran Google.

Mengaktifkan CMEK untuk saluran pihak ketiga

Channel Eventarc untuk pihak ketiga adalah resource yang memungkinkan entitas non-Google Cloud yang menawarkan sumber Eventarc berinteraksi dengan tujuan. Channel ini khusus untuk suatu wilayah dan Anda hanya dapat menambahkan satu kunci per channel pihak ketiga.

Untuk mengaktifkan CMEK untuk saluran pihak ketiga:

Konsol

  1. Di konsol Google Cloud, buka halaman Eventarc > Channels.

    Buka Channel

  2. Klik saluran dengan Penyedia pihak ketiga.

  3. Di halaman Channel details, klik Edit.

  4. Di halaman Edit channel, untuk Encryption, pilih Cloud KMS key.

  5. Dalam daftar Key type, pilih metode untuk mengelola kunci Anda.

    Anda dapat mengelola kunci secara manual atau menggunakan Autokey yang memungkinkan Anda membuat ring kunci dan kunci sesuai permintaan. Jika dinonaktifkan, opsi Kunci Otomatis belum terintegrasi dengan jenis resource saat ini.

  6. Di daftar Select a Cloud KMS key, pilih kunci. Perhatikan bahwa Anda hanya dapat menambahkan satu kunci enkripsi per region untuk satu channel.

  7. Opsional: Untuk memasukkan nama resource kunci secara manual, di daftar Select a Cloud KMS key, klik Enter key manually, lalu masukkan nama kunci dalam format yang ditentukan.

  8. Jika diminta, berikan peran cloudkms.cryptoKeyEncrypterDecrypter ke Agen Layanan Eventarc.

  9. Klik Simpan.

gcloud

 gcloud eventarc channels update CHANNEL_NAME \
    --location=LOCATION \
    --crypto-key=KEY

Ganti kode berikut:

  • CHANNEL_NAME: nama saluran pihak ketiga. Untuk membuat channel pihak ketiga baru, lihat Membuat channel.
  • LOCATION: lokasi saluran pihak ketiga yang akan dilindungi. Nilai ini harus cocok dengan lokasi kunci.
  • KEY: nama kunci Cloud KMS yang sepenuhnya memenuhi syarat dalam format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Memverifikasi penggunaan Cloud KMS

Untuk memverifikasi bahwa channel kini mematuhi CMEK:

Konsol

  1. Di konsol Google Cloud, buka halaman Eventarc > Triggers.

    Buka Pemicu

  2. Klik pemicu dengan sumber pihak ketiga sebagai Penyedia peristiwa dan Region yang telah Anda lindungi menggunakan CMEK.

  3. Di halaman Detail pemicu, status Enkripsi menampilkan pesan, Events encrypted using Customer-managed encryption keys.

gcloud

 gcloud eventarc channels describe CHANNEL_NAME \
    --location=LOCATION

Outputnya akan mirip dengan berikut ini:

 createTime: '2022-06-28T18:05:52.403999904Z'
 cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
 pubsubTopic: projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID
 state: ACTIVE
 uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
 updateTime: '2022-06-28T18:09:18.650727516Z'

Nilai cryptokeyName menunjukkan kunci Cloud KMS yang digunakan untuk saluran pihak ketiga.

Menampilkan kunci yang digunakan untuk saluran

Anda dapat mendeskripsikan saluran Eventarc dan menampilkan kunci Cloud KMS yang digunakan untuk saluran tersebut.

Konsol

  1. Di konsol Google Cloud, buka halaman Eventarc > Channels.

    Buka Channel

  2. Klik nama channel.

  3. Semua kunci enkripsi CMEK yang digunakan untuk saluran akan ditampilkan.

gcloud

Berdasarkan jenis saluran, jalankan perintah berikut:

Saluran Google

gcloud eventarc google-channels describe \
    --location=LOCATION

Channel pihak ketiga

gcloud eventarc channels describe CHANNEL_NAME \
    --location=LOCATION

Output harus berisi baris yang mirip dengan berikut ini:

cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME

Nilai cryptoKeyName menunjukkan kunci Cloud KMS yang digunakan untuk saluran.

Menonaktifkan CMEK

Anda dapat menonaktifkan perlindungan CMEK yang terkait dengan channel. Peristiwa yang dikirim melalui saluran tersebut masih dilindungi oleh Google-owned and Google-managed encryption keys. Untuk menghapus perlindungan CMEK yang terkait dengan channel:

Konsol

  1. Di konsol Google Cloud, buka halaman Eventarc > Channels.

    Buka Channel

  2. Berdasarkan jenis saluran, selesaikan langkah-langkah berikut:

    Saluran Google

    1. Klik saluran dengan Penyedia Google.
    2. Di halaman Edit channel, arahkan kursor ke daftar Kunci enkripsi CMEK untuk melihat tombol Hapus item.
    3. Klik Hapus item.
    4. Klik Simpan.

      Anda mungkin perlu memuat ulang halaman untuk mengaktifkan kotak centang Gunakan kunci enkripsi yang dikelola pelanggan (CMEK).

    Channel pihak ketiga

    1. Klik saluran dengan Penyedia pihak ketiga.
    2. Di halaman Detail saluran, klik Edit.
    3. Di halaman Edit channel, untuk Encryption, pilih Google-managed encryption key.
    4. Klik Simpan.

gcloud

Berdasarkan jenis saluran, jalankan perintah berikut:

Saluran Google

gcloud eventarc google-channels \
    update --clear-crypto-key

Channel pihak ketiga

gcloud eventarc channels CHANNEL_NAME \
    update --clear-crypto-key

Menerapkan kebijakan organisasi CMEK

Eventarc terintegrasi dengan dua batasan kebijakan organisasi untuk membantu memastikan penggunaan CMEK di seluruh organisasi:

  • constraints/gcp.restrictNonCmekServices digunakan untuk mewajibkan perlindungan CMEK.
  • constraints/gcp.restrictCmekCryptoKeyProjects digunakan untuk membatasi kunci Cloud KMS mana yang digunakan untuk perlindungan CMEK.

Integrasi ini memungkinkan Anda menentukan persyaratan kepatuhan enkripsi berikut untuk resource Eventarc di organisasi Anda:

Pertimbangan saat menerapkan kebijakan organisasi

Sebelum menerapkan kebijakan organisasi CMEK, Anda harus mengetahui hal-hal berikut.

  • Bersiap menghadapi penundaan penerapan

    Setelah Anda menetapkan atau memperbarui kebijakan organisasi, perlu waktu hingga 15 menit agar kebijakan baru dapat diterapkan.

  • Pertimbangkan resource yang ada

    Resource yang ada tidak tunduk pada kebijakan organisasi yang baru dibuat. Misalnya, kebijakan organisasi tidak berlaku secara surut untuk pipeline yang ada. Resource tersebut masih dapat diakses tanpa CMEK dan, jika berlaku, masih dienkripsi dengan kunci yang ada.

  • Memverifikasi izin yang diperlukan untuk menetapkan kebijakan organisasi

    Izin untuk menetapkan atau memperbarui kebijakan organisasi mungkin sulit diperoleh untuk tujuan pengujian. Anda harus diberi peran Administrator Kebijakan Organisasi, yang hanya dapat diberikan di tingkat organisasi (bukan di tingkat project atau folder).

    Meskipun peran ini harus diberikan di tingkat organisasi, Anda tetap dapat menentukan kebijakan yang hanya berlaku untuk project atau folder tertentu.

Mewajibkan CMEK untuk resource Eventarc baru

Anda dapat menggunakan batasan constraints/gcp.restrictNonCmekServices untuk mewajibkan CMEK digunakan untuk melindungi resource Eventarc baru di organisasi.

Jika ditetapkan, kebijakan organisasi ini akan menyebabkan semua permintaan pembuatan resource tanpa kunci Cloud KMS yang ditentukan akan gagal.

Setelah ditetapkan, kebijakan ini hanya berlaku untuk resource baru dalam project. Setiap resource yang ada tanpa kunci Cloud KMS yang diterapkan akan tetap ada dan dapat diakses tanpa masalah.

Konsol

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Dengan menggunakan Filter, telusuri batasan berikut:

    constraints/gcp.restrictNonCmekServices
    
  3. Di kolom Name, klik Batasi layanan mana yang dapat membuat resource tanpa CMEK.

  4. Klik Manage Policy.

  5. Di halaman Edit policy, pada bagian Policy source, pilih Override parent's policy.

  6. Di bagian Rules, klik Add a rule.

  7. Dalam daftar Policy values, pilih Custom.

  8. Dalam daftar Jenis kebijakan, pilih Tolak.

  9. Di kolom Custom values, masukkan hal berikut:

    is:eventarc.googleapis.com
    
  10. Klik Selesai, lalu klik Tetapkan kebijakan.

gcloud

  1. Membuat file sementara /tmp/policy.yaml untuk menyimpan kebijakan:

      name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices
      spec:
        rules:
        - values:
            deniedValues:
            - is:eventarc.googleapis.com

    Ganti PROJECT_ID dengan ID project tempat Anda menerapkan batasan ini.

  2. Jalankan perintah org-policies set-policy :

    gcloud org-policies set-policy /tmp/policy.yaml

Untuk memverifikasi bahwa kebijakan berhasil diterapkan, Anda dapat mencoba membuat saluran Eventarc Standard dalam project. Proses ini akan gagal kecuali jika Anda menentukan kunci Cloud KMS.

Membatasi kunci Cloud KMS untuk project Eventarc

Anda dapat menggunakan batasan constraints/gcp.restrictCmekCryptoKeyProjects untuk membatasi kunci Cloud KMS yang dapat digunakan untuk melindungi resource dalam project Eventarc.

Misalnya, Anda dapat menentukan aturan yang mirip dengan berikut: "Untuk resource Eventarc yang berlaku di projects/my-company-data-project, kunci Cloud KMS yang digunakan dalam project ini harus berasal dari projects/my-company-central-keys ATAU projects/team-specific-keys".

Konsol

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Dengan menggunakan Filter, telusuri batasan berikut:

    constraints/gcp.restrictCmekCryptoKeyProjects
    
  3. Di kolom Nama, klik Batasi project mana yang dapat menyediakan CryptoKey KMS untuk CMEK.

  4. Klik Manage Policy.

  5. Di halaman Edit policy, pada bagian Policy source, pilih Override parent's policy.

  6. Di bagian Rules, klik Add a rule.

  7. Dalam daftar Policy values, pilih Custom.

  8. Dalam daftar Jenis kebijakan, pilih Izinkan.

  9. Di kolom Custom values, masukkan hal berikut:

    under:projects/KMS_PROJECT_ID
    

    Ganti KMS_PROJECT_ID dengan ID project tempat kunci Cloud KMS yang ingin Anda gunakan berada.

    Misalnya, under:projects/my-kms-project.

  10. Klik Selesai, lalu klik Tetapkan kebijakan.

gcloud

  1. Membuat file sementara /tmp/policy.yaml untuk menyimpan kebijakan:

      name: projects/PROJECT_ID/policies/gcp.restrictCmekCryptoKeyProjects
      spec:
        rules:
        - values:
            allowedValues:
            - under:projects/KMS_PROJECT_ID

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat Anda menerapkan batasan ini.
    • KMS_PROJECT_ID: ID project tempat kunci Cloud KMS yang ingin Anda gunakan berada.
  2. Jalankan perintah org-policies set-policy :

    gcloud org-policies set-policy /tmp/policy.yaml

Untuk memverifikasi bahwa kebijakan berhasil diterapkan, Anda dapat mencoba membuat saluran Eventarc Standard menggunakan kunci Cloud KMS dari project lain. Proses tersebut akan gagal.

Menonaktifkan dan mengaktifkan kunci Cloud KMS

Versi kunci menyimpan materi kunci kriptografis yang Anda gunakan untuk mengenkripsi, mendekripsi, menandatangani, dan memverifikasi data. Anda dapat menonaktifkan versi kunci ini sehingga data yang dienkripsi dengan kunci tidak dapat diakses.

Jika Eventarc tidak dapat mengakses kunci Cloud KMS, publikasi peristiwa dengan saluran akan gagal dengan error FAILED_PRECONDITION dan pengiriman peristiwa akan berhenti. Anda dapat mengaktifkan kunci dalam status Nonaktif sehingga data terenkripsi dapat diakses lagi.

Menonaktifkan kunci Cloud KMS

Untuk mencegah Eventarc menggunakan kunci untuk mengenkripsi atau mendekripsi data peristiwa Anda, lakukan salah satu tindakan berikut:

  • Sebaiknya nonaktifkan versi kunci yang telah Anda konfigurasikan untuk saluran. Hal ini hanya memengaruhi saluran dan pemicu Eventarc yang terkait dengan kunci tertentu.
  • Opsional: Cabut peran cloudkms.cryptoKeyEncrypterDecrypter dari akun layanan Eventarc. Hal ini memengaruhi semua channel dan pemicu Eventarc project yang mendukung peristiwa yang dienkripsi menggunakan CMEK.

Meskipun kedua operasi tersebut tidak menjamin pencabutan akses secara instan, perubahan Identity and Access Management (IAM) umumnya diterapkan lebih cepat. Untuk mengetahui informasi selengkapnya, lihat Konsistensi resource Cloud KMS dan Penerapan perubahan akses.

Mengaktifkan kembali kunci Cloud KMS

Untuk melanjutkan pengiriman dan publikasi peristiwa, pulihkan akses ke Cloud KMS.

Harga

Integrasi ini tidak menimbulkan biaya tambahan di luar operasi utama, yang ditagih ke project Google CloudAnda. Penggunaan CMEK untuk saluran akan dikenai biaya akses ke layanan Cloud KMS berdasarkan harga Pub/Sub.

Untuk mengetahui informasi selengkapnya tentang informasi harga terbaru, lihat Harga Cloud KMS.

Langkah berikutnya