Datadog 로그 수집

다음에서 지원:

이 문서에서는 Datadog 로그를 Google Security Operations에 수집하는 방법을 설명합니다. Datadog은 애플리케이션, 인프라, 클라우드 서비스에서 측정항목, 트레이스, 로그를 수집하는 클라우드 기반 모니터링 및 분석 플랫폼입니다. Cloud Storage 또는 웹훅을 사용하여 Datadog 로그를 Google SecOps와 공유할 수 있습니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스
  • Datadog에 대한 권한 있는 사용자 액세스
  • Google Cloud 콘솔 액세스 (API 키 생성 또는 Cloud Storage 구성용)

옵션 1: Cloud Storage 구성을 통한 Datadog 로그 공유

Google Cloud으로 Datadog 통합 구성

Datadog의Google Cloud 통합을 설정합니다. 자세한 내용은 Datadog Google Cloud 통합 설정을 참고하세요.

Cloud Storage 버킷 만들기

  1. Google Cloud 콘솔에 로그인합니다.
  2. Cloud Storage 버킷 페이지로 이동합니다.

    버킷으로 이동

  3. 만들기를 클릭합니다.

  4. 버킷 만들기 페이지에서 버킷 정보를 입력합니다. 다음 각 단계를 완료한 후 계속을 클릭하여 다음 단계로 진행합니다.

    1. 시작하기 섹션에서 다음을 수행합니다.

      1. 버킷 이름 요구사항을 충족하는 고유한 이름을 입력합니다 (예: datadog-data).
      2. 계층적 네임스페이스를 사용 설정하려면 펼치기 화살표를 클릭하여 파일 지향 및 데이터 집약적인 워크로드에 최적화 섹션을 펼친 다음 이 버킷에서 계층적 네임스페이스 사용 설정을 선택합니다.

      3. 버킷 라벨을 추가하려면 펼치기 화살표를 클릭하여 라벨 섹션을 펼칩니다.

      4. 라벨 추가를 클릭하고 라벨의 키와 값을 지정합니다.

    2. 데이터 저장 위치 선택 섹션에서 다음을 수행합니다.

      1. 위치 유형을 선택합니다.
      2. 위치 유형 드롭다운을 사용하여 버킷 내 객체 데이터가 영구적으로 저장될 위치를 선택합니다.
    3. 데이터의 스토리지 클래스 선택 섹션에서 버킷의 기본 스토리지 클래스를 선택하거나, 버킷 데이터의 자동 스토리지 클래스 관리에 자동 클래스를 선택합니다.

    4. 객체 액세스를 제어하는 방식 선택 섹션에서 공개 액세스 방지를 적용하지 않도록 선택하고 버킷의 객체에 대한 액세스 제어 모델을 선택합니다.

    5. 객체 데이터 보호 방법 선택 섹션에서 다음을 수행합니다.

      1. 버킷에 설정할 데이터 보호 아래의 옵션을 선택합니다.
      2. 객체 데이터가 암호화되는 방식을 선택하려면 데이터 암호화라는 라벨이 표시된 펼치기 화살표를 클릭하고 데이터 암호화 방법을 선택합니다.
  5. 만들기를 클릭합니다.

Google Cloud 서비스 계정 만들기

  1. IAM 및 관리자 > 서비스 계정으로 이동합니다.
  2. 새 서비스 계정 만들기
  3. 설명이 포함된 이름을 지정합니다 (예: datadog-user).
  4. 이전 단계에서 만든 Cloud Storage 버킷에 스토리지 객체 관리자 역할을 서비스 계정에 부여합니다.
  5. 서비스 계정의 키를 만들고 키 유형으로 JSON을 선택합니다.
  6. 서비스 계정의 JSON 키 파일을 다운로드합니다. 이 파일을 안전하게 보관하세요.

Cloud Storage에 로그를 전송하도록 Datadog 구성

  1. 권한이 부여된 계정을 사용하여 Datadog에 로그인합니다.
  2. 로그 > 로그 전달로 이동합니다.
  3. + 새 보관 파일 만들기를 클릭합니다.
  4. Google Cloud Storage를 선택합니다.
  5. 필수 매개변수를 입력하고 저장을 클릭합니다.

