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
-
Enable the Cloud KMS and Eventarc APIs.
- Buat key ring.
- Membuat kunci untuk key ring yang ditentukan.
gcloud
- Perbarui komponen
gcloud
.gcloud components update
- Aktifkan Cloud KMS dan Eventarc API untuk project yang akan menyimpan kunci enkripsi Anda.
gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
- Buat key ring.
- 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 peraneventarc.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
Di konsol Google Cloud, buka halaman Eventarc > Channels.
Klik saluran dengan Penyedia Google.
Di halaman Edit channel, centang kotak Gunakan kunci enkripsi yang dikelola pelanggan (CMEK).
Klik Tambahkan kunci enkripsi.
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.
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.
Jika diminta, berikan peran
cloudkms.cryptoKeyEncrypterDecrypter
ke akun layanan Eventarc dengan peraneventarc.serviceAgent
.Opsional: Klik Tambahkan kunci enkripsi untuk menambahkan key ring lain yang telah Anda buat untuk region yang berbeda.
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 formatprojects/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
Di konsol Google Cloud, buka halaman Eventarc > Triggers.
Klik pemicu yang mencantumkan sumber Google Cloud sebagai Penyedia peristiwa dan Region yang telah Anda lindungi menggunakan CMEK.
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
Di konsol Google Cloud, buka halaman Eventarc > Channels.
Klik saluran dengan Penyedia pihak ketiga.
Di halaman Channel details, klik
Edit.Di halaman Edit channel, untuk Encryption, pilih Cloud KMS key.
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.
Di daftar Select a Cloud KMS key, pilih kunci. Perhatikan bahwa Anda hanya dapat menambahkan satu kunci enkripsi per region untuk satu channel.
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.
Jika diminta, berikan peran
cloudkms.cryptoKeyEncrypterDecrypter
ke Agen Layanan Eventarc.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 formatprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.
Memverifikasi penggunaan Cloud KMS
Untuk memverifikasi bahwa channel kini mematuhi CMEK:
Konsol
Di konsol Google Cloud, buka halaman Eventarc > Triggers.
Klik pemicu dengan sumber pihak ketiga sebagai Penyedia peristiwa dan Region yang telah Anda lindungi menggunakan CMEK.
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
Di konsol Google Cloud, buka halaman Eventarc > Channels.
Klik nama channel.
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
Di konsol Google Cloud, buka halaman Eventarc > Channels.
Berdasarkan jenis saluran, selesaikan langkah-langkah berikut:
Saluran Google
- Klik saluran dengan Penyedia Google.
- Di halaman Edit channel, arahkan kursor ke daftar Kunci enkripsi CMEK untuk melihat tombol Hapus item.
- Klik Hapus item.
Klik Simpan.
Anda mungkin perlu memuat ulang halaman untuk mengaktifkan kotak centang Gunakan kunci enkripsi yang dikelola pelanggan (CMEK).
Channel pihak ketiga
- Klik saluran dengan Penyedia pihak ketiga.
- Di halaman Detail saluran, klik Edit.
- Di halaman Edit channel, untuk Encryption, pilih Google-managed encryption key.
- 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
Di konsol Google Cloud, buka halaman Organization policies.
Dengan menggunakan Filter, telusuri batasan berikut:
constraints/gcp.restrictNonCmekServices
Di kolom Name, klik Batasi layanan mana yang dapat membuat resource tanpa CMEK.
Klik
Manage Policy.Di halaman Edit policy, pada bagian Policy source, pilih Override parent's policy.
Di bagian Rules, klik Add a rule.
Dalam daftar Policy values, pilih Custom.
Dalam daftar Jenis kebijakan, pilih Tolak.
Di kolom Custom values, masukkan hal berikut:
is:eventarc.googleapis.com
Klik Selesai, lalu klik Tetapkan kebijakan.
gcloud
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.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
Di konsol Google Cloud, buka halaman Organization policies.
Dengan menggunakan Filter, telusuri batasan berikut:
constraints/gcp.restrictCmekCryptoKeyProjects
Di kolom Nama, klik Batasi project mana yang dapat menyediakan CryptoKey KMS untuk CMEK.
Klik
Manage Policy.Di halaman Edit policy, pada bagian Policy source, pilih Override parent's policy.
Di bagian Rules, klik Add a rule.
Dalam daftar Policy values, pilih Custom.
Dalam daftar Jenis kebijakan, pilih Izinkan.
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
.Klik Selesai, lalu klik Tetapkan kebijakan.
gcloud
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.
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
- Memecahkan masalah CMEK
- Praktik terbaik untuk menggunakan CMEK
- Menggunakan CMEK dengan Eventarc Advanced