InfoGrab Docs

Datadog으로 Teleport 감사 이벤트 내보내기

요약

Teleport의 Event Handler 플러그인은 Teleport Auth Service에서 감사 이벤트를 받아 로그 관리 솔루션으로 전달하여, 과거 분석, 비정상적인 동작 감지, 사용자가 Teleport 클러스터와 상호작용하는 방식에 대한 더 나은 이해를 가...

Teleport의 Event Handler 플러그인은 Teleport Auth Service에서 감사 이벤트를 받아 로그 관리 솔루션으로 전달하여, 과거 분석, 비정상적인 동작 감지, 사용자가 Teleport 클러스터와 상호작용하는 방식에 대한 더 나은 이해를 가능하게 합니다.

Datadog은 SaaS 모니터링 및 보안 플랫폼입니다. 이 가이드에서는 Fluentd를 사용하여 Teleport 감사 이벤트를 Datadog으로 전달하는 방법을 설명합니다.

작동 방식#

Teleport Event Handler는 Teleport Auth Service에 인증하여 gRPC 스트림을 통해 감사 이벤트를 수신한 후, 상호 TLS를 통해 설정된 보안 채널을 통해 해당 이벤트를 JSON 페이로드로 Fluentd에 전송합니다:

이 가이드에 표시된 설정의 아키텍처

Datadog 에이전트는 원격 소스에서 로그를 TCP 또는 UDP 연결을 통해 JSON 인코딩된 바이트로만 수신할 수 있으므로, Teleport Event Handler는 Datadog 에이전트를 사용하지 않고 HTTPS 페이로드를 전송해야 합니다. Fluentd는 Datadog API에 대한 인증을 처리합니다.

사전 요구사항#

  • Datadog 계정.
  • Fluentd 버전 v[fluentd.version] 이상. Teleport Event Handler는 기존 Fluentd 시스템에 통합하거나 새로운 설정과 함께 사용할 수 있는 새 fluent.conf 파일을 생성합니다.
  • Teleport Event Handler 플러그인을 실행할 서버, 가상 머신, Kubernetes 클러스터 또는 Docker 환경.

이 가이드는 Event Handler 설정 가이드 중 하나를 완료했다고 가정합니다:

아래 지침은 워크스테이션에서 Event Handler 플러그인을 로컬로 테스트하는 방법을 보여줍니다. 다른 환경에서는 경로, 포트 및 도메인을 조정해야 합니다.

1/2단계. Datadog용 Fluentd 출력 플러그인 설치#

Fluentd가 Datadog과 통신하려면 Fluentd output plugin for Datadog이 필요합니다. gem 또는 설치된 경우 td-agent를 사용하여 Fluentd 호스트에 플러그인을 설치합니다:

# Using Gem
$ gem install fluent-plugin-datadog

# Using td-agent
$ /usr/sbin/td-agent-gem install fluent-plugin-datadog
로컬에서 테스트하는 경우?

테스트를 위해 로컬 Docker 컨테이너에서 Fluentd를 실행하는 경우, 진입점을 루트 사용자의 대화형 셸로 조정하여 Fluentd를 시작하기 전에 플러그인을 설치할 수 있습니다:

$ docker run -u $(id -u root):$(id -g root) -p 8888:8888 -v $(pwd):/keys -v \
$(pwd)/fluent.conf:/fluentd/etc/fluent.conf --entrypoint=/bin/sh -i --tty  fluent/fluentd:edge
# From the container shell:
$ gem install fluent-plugin-datadog
$ fluentd -c /fluentd/etc/fluent.conf

Fluentd 구성#

사전 요구사항 설정 가이드에서 생성된 fluent.conf 파일을 수정합니다.

  1. Datadog을 방문하여 Datadog 문서에 따라 Fluentd용 API 키를 생성합니다.

  2. API 키를 복사하여 fluent.conf에 새 <match> 블록을 추가합니다:

    <match test.log>
    
      @type datadog
      @id awesome_agent
      api_key (=presets.tokens.first=)
    
      host http-intake.logs.us5.datadoghq.com
    
      # Optional parameters
      dd_source teleport
    
    </match>
    
  3. 구성을 다음과 같이 편집합니다:

    • api_key 필드에 API 키를 추가합니다.
    • host 값을 Datadog 사이트에 맞게 조정합니다. 올바른 값을 확인하려면 Datadog Log Collection and Integrations 가이드를 참조하세요.
    • dd_source는 Datadog UI에서 이 로그를 필터링하는 데 사용할 수 있는 선택적 필드입니다.
    • ca_path, cert_pathprivate_key_path를 사전 요구사항 설정 가이드에서 생성된 자격 증명 파일을 가리키도록 조정합니다. 로컬에서 테스트하는 경우, 위의 Docker 명령이 이미 현재 작업 디렉터리를 컨테이너의 keys/에 마운트했습니다.
  4. fluent.conf에 변경 사항을 저장한 후 Fluentd를 재시작합니다.