Cloud Storage 버킷에서 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 피드 이름 필드에 피드 이름을 입력합니다(예: Datadog Logs GCS).
  5. 소스 유형으로 Google Cloud Storage V2를 선택합니다.
  6. 로그 유형으로 Datadog을 선택합니다.
  7. 서비스 계정 가져오기를 클릭하여 이 피드의 고유 서비스 계정을 가져옵니다.
  8. 이 서비스 계정에 이전에 만든 Cloud Storage 버킷에 대한 스토리지 객체 뷰어 역할을 부여합니다.
  9. 다음을 클릭합니다.
  10. 다음 입력 파라미터의 값을 지정합니다.
    • 스토리지 버킷 URI: gs://datadog-data 형식의 Cloud Storage 버킷 URI입니다.
    • 소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
    • 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
  11. 다음을 클릭합니다.
  12. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.

옵션 2: 웹훅 구성을 통한 Datadog 로그 공유

피드 설정

피드를 구성하려면 다음 단계를 따르세요.

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 피드 이름 필드에 피드 이름을 입력합니다(예: Datadog Logs).
  5. 소스 유형으로 웹훅을 선택합니다.
  6. 로그 유형으로 Datadog을 선택합니다.
  7. 다음을 클릭합니다.
  8. 선택사항: 다음 입력 파라미터의 값을 지정합니다.
    • 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예: \n).
  9. 다음을 클릭합니다.
  10. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
  11. 보안 비밀 키 생성을 클릭하여 이 피드를 인증하기 위한 보안 비밀 키를 생성합니다.
  12. 비밀 키를 복사하여 저장합니다. 이 보안 비밀 키는 다시 볼 수 없습니다. 필요한 경우 새 보안 비밀 키를 재생성할 수 있지만 이 작업으로 인해 이전 보안 비밀 키는 더 이상 사용할 수 없게 됩니다.
  13. 세부정보 탭의 엔드포인트 정보 필드에서 피드 엔드포인트 URL을 복사합니다. 클라이언트 애플리케이션에서 이 엔드포인트 URL을 지정해야 합니다.
  14. 완료를 클릭합니다.

웹훅 피드에 대한 API 키 만들기

  1. Google Cloud 콘솔 > 사용자 인증 정보로 이동합니다. 사용자 인증 정보로 이동
  2. 사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.
  3. Chronicle API에 대한 API 키 액세스를 제한합니다.

엔드포인트 URL 지정

  1. 클라이언트 애플리케이션에서 웹훅 피드에 제공된 HTTPS 엔드포인트 URL을 지정합니다.
  2. 다음 형식의 커스텀 헤더의 일부로 API 키와 보안 비밀 키를 지정하여 인증을 사용 설정합니다.

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    권장사항: URL에 지정하는 대신 API 키를 헤더로 지정하세요.

  3. 웹훅 클라이언트가 커스텀 헤더를 지원하지 않는 경우 쿼리 매개변수를 다음 형식으로 사용하여 API 키와 보안 비밀 키를 지정할 수 있습니다.

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    다음을 바꿉니다.

    • ENDPOINT_URL: 피드 엔드포인트 URL입니다.
    • API_KEY: Google Security Operations에 인증하기 위한 API 키입니다.
    • SECRET: 피드를 인증하기 위해 생성한 보안 비밀 키입니다.

웹훅으로 로그를 전송하도록 Datadog 구성

  1. 권한이 부여된 계정을 사용하여 Datadog에 로그인합니다.
  2. 로그 > 로그 전달로 이동합니다.
  3. 맞춤 대상을 선택합니다.
  4. + 새 대상 만들기를 클릭합니다.
  5. 다음 입력 파라미터의 값을 지정합니다.
    • 대상 유형 선택: HTTP를 선택합니다.
    • 대상 이름 지정: 웹훅의 설명이 포함된 이름을 입력합니다 (예: Google SecOps Webhook).
    • 대상 구성: 피드 ENDPOINT_URL을 붙여넣습니다. 다음 인증 옵션 중 하나를 선택합니다 (둘 다 선택하지 않음).
      • 옵션 A (권장): URL에서 사용자 인증 정보를 삭제하고 API_KEYSECRET을 커스텀 헤더로 전달합니다 (다음 단계에서 구성).
      • 옵션 B: ENDPOINT_URL?key=API_KEY&secret=SECRET 형식으로 URL에 사용자 인증 정보를 쿼리 매개변수로 추가합니다. 클라이언트가 맞춤 헤더를 전송할 수 없는 경우에만 사용하세요.
    • 인증 설정 구성: Datadog에서 대상을 저장하려면 하나 이상의 인증 헤더가 필요합니다. 다음 헤더를 추가합니다. 웹훅 엔드포인트는 이를 무시하므로 요청에 영향을 미치지 않습니다.
      • 헤더 이름: Authorization
      • 헤더 값: application/json
  6. 저장을 클릭합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
