Membuat koneksi EKM

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

  1. Di konsol Google Cloud, buka halaman Manage Resources.

    Buka halaman Kelola Resource

  2. Buat project Google Cloud baru atau pilih project yang sudah ada.

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Anda dapat mempelajari harga Cloud EKM lebih lanjut.

Mengaktifkan Cloud KMS

  1. Aktifkan Cloud Key Management Service API untuk project.

    Mengaktifkan Cloud Key Management Service API

  2. 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:

  1. 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.

  2. 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:

  1. 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.

  2. 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.

  3. 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 menyertakan 35.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.

  1. Pastikan akun layanan Cloud EKM ada untuk project.

    gcloud CLI

    gcloud beta services identity create \
      --service=cloudkms.googleapis.com \
      --project=KEY_PROJECT_ID
    
  2. Berikan servicedirectory.viewer dan servicedirectory.pscAuthorizedService di project VPC Anda ke service-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

  1. Di konsol Google Cloud, buka halaman KMS infrastructure.

    Buka infrastruktur KMS

  2. Klik Create connection.

  3. Untuk Nama koneksi, masukkan nama koneksi Anda.

  4. Untuk Region, pilih lokasi untuk koneksi EKM. Setiap kunci Cloud KMS yang terkait dengan koneksi ini harus berada di lokasi yang sama dengan koneksi.

  5. 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.

  6. Di kolom Nama host, tambahkan nama host untuk pengelola kunci eksternal.

  7. Di Sertifikat, klik Tambahkan sertifikat guna mengupload satu atau beberapa sertifikat server X.509 untuk pengelola kunci eksternal. Sertifikat harus dalam format DER.

  8. 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.

  9. Jika Anda memilih Cloud KMS untuk mode pengelolaan EKM, maka di kolom Crypto space path, masukkan jalur ruang kripto yang disediakan oleh EKM Anda.

  10. 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.

  11. 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 objek Certificate 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 objek Certificate 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

  1. Di konsol Google Cloud, buka halaman KMS infrastructure.

    Buka infrastruktur KMS

  2. Klik nama EKM melalui koneksi VPC dengan sertifikat yang perlu diupdate.

  3. Klik Edit koneksi.

  4. Klik Add certificate untuk mengupload satu atau beberapa sertifikat server X.509 untuk pengelola kunci eksternal Anda. Sertifikat harus dalam format DER.

  5. Hapus sertifikat yang masa berlakunya sudah habis. Arahkan kursor ke sertifikat yang habis masa berlakunya dan pilih ikon Hapus di sebelah kanan.

  6. 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

  1. Di konsol Google Cloud, buka halaman KMS infrastructure.

    Buka infrastruktur KMS

  2. Klik koneksi EKM yang ingin Anda tetapkan sebagai default.

  3. Klik Edit koneksi.

  4. Pada Default connection, centang kotak Set connection as the default untuk LOCATION.

  5. 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 dalam LOCATION.

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 dalam LOCATION.

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.

Langkah selanjutnya