2/2단계. Event Handler 플러그인 실행#

이 섹션에서는 생성한 Event Handler 구성을 수정하고 Event Handler를 실행하여 구성을 테스트합니다.

Event Handler 구성#

설치 방법에 따라 Event Handler 구성을 편집합니다.

다음 필드를 업데이트합니다.

Note

이 섹션의 내용은 원문 문서를 참조하세요. (finish-event-handler-fields.mdx)

Event Handler 시작#

Note

이 섹션의 내용은 원문 문서를 참조하세요. (start-event-handler.mdx)

Datadog의 Logs 뷰에 이제 Teleport 클러스터 이벤트가 표시됩니다:

Datadog Logs

연결 문제 해결#

Teleport Event Handler가 Teleport 클러스터에 연결하는 동안 오류 로그를 표시하는 경우 다음을 확인하세요:

  • Teleport Event Handler가 Teleport 클러스터에 연결하는 데 사용하는 인증서가 만료 날짜를 지나지 않았는지 확인합니다. 이는 tctl auth sign 명령의 --ttl 플래그 값으로, 기본적으로 12시간입니다.
  • Teleport Event Handler 구성 파일에서 Teleport Proxy Service에 대한 올바른 호스트 포트를 제공했는지 확인합니다.
  • Teleport Event Handler를 시작하기 전에 Fluentd 컨테이너를 먼저 시작합니다. Event Handler는 시작 시 즉시 Fluentd에 연결을 시도합니다.

다음 단계#

  • Datadog으로 들어오는 로그 형식을 사용자 지정하는 방법을 알아보려면 Fluentd output plugin for Datadog README 파일을 검토하세요.
  • teleport-plugin-event-handler Helm 차트의 values 파일에서 설정할 수 있는 모든 옵션을 보려면 참조 가이드를 참조하세요.

Datadog으로 Teleport 감사 이벤트 내보내기

원문 보기
요약

Teleport의 Event Handler 플러그인은 Teleport Auth Service에서 감사 이벤트를 받아 로그 관리 솔루션으로 전달하여, 과거 분석, 비정상적인 동작 감지, 사용자가 Teleport 클러스터와 상호작용하는 방식에 대한 더 나은 이해를 가...

Teleport의 Event Handler 플러그인은 Teleport Auth Service에서 감사 이벤트를 받아 로그 관리 솔루션으로 전달하여, 과거 분석, 비정상적인 동작 감지, 사용자가 Teleport 클러스터와 상호작용하는 방식에 대한 더 나은 이해를 가능하게 합니다.

Datadog은 SaaS 모니터링 및 보안 플랫폼입니다. 이 가이드에서는 Fluentd를 사용하여 Teleport 감사 이벤트를 Datadog으로 전달하는 방법을 설명합니다.

작동 방식#

Teleport Event Handler는 Teleport Auth Service에 인증하여 gRPC 스트림을 통해 감사 이벤트를 수신한 후, 상호 TLS를 통해 설정된 보안 채널을 통해 해당 이벤트를 JSON 페이로드로 Fluentd에 전송합니다:

이 가이드에 표시된 설정의 아키텍처

Datadog 에이전트는 원격 소스에서 로그를 TCP 또는 UDP 연결을 통해 JSON 인코딩된 바이트로만 수신할 수 있으므로, Teleport Event Handler는 Datadog 에이전트를 사용하지 않고 HTTPS 페이로드를 전송해야 합니다. Fluentd는 Datadog API에 대한 인증을 처리합니다.

사전 요구사항#

  • Datadog 계정.
  • Fluentd 버전 v[fluentd.version] 이상. Teleport Event Handler는 기존 Fluentd 시스템에 통합하거나 새로운 설정과 함께 사용할 수 있는 새 fluent.conf 파일을 생성합니다.
  • Teleport Event Handler 플러그인을 실행할 서버, 가상 머신, Kubernetes 클러스터 또는 Docker 환경.

이 가이드는 Event Handler 설정 가이드 중 하나를 완료했다고 가정합니다:

