ログを SIEM システムにエクスポートする

このページでは、Google Distributed Cloud(GDC)エアギャップから外部のセキュリティ情報およびイベント管理(SIEM)システムにログをエクスポートする方法について説明します。この統合により、ログ分析の一元化とセキュリティ モニタリングの強化が可能になります。

ログ エクスポートの中核は、SIEMOrgForwarder カスタム リソースのデプロイです。このリソースは構成ファイルとして機能し、ログを受信するように指定された外部 SIEM インスタンスの詳細を指定します。これらのパラメータを SIEMOrgForwarder ファイル内で定義することで、管理者は効率的で安全なログ エクスポート パイプラインを確立できます。

始める前に

SIEMOrgForwarder カスタム リソースの管理に必要な権限を取得するには、関連する SIEM Export 組織ロールのいずれかを付与するよう IAM 組織管理者に依頼してください。

必要なアクセスレベルと権限に応じて、プロジェクトの名前空間でこのリソースの作成者、編集者、閲覧者のロールを取得できます。詳細については、IAM 権限を準備するをご覧ください。

必要な権限を取得したら、外部 SIEM システムにログをエクスポートする前に、次の手順を完了します。

  1. 接続性を確立する: GDC と外部 SIEM 宛先の間に接続が存在することを確認します。必要に応じて、インフラストラクチャ オペレーター(IO)と協力して、お客様のネットワークへのアップリンク接続を確立します。

  2. 環境変数を設定する: このページからコマンドを実行するには、次の環境変数を設定します。

    • kubeconfig ファイルのパス:

      export KUBECONFIG=KUBECONFIG_PATH
      

      KUBECONFIG_PATH は、Management API サーバーの kubeconfig ファイルのパスに置き換えます。

    • プロジェクトの名前空間:

      export PROJECT_NAMESPACE=PROJECT_NAMESPACE
      

ログのエクスポートを構成する

Secret と SIEMOrgForwarder カスタム リソースを同じ Namespace に作成します。任意のプロジェクト Namespace を使用できます。各 SIEMOrgForwarder は、組織内のすべてのクラスタからプラットフォーム ログをエクスポートするため、他のプロジェクトやクラスタにこれらのリソースを作成する必要はありません。

SIEMOrgForwarder はプラットフォーム ログのみをエクスポートするため、platform-obs Namespace を使用することをおすすめします。SIEM Export Org ロールは、付与された Namespace 内のすべてのシークレットに対する読み取りアクセス権も付与します。そのため、これらのロールはプラットフォーム管理者のみに付与するよう IAM 組織管理者に依頼してください。

ログを外部 SIEM システムにエクスポートする。

  1. ロギング スタックを SIEM システムに接続するためのトークンを指定します。この操作を行うには、プロジェクトの名前空間に Secret を作成して、Splunk の場合はトークンを、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
    

    次のように置き換えます。

    • SECRET_NAME: Secret の名前。
    • SECRET_FIELD: シークレットを保存するフィールドの名前。Elastic の場合は、カスタム リソースの HTTP_USER_NAME と同じ値を使用します。
    • FIELD_VALUE: FIELD_VALUE は、Splunk の場合はトークン、Elastic の場合はパスワードです。
    • TOKEN: トークン。
  2. プロジェクトの名前空間に SIEMOrgForwarder カスタム リソースをデプロイします。監査ログまたはオペレーション ログのいずれかを選択して、ログタイプを指定する必要があります。両方のログタイプにログ エクスポートを構成するには、タイプごとに SIEMOrgForwarder リソースをデプロイする必要があります。

    次の例は、Splunk の SIEMOrgForwarder カスタム リソースに構成を適用する方法を示しています。

      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
    

    次のように置き換えます。

    • SIEM_ORG_FORWARDER: SIEMOrgForwarder 定義ファイルの名前。
    • LOG_TYPE: エクスポートするログタイプ。指定できる値は audit と operational です。
    • SIEM_HOST: SIEM ホストの名前。
    • SECRET_NAME: Secret の名前。
    • SECRET_FIELD: Secret を保存したフィールドの名前。
    • TLS: Transport Layer Security(TLS)のステータス。指定できる値は "On"、"Off" です。
    • NET_CONNECT_TIMEOUT: 接続が確立されるまで待機する最大時間(秒)。たとえば、値が 180 の場合、180 秒待機します。

    次の例は、Elastic の SIEMOrgForwarder カスタム リソースに構成を適用する方法を示しています。

      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
    

    次のように置き換えます。

    • SIEM_ORG_FORWARDER: SIEMOrgForwarder 定義ファイルの名前。
    • LOG_TYPE: エクスポートするログタイプ。指定できる値は audit と operational です。
    • SIEM_HOST: SIEM ホストの名前。
    • SIEM_PORT: SIEM インスタンスのポート。
    • HTTP_USER_NAME: SIEM インスタンスのユーザー名。この値は、パスワードを保存する Secret の SECRET_FIELD キーでもあります。
    • SECRET_NAME: Secret の名前。
    • TLS: Transport Layer Security(TLS)のステータス。指定できる値は "On"、"Off" です。
    • NET_CONNECT_TIMEOUT: 接続が確立されるまで待機する最大時間(秒)。たとえば、値が 180 の場合、180 秒待機します。
    • INDEX: Elastic インスタンスのインデックス。指定しない場合は、ログタイプ(audit または operational)が使用されます。このフィールドは省略可能です。
  3. デプロイされた SIEMOrgForwarder カスタム リソースのステータスを確認します。

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

    ログタイプに応じて、次のステータスを確認します。

    • 監査ログ: AuditLoggingReady のステータスを確認します。
    • オペレーション ログ: OperationalLoggingReady ステータスを確認します。