Membuat koneksi EKM

Halaman ini menunjukkan cara menyiapkan Cloud External Key Manager (Cloud EKM) untuk terhubung ke penyedia pengelolaan kunci enkripsi 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 informasi selengkapnya, lihat halaman Lokasi Cloud KMS.

Terminologi

  • Koneksi EKM

    Resource Cloud KMS yang digunakan untuk mengonfigurasi koneksi ke pengelola kunci enkripsi 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 enkripsi eksternal Anda.

  • Proyek utama

    Project yang menyimpan resource koneksi EKM dan kunci Cloud EKM di Cloud KMS. Project kunci dapat sama dengan project VPC, tetapi tidak diperlukan.

  • Ruang kripto

    Penampung untuk resource Anda dalam partner pengelolaan kunci eksternal Anda. Ruang kripto Anda diidentifikasi oleh jalur ruang kripto yang unik. Format jalur ruang kripto bervariasi menurut partner pengelolaan kunci enkripsi 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.

Membuat 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. Make sure that billing is enabled for your Google Cloud project.

  4. Anda dapat mempelajari lebih lanjut harga Cloud EKM.

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. Dalam contoh berikut, ganti PROJECT_NUMBER dengan nomor project project Google Cloud Anda. Informasi ini juga terlihat setiap kali Anda menggunakan konsol Google Cloud 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 CLI tersebut sudah 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 sudah terisi dengan aturan firewall. Jika jaringan VPC tidak akan digunakan untuk tujuan produksi, jaringan mode otomatis default adalah cara tercepat untuk memulai.

Jika pengelola kunci enkripsi eksternal berjalan di lokal dan Anda akan terhubung ke pengelola kunci enkripsi tersebut melalui konektivitas campuran, Anda harus menggunakan jaringan mode kustom karena jaringan ini 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 terdapat dalam setiap permintaan. Untuk memverifikasi token, token tersebut harus mengambil kunci publik OAuth2 dari nama domain www.googleapis.com. Jika pengelola kunci enkripsi 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. Buat aturan firewall untuk TCP yang mengizinkan traffic masuk dan keluar untuk port tempat pengelola kunci enkripsi eksternal mendengarkan.

Menyiapkan konektivitas hybrid

Jika pengelola kunci enkripsi eksternal berjalan di lokal, gunakan solusi konektivitas hybrid untuk menghubungkan VPC dengan jaringan lokal Anda. Setelah menyiapkan konektivitas, ikuti langkah-langkah tambahan berikut:

  1. Mengaktifkan Akses Google Pribadi

    Pengelola kunci eksternal harus memverifikasi token OIDC yang terdapat dalam setiap permintaan. Untuk memverifikasi token, token tersebut harus mengambil kunci publik OAuth2 dari nama domain www.googleapis.com. Jika pengelola kunci enkripsi eksternal berjalan di 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. Konfigurasikan firewall jaringan on-premise atau peralatan serupa untuk mengizinkan traffic TCP di port tempat pengelola kunci enkripsi eksternal memproses.

  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 return untuk target on-premise.

Menampilkan strategi rute 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 next hop-nya adalah tunnel Cloud VPN. Untuk tunnel Cloud VPN yang menggunakan pemilihan rute 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, konfigurasi mode iklan kustom untuk 35.199.192.0/19 pada sesi BGP Cloud Router yang mengelola tunnel atau lampiran VLAN.

Menyiapkan pengelola kunci enkripsi eksternal

Ikuti petunjuk dari penyedia EKM untuk menyiapkan EKM.

Menyiapkan ruang kripto

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.

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.

  • Berikan akses ke akun layanan Cloud KMS Anda 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 persisnya untuk setiap langkah ini bergantung pada EKM Anda. Untuk mengetahui informasi selengkapnya, lihat dokumentasi penyedia EKM Anda.

Membuat endpoint layanan Direktori Layanan

Buat dan konfigurasikan endpoint layanan Direktori Layanan di project VPC yang mengarah ke alamat IP pribadi dan port pengelola kunci enkripsi eksternal Anda. Jika Anda menggunakan load balancer di depan beberapa replika EKM, gunakan alamat IP dan port load balancer. Pastikan kolom jaringan di endpoint layanan Direktori Layanan Anda diisi.

Memberi otorisasi Cloud EKM untuk mengakses VPC Anda

Untuk setiap project kunci, Anda harus memberikan otorisasi kepada Cloud EKM untuk mengakses VPC atas nama project tersebut, meskipun project kunci dan project VPC sama. Dengan memberikan otorisasi akses, kunci di 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 terkait cara mendapatkan project ID dan nomor, 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 enkripsi eksternal ke Cloud EKM, buat koneksi EKM di project kunci.