아래 지침은 워크스테이션에서 Event Handler 플러그인을 로컬로 테스트하는 방법을 보여줍니다. 다른 환경에서는 경로, 포트 및 도메인을 조정해야 합니다.

1/2단계. Datadog용 Fluentd 출력 플러그인 설치#

Fluentd가 Datadog과 통신하려면 Fluentd output plugin for Datadog이 필요합니다. gem 또는 설치된 경우 td-agent를 사용하여 Fluentd 호스트에 플러그인을 설치합니다:

# Using Gem
$ gem install fluent-plugin-datadog

# Using td-agent
$ /usr/sbin/td-agent-gem install fluent-plugin-datadog
로컬에서 테스트하는 경우?

테스트를 위해 로컬 Docker 컨테이너에서 Fluentd를 실행하는 경우, 진입점을 루트 사용자의 대화형 셸로 조정하여 Fluentd를 시작하기 전에 플러그인을 설치할 수 있습니다:

$ docker run -u $(id -u root):$(id -g root) -p 8888:8888 -v $(pwd):/keys -v \
$(pwd)/fluent.conf:/fluentd/etc/fluent.conf --entrypoint=/bin/sh -i --tty  fluent/fluentd:edge
# From the container shell:
$ gem install fluent-plugin-datadog
$ fluentd -c /fluentd/etc/fluent.conf

Fluentd 구성#

사전 요구사항 설정 가이드에서 생성된 fluent.conf 파일을 수정합니다.

  1. Datadog을 방문하여 Datadog 문서에 따라 Fluentd용 API 키를 생성합니다.

  2. API 키를 복사하여 fluent.conf에 새 <match> 블록을 추가합니다:

    <match test.log>
    
      @type datadog
      @id awesome_agent
      api_key (=presets.tokens.first=)
    
      host http-intake.logs.us5.datadoghq.com
    
      # Optional parameters
      dd_source teleport
    
    </match>
    
  3. 구성을 다음과 같이 편집합니다:

    • api_key 필드에 API 키를 추가합니다.
    • host 값을 Datadog 사이트에 맞게 조정합니다. 올바른 값을 확인하려면 Datadog Log Collection and Integrations 가이드를 참조하세요.
    • dd_source는 Datadog UI에서 이 로그를 필터링하는 데 사용할 수 있는 선택적 필드입니다.
    • ca_path, cert_pathprivate_key_path를 사전 요구사항 설정 가이드에서 생성된 자격 증명 파일을 가리키도록 조정합니다. 로컬에서 테스트하는 경우, 위의 Docker 명령이 이미 현재 작업 디렉터리를 컨테이너의 keys/에 마운트했습니다.
  4. fluent.conf에 변경 사항을 저장한 후 Fluentd를 재시작합니다.

2/2단계. Event Handler 플러그인 실행#

이 섹션에서는 생성한 Event Handler 구성을 수정하고 Event Handler를 실행하여 구성을 테스트합니다.

Event Handler 구성#

설치 방법에 따라 Event Handler 구성을 편집합니다.

다음 필드를 업데이트합니다.

Note

이 섹션의 내용은 원문 문서를 참조하세요. (finish-event-handler-fields.mdx)

Event Handler 시작#

Note

이 섹션의 내용은 원문 문서를 참조하세요. (start-event-handler.mdx)

Datadog의 Logs 뷰에 이제 Teleport 클러스터 이벤트가 표시됩니다:

Datadog Logs

연결 문제 해결#

Teleport Event Handler가 Teleport 클러스터에 연결하는 동안 오류 로그를 표시하는 경우 다음을 확인하세요:

  • Teleport Event Handler가 Teleport 클러스터에 연결하는 데 사용하는 인증서가 만료 날짜를 지나지 않았는지 확인합니다. 이는 tctl auth sign 명령의 --ttl 플래그 값으로, 기본적으로 12시간입니다.
  • Teleport Event Handler 구성 파일에서 Teleport Proxy Service에 대한 올바른 호스트 포트를 제공했는지 확인합니다.
  • Teleport Event Handler를 시작하기 전에 Fluentd 컨테이너를 먼저 시작합니다. Event Handler는 시작 시 즉시 Fluentd에 연결을 시도합니다.

다음 단계#

  • Datadog으로 들어오는 로그 형식을 사용자 지정하는 방법을 알아보려면 Fluentd output plugin for Datadog README 파일을 검토하세요.
  • teleport-plugin-event-handler Helm 차트의 values 파일에서 설정할 수 있는 모든 옵션을 보려면 참조 가이드를 참조하세요.