Mengenkripsi metrik dari aplikasi Anda

Semua data metrik harus dienkripsi saat dalam pengiriman untuk memastikan keamanan. Komponen pemantauan perangkat dengan air gap Google Distributed Cloud (GDC) menyediakan enkripsi dan autentikasi saat transit melalui mutual Transport Layer Security (mTLS). Metode mTLS memverifikasi identitas kedua pihak dalam koneksi jaringan, yang mengonfirmasi bahwa mereka adalah orang yang mereka klaim.

Halaman ini menjelaskan cara menyiapkan mTLS untuk server metrik Anda.

Sebelum memulai

Untuk mendapatkan izin yang Anda perlukan untuk mengelola MonitoringTargetresource kustom, minta Admin IAM Organisasi atau Admin IAM Project Anda untuk memberi Anda salah satu MonitoringTargetperan terkait.

Bergantung pada tingkat akses dan izin yang Anda perlukan, Anda mungkin mendapatkan peran pembuat, editor, atau pelihat untuk resource ini di organisasi atau project. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan izin IAM.

Setelah mendapatkan izin yang diperlukan, selesaikan langkah-langkah berikut sebelum mengaktifkan enkripsi metrik:

  1. Deploy server metrik Anda.
  2. Kumpulkan metrik dari beban kerja Anda.
  3. Pastikan resource kustom MonitoringTarget Anda menampilkan status Ready, seperti dalam contoh berikut:

    apiVersion: monitoring.gdc.goog/v1
    kind: MonitoringTarget
    [...]
    status:
      conditions:
      - lastTransitionTime: "2023-10-27T15:27:51Z"
        message: ""
        observedGeneration: 1
        reason: Ready
        status: True
        type: Ready
    
  4. Buat kueri dan lihat metrik di dasbor untuk mengonfirmasi bahwa server metrik Anda mengirimkan data yang diharapkan.

Pasang sertifikat

Workload Anda harus menggunakan sertifikat yang dibuat secara otomatis saat Anda mengaktifkan mTLS di resource kustom MonitoringTarget. Tambahkan volume dan pemasangan volume untuk sertifikat ini menggunakan template berikut:

apiVersion: apps/v1
kind: Deployment # or StatefulSet
metadata:
  name: "SERVICE_NAME"
spec:
  template:
    spec:
      containers:
        - name: "CONTAINER_NAME"
          volumeMounts:
          - mountPath: "/etc/ssl/MONITORING_TARGET_NAME-cert"
            name: "MONITORING_TARGET_NAME-cert"
            readOnly: true
      volumes:
      - name: "MONITORING_TARGET_NAME-cert"
        secret:
          secretName: "MONITORING_TARGET_NAME-cert"
  [...]

Ganti kode berikut:

  • SERVICE_NAME: nama objek Deployment atau StatefulSet Anda.
  • CONTAINER_NAME: nama container tempat Anda menambahkan pemasangan volume.
  • MONITORING_TARGET_NAME: nama resource kustom MonitoringTarget. Nama rahasia didasarkan pada nama ini. Misalnya, resource my-mon-target membuat nama rahasia my-mon-target-cert.

Metrik penayangan

Server metrik Anda harus menayangkan metrik dari server HTTP yang mendukung mTLS. Anda mungkin ingin mengenkripsi metrik dalam salah satu dari dua skenario berikut:

  • Untuk aplikasi yang Anda miliki: Ubah kode sumber untuk mendukung mTLS dan konfigurasi server metrik dengan sertifikat mTLS.
  • Untuk aplikasi yang bukan milik Anda: Lihat dokumentasi aplikasi untuk mengaktifkan endpoint metrik HTTPS. Terapkan konfigurasi yang diperlukan, seperti mengonfigurasi argumen command line atau men-deploy file config.

Mengaktifkan pengumpulan metrik mTLS

Tambahkan label berikut ke bagian metadata dari resource kustom MonitoringTarget untuk mengaktifkan pengumpulan metrik terenkripsi:

monitoring.gdc.goog/enable-mtls: "true"

Resource kustom harus terlihat seperti contoh berikut:

  apiVersion: monitoring.gdc.goog/v1
  kind: MonitoringTarget
  metadata:
    namespace: my-project-namespace
    name: "SERVICE_NAME"
    labels:
      monitoring.gdc.goog/enable-mtls: "true" # Enable mTLS metrics collection
  spec:
    [...]

Untuk memverifikasi bahwa Anda telah mengaktifkan autentikasi mTLS, periksa apakah resource kustom MonitoringTarget Anda menampilkan status Ready untuk sertifikat dan secret sertifikat, seperti dalam contoh berikut:

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
[...]
status:
  conditions:
  - lastTransitionTime: "2023-11-09T11:15:10Z"
    message: "admin,user-vm-1,user-vm-2,org-1-system"
    observedGeneration: 2
    reason: Ready
    status: "True"
    type: Ready
  - lastTransitionTime: "2023-11-09T11:14:43Z"
    message: "Certificate is ready"
    observedGeneration: 2
    reason: Ready
    status: "True"
    type: CertificateReady
  - lastTransitionTime: "2023-11-09T11:15:10Z"
    message: "Successfully created secret"
    observedGeneration: 2
    reason: Ready
    status: "True"
    type: CertificateSecretReady