additional_field additional.fields 병합됨
anonymous_label additional.fields 병합됨
as_domain_label additional.fields 병합됨
as_name_label additional.fields 병합됨
as_number_label additional.fields 병합됨
as_type_label additional.fields 병합됨
auth_method_label additional.fields 병합됨
category_label additional.fields 병합됨
emitted_source_label additional.fields 병합됨
event_type_label additional.fields 병합됨
geo_continent_code_label additional.fields 병합됨
geo_continent_label additional.fields 병합됨
geo_continent_name_label additional.fields 병합됨
geo_country_code_label additional.fields 병합됨
geo_latitude_label additional.fields 병합됨
geo_longitude_label additional.fields 병합됨
geo_subdivision_code_label additional.fields 병합됨
geo_subdivision_name_label additional.fields 병합됨
geo_timezone_label additional.fields 병합됨
http_level_label additional.fields 병합됨
indicator_label additional.fields 병합됨
indicators_matched_label additional.fields 병합됨
infrastructure_label additional.fields 병합됨
intention_label additional.fields 병합됨
iso_code_label additional.fields 병합됨
new_template_variable_name_label additional.fields 병합됨
new_template_variable_preset_name_label additional.fields 병합됨
new_template_variable_value_label additional.fields 병합됨
new_widget_definition_background_color_label additional.fields 병합됨
new_widget_definition_layout_type_label additional.fields 병합됨
new_widget_definition_show_title_label additional.fields 병합됨
new_widget_definition_title_label additional.fields 병합됨
new_widget_definition_type_label additional.fields 병합됨
new_widget_id_label additional.fields 병합됨
new_widget_layout_height_label additional.fields 병합됨
new_widget_layout_width_label additional.fields 병합됨
new_widget_layout_x_label additional.fields 병합됨
new_widget_layout_y_label additional.fields 병합됨
record_attributes_asset_id_label additional.fields 병합됨
record_attributes_asset_name_label additional.fields 병합됨
record_attributes_asset_new_value_dashboard_definition_author_handle_label additional.fields 병합됨
record_attributes_asset_new_value_dashboard_definition_author_name_label additional.fields 병합됨
record_attributes_asset_new_value_dashboard_definition_description_label additional.fields 병합됨
record_attributes_asset_new_value_dashboard_definition_id_label additional.fields 병합됨
record_attributes_asset_new_value_dashboard_definition_reflow_type_label additional.fields 병합됨
record_attributes_asset_new_value_dashboard_definition_title_label additional.fields 병합됨
record_attributes_asset_new_value_dashboard_definition_url_label additional.fields 병합됨
record_attributes_asset_prev_value_dashboard_definition_author_handle_label additional.fields 병합됨
record_attributes_asset_prev_value_dashboard_definition_author_name_label additional.fields 병합됨
record_attributes_asset_prev_value_dashboard_definition_description_label additional.fields 병합됨
record_attributes_asset_prev_value_dashboard_definition_id_label additional.fields 병합됨
record_attributes_asset_prev_value_dashboard_definition_reflow_type_label additional.fields 병합됨
record_attributes_asset_prev_value_dashboard_definition_title_label additional.fields 병합됨
record_attributes_asset_prev_value_dashboard_definition_url_label additional.fields 병합됨
record_attributes_asset_type_label additional.fields 병합됨
record_attributes_contextMap_cfRay_label additional.fields 병합됨
record_attributes_contextMap_tradingAccountId_label additional.fields 병합됨
record_attributes_evt_name_label additional.fields 병합됨
record_attributes_network_client_geoip_as_number_label additional.fields 병합됨
record_attributes_network_client_geoip_as_type_label additional.fields 병합됨
record_attributes_network_client_geoip_location_latitude_label additional.fields 병합됨
record_attributes_network_client_geoip_location_longitude_label additional.fields 병합됨
record_attributes_network_client_geoip_subdivision_iso_code_label additional.fields 병합됨
record_attributes_network_client_geoip_subdivision_name_label additional.fields 병합됨
record_attributes_network_client_geoip_timezone_label additional.fields 병합됨
record_trace_id_label additional.fields 병합됨
request_id_label additional.fields 병합됨
risk_label additional.fields 병합됨
service_label additional.fields 병합됨
source_name_label additional.fields 병합됨
source_type_label additional.fields 병합됨
source_url_label additional.fields 병합됨
span_id_label additional.fields 병합됨
symbol_label additional.fields 병합됨
tag_label additional.fields 병합됨
template_variable_name_label additional.fields 병합됨
template_variable_preset_name_label additional.fields 병합됨
template_variable_value_label additional.fields 병합됨
timezone_label additional.fields 병합됨
tunnels_operator_label additional.fields 병합됨
tunnels_type_label additional.fields 병합됨
type_label additional.fields 병합됨
type_label1 additional.fields 병합됨
url_details_host_label additional.fields 병합됨
url_details_path_label additional.fields 병합됨
user_created_timestamp_label additional.fields 병합됨
widget_definition_background_color_label additional.fields 병합됨
widget_definition_layout_type_label additional.fields 병합됨
widget_definition_show_title_label additional.fields 병합됨
widget_definition_title_label additional.fields 병합됨
widget_definition_type_label additional.fields 병합됨
widget_id_label additional.fields 병합됨
widget_layout_height_label additional.fields 병합됨
widget_layout_width_label additional.fields 병합됨
widget_layout_x_label additional.fields 병합됨
widget_layout_y_label additional.fields 병합됨
eventMessage metadata.description 직접 매핑됨
date1 metadata.event_timestamp ISO8601로 파싱됨
record.date1 metadata.event_timestamp ISO8601로 파싱됨
event_type metadata.event_type 직접 매핑됨
has_principal metadata.event_type 매핑됨: trueNETWORK_CONNECTION, trueSTATUS_UPDATE
has_user metadata.event_type 매핑됨: trueUSER_UNCATEGORIZED
attributes._trace.origin.operation metadata.product_event_type 직접 매핑됨
eventType metadata.product_event_type 직접 매핑됨
record_attributes_contextMap_eventType metadata.product_event_type 직접 매핑됨
source metadata.product_event_type 직접 매핑됨
_id metadata.product_log_id 직접 매핑됨
record_attributes_thread_id metadata.product_log_id 직접 매핑됨
threadID metadata.product_log_id 직접 매핑됨
service metadata.product_name 직접 매핑됨
attributes.@version metadata.product_version 직접 매핑됨
attributes.http.method network.http.method 직접 매핑됨
agnt network.http.parsed_user_agent 직접 매핑됨
record_attributes_contextMap_userAgent network.http.parsed_user_agent 직접 매핑됨
attributes.http.status_code network.http.response_code 이름이 변경됨/매핑됨
agnt network.http.user_agent 직접 매핑됨
attributes.http.useragent network.http.user_agent 직접 매핑됨
record_attributes_contextMap_userAgent network.http.user_agent 직접 매핑됨
attributes.logger_name principal.application 직접 매핑됨
service principal.application 직접 매핑됨
attributes._trace.baggage.device_id principal.asset.asset_id 직접 매핑됨
attributes.metadata.host_metadata.hostname principal.asset.hostname 직접 매핑됨
attributes.usr.id principal.asset.hostname 직접 매핑됨
attributes.network.client.geoip.ipAddress principal.asset.ip 병합됨
attributes.network.client.ip principal.asset.ip 병합됨
ip1 principal.asset.ip 병합됨
ipAddress principal.asset.ip 직접 매핑됨
principal_ip_address principal.asset.ip 병합됨
record_attributes_network_client_ip principal.asset.ip 병합됨
org principal.group.group_display_name 직접 매핑됨
attributes.org.uuid principal.group.product_object_id 직접 매핑됨
attributes.metadata.host_metadata.hostname principal.hostname 직접 매핑됨
attributes.usr.id principal.hostname 직접 매핑됨
host principal.hostname 직접 매핑됨
record_host principal.hostname 직접 매핑됨
attributes.network.client.geoip.ipAddress principal.ip 병합됨
attributes.network.client.ip principal.ip 병합됨
ip1 principal.ip 병합됨
ipAddress principal.ip 직접 매핑됨
principal_ip_address principal.ip 병합됨
record_attributes_network_client_ip principal.ip 병합됨
record_attributes_http_url_details_host_label principal.labels 병합됨
record_attributes_http_url_details_path_label principal.labels 병합됨
record_attributes_http_useragent_label principal.labels 병합됨
record_attributes_network_client_geoip_as_domain_label principal.labels 병합됨
record_attributes_network_client_geoip_as_route_label principal.labels 병합됨
record_attributes_network_client_geoip_city_name_label principal.labels 병합됨
record_attributes_network_client_geoip_continent_code_label principal.labels 병합됨
record_attributes_network_client_geoip_continent_name_label principal.labels 병합됨
record_attributes_network_client_geoip_country_iso_code_label principal.labels 병합됨
record_attributes_network_client_geoip_country_name_label principal.labels 병합됨
record_attributes_usr_id_label principal.labels 병합됨
attributes.network.client.geoip.city.name principal.location.city 직접 매핑됨
attributes.network.client.geoip.country.name principal.location.country_or_region 직접 매핑됨
port principal.port 이름이 변경됨/매핑됨
client_as_route_label principal.resource.attribute.labels 병합됨
client_type_label principal.resource.attribute.labels 병합됨
org_name_label principal.resource.attribute.labels 병합됨
record_attributes_usr_uuid_label principal.user.attribute.labels 병합됨
roles principal.user.attribute.roles 병합됨
attributes.usr.email principal.user.email_addresses 병합됨
email_id principal.user.email_addresses 병합됨
record_attributes_usr_email principal.user.email_addresses 병합됨
attributes.evt.actor.type principal.user.role_name 직접 매핑됨
attributes.metadata.user_uuid principal.user.userid 직접 매핑됨
attributes.usr.uuid principal.user.userid 직접 매핑됨
record_attributes_contextMap_user principal.user.userid 직접 매핑됨
user principal.user.userid 직접 매핑됨
BusArch_label security_result.about.resource.attribute.labels 병합됨
CANDBVersion_label security_result.about.resource.attribute.labels 병합됨
alert_label security_result.about.resource.attribute.labels 병합됨
caller_label security_result.about.resource.attribute.labels 병합됨
component_label security_result.about.resource.attribute.labels 병합됨
esn_label security_result.about.resource.attribute.labels 병합됨
ftcpVersion_label security_result.about.resource.attribute.labels 병합됨
ingestMessageId_label security_result.about.resource.attribute.labels 병합됨
label security_result.about.resource.attribute.labels 병합됨
level_label security_result.about.resource.attribute.labels 병합됨
msg_label security_result.about.resource.attribute.labels 병합됨
query_label security_result.about.resource.attribute.labels 병합됨
redactedVin_label security_result.about.resource.attribute.labels 병합됨
updated_query_label security_result.about.resource.attribute.labels 병합됨
vehicleId_label security_result.about.resource.attribute.labels 병합됨
category1 security_result.category_details 병합됨
_id_label security_result.detection_fields 병합됨
action_label security_result.detection_fields 병합됨
org_uuid_label security_result.detection_fields 병합됨
record_attributes_http_method_label security_result.detection_fields 병합됨
record_message_label security_result.detection_fields 병합됨
record_source_label security_result.detection_fields 병합됨
record_status_label security_result.detection_fields 병합됨
status security_result.severity 매핑됨: "INFO", "DEBUG", "debug", "info"LOW, (?i)WARNMEDIUM
status security_result.severity_details 직접 매핑됨
context.AlertName security_result.threat_name 직접 매핑됨
src_ip_address src.ip 병합됨
record_attributes_contextMap_dd_service target.application 직접 매핑됨
target_ip_address target.asset.ip 매핑됨: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$target_ip_address
target_ip_address target.ip 매핑됨: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$target_ip_address
record_attributes_contextMap_dd_version target.platform_version 직접 매핑됨
logger_fqcn_label target.resource.attribute.labels 병합됨
logger_label target.resource.attribute.labels 병합됨
modified_fields_label target.resource.attribute.labels 병합됨
asset_name target.resource.name 직접 매핑됨
asset_id target.resource.product_object_id 직접 매핑됨
asset_type target.resource.type 직접 매핑됨
record_attributes_contextMap_dd_env target.resource.type 직접 매핑됨
record_attributes_contextMap_userId target.user.userid 직접 매핑됨
record_attributes_user target.user.userid 직접 매핑됨
해당 사항 없음 metadata.event_type 상수: NETWORK_CONNECTION
해당 사항 없음 network.http.parsed_user_agent 상수: parseduseragent
해당 사항 없음 security_result.severity 상수: LOW

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.