Mengekspor log ke sistem SIEM

Halaman ini menjelaskan cara mengekspor log dari Google Distributed Cloud (GDC) dengan air gap ke sistem Security Information and Event Management (SIEM) eksternal. Integrasi ini memungkinkan analisis log terpusat dan pemantauan keamanan yang ditingkatkan.

Inti dari ekspor log melibatkan deployment resource kustom SIEMOrgForwarder. Resource ini berfungsi sebagai file konfigurasi, yang menentukan detail instance SIEM eksternal yang ditetapkan untuk menerima log. Dengan menentukan parameter ini dalam file SIEMOrgForwarder, administrator dapat membuat pipeline ekspor log yang efisien dan aman.

Sebelum memulai

Untuk mendapatkan izin yang Anda perlukan untuk mengelola resource kustom SIEMOrgForwarder, minta Admin Org IAM Anda untuk memberi Anda salah satu peran Org Ekspor SIEM terkait.

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

Setelah mendapatkan izin yang diperlukan, selesaikan langkah-langkah berikut sebelum mengekspor log ke sistem SIEM eksternal:

  1. Buat konektivitas: Pastikan ada koneksi antara GDC dan tujuan SIEM eksternal. Jika diperlukan, berkolaborasilah dengan Operator Infrastruktur (IO) untuk membuat koneksi uplink ke jaringan pelanggan Anda.

  2. Menetapkan variabel lingkungan: Tetapkan variabel lingkungan berikut untuk menjalankan perintah dari halaman ini:

    • Jalur file kubeconfig:

      export KUBECONFIG=KUBECONFIG_PATH
      

      Ganti KUBECONFIG_PATH dengan jalur ke file kubeconfig untuk server Management API.

    • Namespace project Anda:

      export PROJECT_NAMESPACE=PROJECT_NAMESPACE
      

Mengonfigurasi ekspor log

Buat secret dan resource kustom SIEMOrgForwarder di namespace yang sama. Anda dapat menggunakan namespace project apa pun. Setiap SIEMOrgForwarder mengekspor log platform dari semua cluster dalam organisasi, sehingga Anda tidak perlu membuat resource ini di project atau cluster lain.

Sebagai praktik terbaik, gunakan namespace platform-obs karena SIEMOrgForwarder hanya mengekspor log platform. Peran SIEM Export Org juga memberikan akses baca ke semua secret di namespace tempat peran tersebut diberikan, jadi minta Admin Org IAM Anda untuk memberikan peran ini hanya kepada Administrator Platform.

Mengekspor log ke sistem SIEM eksternal:

  1. Berikan token untuk menghubungkan stack logging ke sistem SIEM. Untuk melakukan tindakan ini, Anda harus membuat secret di namespace project untuk menyimpan token jika menggunakan Splunk dan sandi jika menggunakan Elastic SIEM:

    cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: SECRET_NAME
      namespace: ${PROJECT_NAMESPACE}
    type: Opaque
    stringData:
      SECRET_FIELD: FIELD_VALUE
    EOF
    

    Ganti kode berikut:

    • SECRET_NAME: nama secret Anda.
    • SECRET_FIELD: nama kolom tempat Anda ingin menyimpan secret. Untuk Elastic, gunakan nilai yang sama dengan HTTP_USER_NAME di resource kustom.
    • FIELD_VALUE: FIELD_VALUE adalah token untuk Splunk dan sandi untuk Elastic.
    • TOKEN: token Anda.
  2. Deploy resource kustom SIEMOrgForwarder di namespace project Anda. Anda harus menentukan jenis log dengan memilih antara log audit atau log operasional. Untuk mengonfigurasi ekspor log untuk kedua jenis log, Anda harus men-deploy resource SIEMOrgForwarder untuk setiap jenis.

    Contoh berikut menunjukkan cara menerapkan konfigurasi ke resource kustom SIEMOrgForwarder untuk Splunk:

      cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
      apiVersion: logging.gdc.goog/v1
      kind: SIEMOrgForwarder
      metadata:
        name: SIEM_ORG_FORWARDER
        namespace: ${PROJECT_NAMESPACE}
      spec:
        source: LOG_TYPE
        destinations:
          splunkOutputs:
            - host: SIEM_HOST
              token:
                name: SECRET_NAME
                field: SECRET_FIELD
              tls: "TLS"
              netConnectTimeout: NET_CONNECT_TIMEOUT
      EOF
    

    Ganti kode berikut:

    • SIEM_ORG_FORWARDER: nama file definisi SIEMOrgForwarder.
    • LOG_TYPE: jenis log yang Anda ekspor. Nilai yang diterima adalah audit dan operational.
    • SIEM_HOST: nama host SIEM.
    • SECRET_NAME: nama secret Anda.
    • SECRET_FIELD: nama kolom tempat Anda menyimpan secret.
    • TLS: status Transport Layer Security (TLS). Nilai yang diterima adalah "On" dan "Off".
    • NET_CONNECT_TIMEOUT: waktu maksimum dalam detik untuk menunggu koneksi dibuat. Misalnya, nilai 180 berarti menunggu 180 detik.

    Contoh berikut menunjukkan cara menerapkan konfigurasi ke resource kustom SIEMOrgForwarder untuk Elastic:

      cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
      apiVersion: logging.gdc.goog/v1
      kind: SIEMOrgForwarder
      metadata:
        name: SIEM_ORG_FORWARDER
        namespace: ${PROJECT_NAMESPACE}
      spec:
        source: LOG_TYPE
        destinations:
          elasticOutputs:
            - host: SIEM_HOST
              port: SIEM_PORT
              http_credential:
                http_user: HTTP_USER_NAME
                http_passwd: SECRET_NAME
              tls: "TLS"
              netConnectTimeout: NET_CONNECT_TIMEOUT
              index: INDEX
      EOF
    

    Ganti kode berikut:

    • SIEM_ORG_FORWARDER: nama file definisi SIEMOrgForwarder.
    • LOG_TYPE: jenis log yang Anda ekspor. Nilai yang diterima adalah audit dan operational.
    • SIEM_HOST: nama host SIEM.
    • SIEM_PORT: port instance SIEM.
    • HTTP_USER_NAME: nama pengguna instance SIEM. Nilai ini juga harus berupa kunci SECRET_FIELD dalam secret yang menyimpan sandi.
    • SECRET_NAME: nama secret Anda.
    • TLS: status Transport Layer Security (TLS). Nilai yang diterima adalah "On" dan "Off".
    • NET_CONNECT_TIMEOUT: waktu maksimum dalam detik untuk menunggu koneksi dibuat. Misalnya, nilai 180 berarti menunggu 180 detik.
    • INDEX: indeks untuk instance Elastic. Jika tidak ditentukan, jenis log (audit atau operational) akan digunakan. Kolom ini bersifat opsional.
  3. Verifikasi status resource kustom SIEMOrgForwarder yang di-deploy:

      kubectl --kubeconfig=${KUBECONFIG} describe siemorgforwarder/SIEM_ORG_FORWARDER \
          -n ${PROJECT_NAMESPACE}
    

    Menurut jenis log, periksa status berikut:

    • Log audit: Periksa status AuditLoggingReady.
    • Log operasional: Periksa status OperationalLoggingReady.