Konsol

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

    Buka infrastruktur KMS

  2. Klik Buat koneksi.

  3. Untuk Nama koneksi, masukkan nama untuk 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 Hostname, tambahkan nama host untuk pengelola kunci enkripsi eksternal Anda.

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

  8. Untuk Mode pengelolaan EKM, pilih Manual untuk menggunakan koneksi EKM untuk kunci eksternal yang dikelola secara manual, atau pilih Cloud KMS untuk menggunakan koneksi EKM untuk kunci eksternal yang terkoordinasi.

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

  10. Opsional. Untuk menetapkan koneksi EKM sebagai koneksi default untuk project dan lokasi ini, centang kotak 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 koneksi default yang ada.

  11. Klik Create.

gcloud

Untuk menggunakan Cloud KMS di command line, pertama-tama Instal atau upgrade ke Google Cloud CLI versi terbaru.

Untuk membuat koneksi EKM bagi 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 enkripsi eksternal Anda.
  • SERVER_CERTIFICATE_FILES: daftar file yang dipisahkan koma yang berisi sertifikat server X.509 untuk pengelola kunci enkripsi eksternal Anda. Sertifikat harus dalam format DER.

Untuk 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 enkripsi eksternal Anda.
  • SERVER_CERTIFICATE_FILES: daftar file yang dipisahkan koma yang berisi sertifikat server X.509 untuk pengelola kunci enkripsi eksternal Anda. Sertifikat harus dalam format DER.
  • CRYPTO_SPACE_PATH: jalur ruang kripto yang disediakan oleh penyedia EKM Anda.

Untuk mengetahui informasi tentang semua flag dan kemungkinan nilai, 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.

Untuk 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 enkripsi eksternal Anda.
  • CRYPTO_SPACE_PATH: jalur ruang kripto yang disediakan oleh penyedia EKM Anda.

Untuk membuat koneksi EKM bagi 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 enkripsi eksternal Anda.

Lihat dokumentasi EkmConnection.create API untuk mengetahui informasi selengkapnya.

Status sertifikat

Setelah mengupload sertifikat untuk koneksi EKM, Anda dapat memeriksa status sertifikat keseluruhan koneksi EKM serta status setiap sertifikat dari halaman infrastruktur KMS.

Koneksi EKM memiliki status keseluruhan di kolom Status sertifikat di setiap koneksi. Jika koneksi EKM memiliki status selain Aktif, sebaiknya perbarui sertifikat di koneksi EKM Anda.

Koneksi EKM dan sertifikat individual dapat memiliki status berikut:

  • Aktif: Sertifikat valid dan tidak mendekati tanggal habis masa berlakunya.
  • Masa berlaku habis dalam 30 hari: Sertifikat valid, tetapi memiliki tanggal habis masa berlaku dalam 30 hari ke depan.
  • Masa berlaku habis: Masa berlaku sertifikat sudah habis dan tidak valid lagi. Sebaiknya update sertifikat yang sudah tidak berlaku.
  • Belum valid: Sertifikat tidak aktif. Hal ini dapat terjadi jika tanggal mulai sertifikat berada di masa mendatang.

Jika sertifikat Anda tidak lagi valid, perbarui koneksi EKM di konsol Google Cloud.

Konsol

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

    Buka infrastruktur KMS

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

  3. Klik Edit koneksi.

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

  5. Hapus sertifikat yang sudah tidak berlaku. Arahkan kursor ke sertifikat yang telah habis masa berlakunya, lalu pilih ikon Hapus di sebelah kanan.

  6. Klik Update connection untuk mengupdate EKM melalui koneksi VPC.

Menetapkan koneksi EKM sebagai default

Anda dapat menetapkan koneksi EKM sebagai koneksi default untuk project dan lokasi tertentu. Saat koneksi EKM default ditetapkan untuk project dan lokasi, Cloud EKM baru berdasarkan kunci VPC yang dibuat di ring kunci di lokasi tersebut akan menggunakan koneksi EKM yang ditunjukkan, kecuali jika koneksi EKM lain dipilih.

Untuk menetapkan koneksi EKM sebagai default untuk project dan lokasinya, selesaikan langkah-langkah berikut:

Konsol

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

    Buka infrastruktur KMS

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

  3. Klik Edit koneksi.

  4. Di bagian Default connection, centang kotak Set connection as the default for 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 ingin Anda tetapkan koneksi EKM defaultnya.
  • PROJECT_ID: nama project yang koneksi EKM defaultnya 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 di 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 koneksi EKM defaultnya ingin Anda tetapkan.
  • LOCATION: Cloud KMS 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 di 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