Membuat koneksi EKM

Halaman ini menunjukkan cara menyiapkan Cloud External Key Manager (Cloud EKM) untuk terhubung ke penyedia pengelolaan kunci eksternal (EKM) Anda 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 key manager eksternal Anda. Di konsol Google Cloud , hal ini disebut sebagai koneksi EKM melalui VPC.

  • Project VPC

    Project yang menyimpan resource VPC yang digunakan untuk terhubung ke pengelola kunci 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

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

    Aktifkan Cloud Key Management Service API

  2. Catat akun layanan Cloud EKM project Anda. Pada contoh berikut, ganti PROJECT_NUMBER dengan nomor projectGoogle Cloud project 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
    

Pastikan gcloud CLI sudah diupdate

Jika Anda akan menggunakan Google Cloud CLI, pastikan CLI tersebut sudah diupdate 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 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 Anda berjalan di lokal dan Anda akan terhubung ke pengelola kunci tersebut melalui konektivitas hibrida, Anda harus menggunakan jaringan mode kustom karena jaringan ini memberikan kontrol atas rentang alamat IP subnet.

Ikuti langkah-langkah berikut untuk menyiapkan VPC Anda:

  1. Mengaktifkan Akses Google Pribadi

    Pengelola kunci eksternal harus memverifikasi token OIDC yang ada di setiap permintaan. Untuk memverifikasi token, token perlu mengambil kunci publik OAuth2 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. Buat aturan firewall untuk mengizinkan masuk dan keluar TCP untuk port tempat pengelola kunci eksternal mendengarkan.

Menyiapkan konektivitas hybrid

Jika pengelola kunci eksternal berjalan di lokal, gunakan solusi konektivitas hybrid untuk menghubungkan VPC dengan jaringan lokal Anda. Setelah Anda 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 perlu mengambil kunci publik OAuth2 dari nama domain www.googleapis.com. Jika pengelola kunci 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. Konfigurasi firewall jaringan lokal atau peralatan serupa untuk mengizinkan traffic TCP di port tempat pengelola kunci eksternal memproses permintaan.

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

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 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 agar 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 eksternal Anda

Ikuti petunjuk dari penyedia EKM Anda untuk menyiapkan EKM.

Menyiapkan 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 Service Directory

Buat dan konfigurasi endpoint layanan Service Directory di project VPC Anda yang mengarah ke alamat IP dan port pribadi pengelola kunci eksternal Anda. Jika Anda menggunakan load balancer di depan beberapa replika EKM, gunakan alamat IP dan port load balancer. Pastikan kolom network endpoint layanan Service Directory Anda terisi.

Memberi otorisasi Cloud EKM untuk mengakses VPC Anda

Untuk setiap project kunci, Anda harus mengizinkan Cloud EKM mengakses VPC Anda atas nama project tersebut, meskipun project kunci dan project VPC sama. Dengan mengizinkan 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. Beri 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 ID dan nomor project, 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 Anda 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 Buat koneksi.

  3. Untuk Nama koneksi, masukkan nama untuk koneksi Anda.

  4. Untuk Region, pilih lokasi untuk koneksi EKM. Semua 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 Buat 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 eksternal Anda.

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

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

  9. Jika Anda memilih Cloud KMS untuk mode pengelolaan EKM, 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, centang kotak Tetapkan koneksi sebagai default. Jika koneksi EKM lain saat ini ditetapkan sebagai koneksi default untuk project dan lokasi ini, koneksi EKM ini akan menggantikan default yang ada.

  11. Klik Buat.

gcloud

Untuk menggunakan Cloud KMS di command line, Instal atau upgrade ke versi terbaru Google Cloud CLI terlebih dahulu.

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. Semua kunci Cloud KMS yang terkait dengan koneksi ini harus berada di lokasi yang sama dengan koneksi.
  • SERVICE_DIRECTORY_SERVICE: ID resource layanan Service Directory 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 Anda. Sertifikat harus dalam format DER.

Untuk membuat koneksi EKM bagi 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. Semua kunci Cloud KMS yang terkait dengan koneksi ini harus berada di lokasi yang sama dengan koneksi.
  • SERVICE_DIRECTORY_SERVICE: ID resource layanan Service Directory 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 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 mengetahui informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.

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

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 merepresentasikan sertifikat server leaf.
  • HOSTNAME: nama host pengelola kunci eksternal Anda.

Lihat dokumentasi API EkmConnection.create 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 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 telah habis dan tidak lagi valid. Sebaiknya perbarui sertifikat yang sudah habis masa berlakunya.
  • 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 KMS infrastructure.

    Buka infrastruktur KMS

  2. Klik nama koneksi EKM melalui 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 eksternal Anda. Sertifikat harus dalam format DER.

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

  6. Klik Perbarui koneksi untuk memperbarui koneksi EKM melalui VPC.

Menetapkan 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, kunci Cloud EKM by VPC baru yang dibuat di keyring 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 KMS infrastructure.

    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 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 ingin Anda tetapkan koneksi EKM defaultnya.
  • 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 berikutnya