このページでは、Google Distributed Cloud(GDC)エアギャップから外部のセキュリティ情報およびイベント管理(SIEM)システムにログをエクスポートする方法について説明します。この統合により、ログ分析の一元化とセキュリティ モニタリングの強化が可能になります。
ログ エクスポートの中核は、SIEMOrgForwarder カスタム リソースのデプロイです。このリソースは構成ファイルとして機能し、ログを受信するように指定された外部 SIEM インスタンスの詳細を指定します。これらのパラメータを SIEMOrgForwarder ファイル内で定義することで、管理者は効率的で安全なログ エクスポート パイプラインを確立できます。
始める前に
SIEMOrgForwarder カスタム リソースの管理に必要な権限を取得するには、関連する SIEM Export 組織ロールのいずれかを付与するよう IAM 組織管理者に依頼してください。
必要なアクセスレベルと権限に応じて、プロジェクトの名前空間でこのリソースの作成者、編集者、閲覧者のロールを取得できます。詳細については、IAM 権限を準備するをご覧ください。
必要な権限を取得したら、外部 SIEM システムにログをエクスポートする前に、次の手順を完了します。
接続性を確立する: GDC と外部 SIEM 宛先の間に接続が存在することを確認します。必要に応じて、インフラストラクチャ オペレーター(IO)と協力して、お客様のネットワークへのアップリンク接続を確立します。
環境変数を設定する: このページからコマンドを実行するには、次の環境変数を設定します。
kubeconfig ファイルのパス:
export KUBECONFIG=KUBECONFIG_PATHKUBECONFIG_PATHは、Management API サーバーの kubeconfig ファイルのパスに置き換えます。プロジェクトの名前空間:
export PROJECT_NAMESPACE=PROJECT_NAMESPACE
ログのエクスポートを構成する
Secret と SIEMOrgForwarder カスタム リソースを同じ Namespace に作成します。任意のプロジェクト Namespace を使用できます。各 SIEMOrgForwarder は、組織内のすべてのクラスタからプラットフォーム ログをエクスポートするため、他のプロジェクトやクラスタにこれらのリソースを作成する必要はありません。
SIEMOrgForwarder はプラットフォーム ログのみをエクスポートするため、platform-obs Namespace を使用することをおすすめします。SIEM Export Org ロールは、付与された Namespace 内のすべてのシークレットに対する読み取りアクセス権も付与します。そのため、これらのロールはプラットフォーム管理者のみに付与するよう IAM 組織管理者に依頼してください。
ログを外部 SIEM システムにエクスポートする。
ロギング スタックを 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: トークン。
プロジェクトの名前空間に
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)が使用されます。このフィールドは省略可能です。
デプロイされた
SIEMOrgForwarderカスタム リソースのステータスを確認します。kubectl --kubeconfig=${KUBECONFIG} describe siemorgforwarder/SIEM_ORG_FORWARDER \ -n ${PROJECT_NAMESPACE}ログタイプに応じて、次のステータスを確認します。
- 監査ログ:
AuditLoggingReadyのステータスを確認します。 オペレーション ログ:
OperationalLoggingReadyステータスを確認します。
- 監査ログ: