이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭에서 외부 보안 정보 및 이벤트 관리 (SIEM) 시스템으로 로그를 내보내는 방법을 설명합니다. 이 통합을 통해 중앙 집중식 로깅 및 향상된 보안 모니터링이 가능합니다.
로그 내보내기의 핵심은 SIEMOrgForwarder 커스텀 리소스를 배포하는 것입니다.
이 리소스는 로그를 수신하도록 지정된 외부 SIEM 인스턴스의 세부정보를 지정하는 구성 파일 역할을 합니다. SIEMOrgForwarder 파일 내에서 이러한 매개변수를 정의하면 관리자가 간소화되고 안전한 로그 내보내기 파이프라인을 설정할 수 있습니다.
시작하기 전에
SIEMOrgForwarder 커스텀 리소스를 관리하는 데 필요한 권한을 얻으려면 IAM 조직 관리자에게 연결된 SIEM 내보내기 조직 역할 중 하나를 부여해 달라고 요청하세요.
필요한 액세스 및 권한 수준에 따라 프로젝트 네임스페이스에서 이 리소스에 대한 생성자, 편집자 또는 뷰어 역할을 얻을 수 있습니다. 자세한 내용은 IAM 권한 준비를 참조하세요.
필요한 권한을 얻은 후 외부 SIEM 시스템으로 로그를 내보내기 전에 다음 단계를 완료합니다.
연결 설정: GDC와 외부 SIEM 대상 간에 연결이 있는지 확인합니다. 필요한 경우 인프라 운영자 (IO)와 협력하여 고객 네트워크에 대한 업링크 연결을 설정합니다.
환경 변수 설정: 이 페이지에서 명령어를 실행하도록 다음 환경 변수를 설정합니다.
kubeconfig 파일의 경로:
export KUBECONFIG=KUBECONFIG_PATHKUBECONFIG_PATH를 Management API 서버의 kubeconfig 파일 경로로 바꿉니다.프로젝트 네임스페이스:
export PROJECT_NAMESPACE=PROJECT_NAMESPACE
로그 내보내기 구성
동일한 네임스페이스에 보안 비밀과 SIEMOrgForwarder 커스텀 리소스를 만듭니다. 모든 프로젝트 네임스페이스를 사용할 수 있습니다. 각 SIEMOrgForwarder는 조직의 모든 클러스터에서 플랫폼 로그를 내보내므로 다른 프로젝트나 클러스터에서 이러한 리소스를 만들 필요가 없습니다.
SIEMOrgForwarder는 플랫폼 로그만 내보내므로 platform-obs 네임스페이스를 사용하는 것이 좋습니다. SIEM 내보내기 조직 역할은 부여된 네임스페이스의 모든 보안 비밀에 대한 읽기 액세스 권한도 부여하므로 IAM 조직 관리자에게 이러한 역할을 플랫폼 관리자에게만 부여하도록 요청하세요.
외부 SIEM 시스템으로 로그 내보내기:
로깅 스택을 SIEM 시스템에 연결하는 토큰을 제공합니다. 이 작업을 수행하려면 프로젝트 네임스페이스에 보안 비밀을 만들어 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_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_FIELD: 보안 비밀을 저장한 필드의 이름입니다.TLS: 전송 계층 보안(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_FIELD키여야 합니다.SECRET_NAME: 보안 비밀의 이름입니다.TLS: 전송 계층 보안(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상태를 확인합니다.
- 감사 로그: