Halaman ini menunjukkan cara menyiapkan Cloud External Key Manager (Cloud EKM) untuk terhubung ke penyedia pengelolaan kunci eksternal (EKM) melalui jaringan Virtual Private Cloud (VPC).
Anda dapat menggunakan kunci eksternal melalui VPC di lokasi Cloud KMS yang mendukung EKM melalui VPC. Untuk mengetahui informasi selengkapnya, lihat halaman Lokasi Cloud KMS.
Terminologi
Koneksi EKM
Resource Cloud KMS yang digunakan untuk mengonfigurasi koneksi ke pengelola kunci eksternal Anda. Di Konsol Google Cloud, ini disebut sebagai EKM melalui koneksi VPC.
Project VPC
Project yang menyimpan resource VPC yang digunakan untuk terhubung ke pengelola kunci eksternal Anda.
Project utama
Project yang menyimpan resource koneksi EKM dan kunci Cloud EKM di Cloud KMS. Project kunci bisa sama dengan project VPC, tetapi tidak wajib.
Ruang kripto
Container untuk resource Anda dalam partner pengelolaan kunci eksternal. Ruang kripto Anda diidentifikasi oleh jalur ruang kripto yang unik. Format jalur ruang kripto bervariasi menurut partner pengelolaan kunci eksternal—misalnya,
v0/cryptospaces/YOUR_UNIQUE_PATH
.
Sebelum memulai
Setelah menyelesaikan langkah-langkah di bawah, Anda dapat mulai menggunakan kunci Cloud EKM untuk melindungi data Anda.
Buat project baru
Di konsol Google Cloud, buka halaman Manage Resources.
Buat project Google Cloud baru atau pilih project yang sudah ada.
-
Make sure that billing is enabled for your Google Cloud project.
Anda dapat mempelajari harga Cloud EKM lebih lanjut.
Mengaktifkan Cloud KMS
Aktifkan Cloud Key Management Service API untuk project.
Catat akun layanan Cloud EKM project Anda. Pada contoh berikut, ganti
PROJECT_NUMBER
dengan nomor project project Google Cloud Anda. Informasi ini juga terlihat setiap kali Anda menggunakan Google Cloud Console untuk membuat kunci Cloud EKM.service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
Memastikan gcloud CLI sudah yang terbaru
Jika Anda akan menggunakan Google Cloud CLI, pastikan bahwa ini adalah yang terbaru dengan perintah berikut:
gcloud CLI
gcloud components update
Menyiapkan jaringan VPC
Ada dua opsi saat menyiapkan jaringan VPC:
Secara default, project baru berisi jaringan mode otomatis yang telah diisi otomatis dengan aturan firewall. Jika jaringan VPC tidak akan digunakan untuk tujuan produksi, jaringan mode otomatis default adalah cara tercepat untuk memulai.
Jika pengelola kunci eksternal berjalan secara lokal dan Anda akan menghubungkannya melalui konektivitas hybrid, Anda harus menggunakan jaringan mode kustom karena jaringan tersebut memberikan kontrol atas rentang alamat IP subnet.
Ikuti langkah-langkah berikut untuk menyiapkan VPC:
Mengaktifkan Akses Google Pribadi
Pengelola kunci eksternal harus memverifikasi token OIDC yang ada dalam setiap permintaan. Untuk memverifikasi token, kunci publik OAuth2 harus diambil dari nama domain
www.googleapis.com
. Jika pengelola kunci eksternal berjalan di Google Cloud dan tidak memiliki akses melalui internet (misalnya, VM tanpa IP eksternal atau diblokir oleh firewall), ikuti petunjuk untuk mengonfigurasi akses Google pribadi.Konfigurasi firewall untuk rentang IP
35.199.192.0/19
Permintaan dari Cloud EKM akan berasal dari rentang ini. Membuat traffic masuk dan keluar akan mengizinkan aturan firewall untuk TCP untuk port tempat pengelola kunci eksternal memproses.
Menyiapkan konektivitas hybrid
Jika pengelola kunci eksternal berjalan secara lokal, gunakan solusi konektivitas hybrid untuk menghubungkan VPC ke jaringan lokal Anda. Setelah menyiapkan konektivitas, ikuti langkah-langkah tambahan berikut:
Mengaktifkan Akses Google Pribadi
Pengelola kunci eksternal harus memverifikasi token OIDC yang ada dalam setiap permintaan. Untuk memverifikasi token, token harus mengambil kunci publik OAuth2 dari nama domain
www.googleapis.com
. Jika pengelola kunci eksternal berjalan di infrastruktur lokal dan tidak memiliki akses melalui internet, ikuti petunjuk untuk mengonfigurasi akses Google pribadi untuk host lokal.Konfigurasi firewall untuk rentang IP
35.199.192.0/19
Permintaan dari Cloud EKM akan berasal dari rentang ini. Konfigurasi firewall jaringan lokal Anda atau peralatan serupa untuk mengizinkan traffic TCP pada port yang dipantau pengelola kunci eksternal.
Pastikan VPC Anda memiliki rute kembali ke rentang IP
35.199.192.0/19
Jaringan lokal Anda harus memiliki rute untuk tujuan
35.199.192.0/19
. Untuk mengetahui informasi tentang cara memenuhi persyaratan ini, lihat strategi rute kembali untuk target di lokasi.
Strategi rute kembali untuk target di lokasi
Untuk tunnel Cloud VPN yang menggunakan perutean statis, buat rute secara manual di jaringan lokal Anda yang tujuannya adalah
35.199.192.0/19
dan yang hop berikutnya adalah tunnel Cloud VPN. Untuk tunnel Cloud VPN yang menggunakan perutean berbasis kebijakan, konfigurasi pemilih traffic lokal Cloud VPN dan pemilih traffic jarak jauh gateway VPN lokal untuk menyertakan35.199.192.0/19
.Untuk tunnel Cloud VPN yang menggunakan perutean dinamis atau untuk Cloud Interconnect, konfigurasikan pemberitahuan rute kustom untuk
35.199.192.0/19
pada sesi BGP di Cloud Router yang mengelola tunnel atau lampiran VLAN.
Menyiapkan pengelola kunci eksternal
Ikuti petunjuk dari penyedia EKM untuk menyiapkan EKM.
Siapkan ruang kripto Anda
Jika Anda menggunakan Cloud EKM sebagai bagian dari pengaturan EKM yang dikelola partner, langkah-langkah ini telah diselesaikan untuk Anda sebagai bagian dari proses penyediaan partner Anda.
Jika penyedia EKM Anda kompatibel dengan pengelolaan kunci EKM dari Cloud KMS, langkah-langkah penyiapan dan konfigurasi berikut harus dilakukan di EKM Anda:
Buat ruang kripto untuk resource yang dikelola Cloud KMS di EKM Anda.
Beri akun layanan Cloud KMS Anda akses ke ruang kripto Anda dan kunci yang dibuat di dalamnya.
Siapkan kebijakan Key Access Justifications untuk menentukan justifikasi akses mana yang harus diizinkan atau ditolak.
Proses persis untuk setiap langkah ini bergantung pada EKM Anda. Untuk mengetahui informasi selengkapnya, lihat dokumentasi penyedia EKM Anda.
Membuat endpoint layanan Direktori Layanan
Buat dan konfigurasi endpoint layanan Direktori Layanan di project VPC yang mengarah ke alamat IP pribadi dan port pengelola kunci eksternal Anda. Jika Anda menggunakan load balancer di depan beberapa replika EKM, gunakan alamat IP dan port load balancer. Pastikan kolom jaringan endpoint layanan Direktori Layanan Anda terisi.
Izinkan Cloud EKM mengakses VPC Anda
Untuk setiap project kunci, Anda harus mengizinkan Cloud EKM mengakses VPC Anda atas nama project tersebut, meskipun project kunci tersebut dan project VPC sama. Dengan mengizinkan akses, kunci dalam project kunci Anda dapat menggunakan VPC di project VPC Anda.
Pastikan akun layanan Cloud EKM ada untuk project.
gcloud CLI
gcloud beta services identity create \ --service=cloudkms.googleapis.com \ --project=KEY_PROJECT_ID
Berikan
servicedirectory.viewer
danservicedirectory.pscAuthorizedService
di project VPC Anda keservice-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
Untuk mendapatkan bantuan dalam mendapatkan project ID dan nomor project Anda, lihat Membuat dan mengelola project.gcloud CLI
gcloud projects add-iam-policy-binding VPC_PROJECT_ID \ --member='serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com' \ --role='roles/servicedirectory.viewer' gcloud projects add-iam-policy-binding VPC_PROJECT_ID \ --member='serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com' \ --role='roles/servicedirectory.pscAuthorizedService'
Membuat koneksi EKM
Untuk menghubungkan pengelola kunci eksternal ke Cloud EKM, buat koneksi EKM di project kunci Anda.
Konsol
Di konsol Google Cloud, buka halaman KMS infrastructure.
Klik
Create connection.Untuk Nama koneksi, masukkan nama koneksi Anda.
Untuk Region, pilih lokasi untuk koneksi EKM. Setiap kunci Cloud KMS yang terkait dengan koneksi ini harus berada di lokasi yang sama dengan koneksi.
Untuk kolom Service resource ID (self_link), masukkan nilai layanan Direktori Layanan yang dibuat di bagian Membuat endpoint layanan Direktori Layanan. Layanan direktori layanan harus berada di lokasi yang sama dengan koneksi.
Di kolom Nama host, tambahkan nama host untuk pengelola kunci eksternal.
Di Sertifikat, klik Tambahkan sertifikat guna mengupload satu atau beberapa sertifikat server X.509 untuk pengelola kunci eksternal. Sertifikat harus dalam format DER.
Untuk mode pengelolaan EKM, pilih Manual agar dapat menggunakan koneksi EKM untuk kunci eksternal yang dikelola secara manual, atau pilih Cloud KMS agar dapat menggunakan koneksi EKM untuk kunci eksternal terkoordinasi.
Jika Anda memilih Cloud KMS untuk mode pengelolaan EKM, maka di kolom Crypto space path, masukkan jalur ruang kripto yang disediakan oleh EKM Anda.
Opsional. Untuk menetapkan koneksi EKM sebagai koneksi default untuk project dan lokasi ini, pilih kotak centang Set connection as the default. Jika koneksi EKM lain saat ini ditetapkan sebagai koneksi default untuk project dan lokasi ini, koneksi EKM ini akan menggantikan default yang sudah ada.
Klik Create.
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
Guna membuat koneksi EKM untuk kunci eksternal yang dikelola secara manual, jalankan perintah berikut:
gcloud beta kms ekm-connections create EKM_CONNECTION \ --location LOCATION \ --service-directory-service SERVICE_DIRECTORY_SERVICE \ --hostname HOSTNAME \ --server-certificates-files SERVER_CERTIFICATE_FILES \ --key-management-mode manual
Ganti kode berikut:
EKM_CONNECTION
: nama untuk koneksi EKM.LOCATION
: lokasi Cloud KMS tempat Anda ingin membuat koneksi EKM. Setiap kunci Cloud KMS yang terkait dengan koneksi ini harus berada di lokasi yang sama dengan koneksi.SERVICE_DIRECTORY_SERVICE
: ID resource layanan Direktori Layanan untuk koneksi Anda.HOSTNAME
: nama host pengelola kunci eksternal Anda.SERVER_CERTIFICATE_FILES
: daftar file yang dipisahkan koma yang berisi sertifikat server X.509 untuk pengelola kunci eksternal. Sertifikat harus dalam format DER.
Guna membuat koneksi EKM untuk kunci eksternal terkoordinasi, jalankan perintah berikut:
gcloud beta kms ekm-connections create EKM_CONNECTION \ --location LOCATION \ --service-directory-service SERVICE_DIRECTORY_SERVICE \ --hostname HOSTNAME \ --server-certificates-files SERVER_CERTIFICATE_FILES \ --key-management-mode cloud-kms \ --crypto-space-path CRYPTO_SPACE_PATH
Ganti kode berikut:
EKM_CONNECTION
: nama untuk koneksi EKM.LOCATION
: lokasi Cloud KMS tempat Anda ingin membuat koneksi EKM. Setiap kunci Cloud KMS yang terkait dengan koneksi ini harus berada di lokasi yang sama dengan koneksi.SERVICE_DIRECTORY_SERVICE
: ID resource layanan Direktori Layanan untuk koneksi Anda.HOSTNAME
: nama host pengelola kunci eksternal Anda.SERVER_CERTIFICATE_FILES
: daftar file yang dipisahkan koma yang berisi sertifikat server X.509 untuk pengelola kunci eksternal. Sertifikat harus dalam format DER.CRYPTO_SPACE_PATH
: jalur ruang kripto yang disediakan oleh penyedia EKM Anda.
Untuk mengetahui informasi tentang semua flag dan nilai yang memungkinkan, jalankan perintah dengan
flag --help
.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Guna membuat koneksi EKM untuk kunci eksternal terkoordinasi, jalankan perintah berikut:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConnections" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data '{ "name": "EKM_CONNECTION", "serviceResolvers": [ { "serviceDirectoryService": "SERVICE_DIRECTORY_SERVICE", "hostname": "HOSTNAME", "serverCertificates": [ { SERVER_CERTIFICATES } ] } ] "keyManagementMode": "CLOUD_KMS", "cryptoSpacePath": "CRYPTO_SPACE_PATH" }'
Ganti kode berikut:
PROJECT_ID
: ID project tempat Anda ingin membuat koneksi EKM.LOCATION
: Cloud KMS tempat Anda ingin membuat koneksi EKM.EKM_CONNECTION
: nama yang akan digunakan untuk koneksi EKM.SERVER_CERTIFICATES
: daftar hingga 10 objekCertificate
yang mewakili sertifikat server leaf.HOSTNAME
: nama host pengelola kunci eksternal Anda.CRYPTO_SPACE_PATH
: jalur ruang kripto yang disediakan oleh penyedia EKM Anda.
Guna membuat koneksi EKM untuk kunci eksternal yang dikelola secara manual, jalankan perintah berikut:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConnections" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data '{ "name": "EKM_CONNECTION", "serviceResolvers": [ { "serviceDirectoryService": "SERVICE_DIRECTORY_SERVICE", "hostname": "HOSTNAME", "serverCertificates": [ { SERVER_CERTIFICATES } ] } ] }'
Ganti kode berikut:
PROJECT_ID
: ID project tempat Anda ingin membuat koneksi EKM.LOCATION
: Cloud KMS tempat Anda ingin membuat koneksi EKM.EKM_CONNECTION
: nama yang akan digunakan untuk koneksi EKM.SERVER_CERTIFICATES
: daftar hingga 10 objekCertificate
yang mewakili sertifikat server leaf.HOSTNAME
: nama host pengelola kunci eksternal Anda.
Lihat dokumentasi API EkmConnection.create
untuk informasi selengkapnya.
Status sertifikat
Setelah mengupload sertifikat untuk koneksi EKM, Anda dapat memeriksa status sertifikat secara keseluruhan dari koneksi EKM, serta status setiap sertifikat dari halaman infrastruktur KMS.
Koneksi EKM memiliki status keseluruhan di kolom Certificate status dari setiap koneksi. Jika koneksi EKM memiliki status selain Aktif, sebaiknya perbarui sertifikat pada koneksi EKM Anda.
Koneksi EKM dan sertifikat individual dapat memiliki status berikut:
- Aktif: Sertifikat valid dan tidak mendekati tanggal habis masa berlaku.
- Masa berlaku habis dalam 30 hari: Sertifikat valid, tetapi memiliki tanggal habis masa berlaku dalam 30 hari ke depan.
- Berakhir: Sertifikat sudah tidak berlaku dan tidak valid lagi. Sebaiknya update sertifikat yang sudah habis masa berlakunya.
- Belum valid: Sertifikat tidak aktif. Hal ini bisa terjadi jika tanggal mulai sertifikat berada di masa depan.
Jika sertifikat Anda tidak lagi valid, perbarui koneksi EKM Anda di Konsol Google Cloud.
Konsol
Di konsol Google Cloud, buka halaman KMS infrastructure.
Klik nama EKM melalui koneksi VPC dengan sertifikat yang perlu diupdate.
Klik Edit koneksi.
Klik Add certificate untuk mengupload satu atau beberapa sertifikat server X.509 untuk pengelola kunci eksternal Anda. Sertifikat harus dalam format DER.
Hapus sertifikat yang masa berlakunya sudah habis. Arahkan kursor ke sertifikat yang habis masa berlakunya dan pilih ikon Hapus di sebelah kanan.
Klik Update connection untuk mengupdate EKM melalui koneksi VPC.
Menyetel koneksi EKM sebagai default
Anda dapat menetapkan koneksi EKM sebagai koneksi default untuk project dan lokasi tertentu. Jika koneksi EKM default ditetapkan untuk project dan lokasi, Cloud EKM baru oleh kunci VPC yang dibuat dalam key ring di lokasi tersebut akan menggunakan koneksi EKM yang ditunjukkan, kecuali jika koneksi EKM lain dipilih.
Untuk menyetel koneksi EKM sebagai default untuk project dan lokasinya, selesaikan langkah-langkah berikut:
Konsol
Di konsol Google Cloud, buka halaman KMS infrastructure.
Klik koneksi EKM yang ingin Anda tetapkan sebagai default.
Klik Edit koneksi.
Pada Default connection, centang kotak Set connection as the default untuk LOCATION.
Klik Perbarui koneksi.
gcloud CLI
gcloud beta kms ekm-config update --location=LOCATION --default-ekm-connection=projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION
Ganti kode berikut:
LOCATION
: Cloud KMS yang koneksi EKM default-nya ingin Anda tetapkan.PROJECT_ID
: nama project yang ingin Anda tetapkan koneksi EKM defaultnya.DEFAULT_EKM_CONNECTION
: nama koneksi EKM yang ingin Anda tetapkan sebagai default untuk lokasi ini. Lokasi koneksi EKM harus cocok dengan lokasi yang diberikan dalamLOCATION
.
API
Untuk menetapkan koneksi EKM default untuk lokasi, gunakan metode
EkmConfig.patch
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConfig" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"defaultEkmConnection": "projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION"}'
Ganti kode berikut:
PROJECT_ID
: ID project yang ingin Anda tetapkan koneksi EKM default-nya.LOCATION
: Cloud KMS yang koneksi EKM default-nya ingin Anda tetapkan.DEFAULT_EKM_CONNECTION
: nama koneksi EKM yang ingin Anda tetapkan sebagai default untuk lokasi ini. Lokasi koneksi EKM harus cocok dengan lokasi yang diberikan dalamLOCATION
.
Jika koneksi EKM lain telah ditetapkan sebagai default untuk lokasi ini, koneksi EKM yang dipilih akan menggantikannya sebagai default. Hanya satu koneksi EKM yang dapat menjadi default untuk project dan lokasi tertentu.