InfoGrab Docs

Fluentd로 Teleport 감사 이벤트 내보내기

요약

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

Teleport의 Event Handler 플러그인은 Teleport Auth Service에서 감사 이벤트를 수신하여 로그 관리 솔루션으로 전달하므로, 기록 분석, 비정상적인 동작 감지, Teleport 클러스터와 사용자가 상호 작용하는 방식에 대한 더 나은 이해를 얻을 수 있습니다.

Fluentd는 통합 로깅 레이어를 위한 오픈 소스 데이터 수집기입니다.

이 가이드는 Fluentd를 대상 서비스로 사용하여 Teleport Event Handler 플러그인에 대한 설명 역할도 합니다.

작동 방식#

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

이 데모에서는 Event Handler의 목적지로 로컬 Docker 컨테이너를 생성합니다:

Teleport Fluentd 플러그인

로컬 개념 증명 데모를 위한 아래 지침을 따르거나, 추가 설치 지침 중 하나를 사용하여 인프라와 통합되도록 Teleport Event Handler를 구성할 수 있습니다.

사전 요구사항#

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

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

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

1/2단계. Fluentd 포워더 시작#

Fluentd 플러그인은 이전 단계에서 생성된 키를 사용하여 Fluentd 인스턴스로 이벤트를 전송합니다.

사전 요구사항 설정 가이드에서 생성된 fluent.conf 파일은 TLS를 사용하여 이벤트를 수락하고 출력하도록 Fluentd 인스턴스를 구성합니다:

<source>
    @type http
    port 8888

    <transport tls>
        client_cert_auth true

        # We are going to run fluentd in Docker. /keys will be mounted from the host file system.
        ca_path /keys/ca.crt
        cert_path /keys/server.crt
        private_key_path /keys/server.key
        private_key_passphrase ********** # Passphrase generated along with the keys
    </transport>

    <parse>
      @type json
      json_parser oj

      # This time format is used by the plugin. This field is required.
      time_type string
      time_format %Y-%m-%dT%H:%M:%S
    </parse>

    # If the number of events is high, fluentd will start failing the ingestion
    # with the following error message: buffer space has too many data errors.
    # The following configuration prevents data loss in case of a restart and
    # overcomes the limitations of the default fluentd buffer configuration.
    # This configuration is optional.
    # See https://docs.fluentd.org/configuration/buffer-section for more details.
    <buffer>
      @type file
      flush_thread_count 8
      flush_interval 1s
      chunk_limit_size 10M
      queue_limit_length 16
      retry_max_interval 30
      retry_forever true
    </buffer>
</source>

# Events sent to test.log will be dumped to STDOUT.
<match test.log>
  @type stdout
</match>

이 Fluentd 구성을 시험해 보려면 Fluentd 인스턴스를 시작합니다:

$ docker run -u $(id -u ${USER}):$(id -g ${USER}) -p 8888:8888 -v $(pwd):/keys -v $(pwd)/fluent.conf:/fluentd/etc/fluent.conf fluent/fluentd:edge

이렇게 하면 현재 터미널이 사용되므로, 계속 진행하려면 새 터미널을 엽니다.

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)

연결 문제 해결#

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에 연결을 시도합니다.

다음 단계#

  • 전용 통합을 구성하는 지침은 사이드바 탐색 메뉴의 감사 이벤트 내보내기 아래에서 확인하세요.
  • teleport-plugin-event-handler Helm 차트의 values 파일에서 설정할 수 있는 모든 옵션을 보려면 참조 가이드를 참조하세요.

Fluentd로 Teleport 감사 이벤트 내보내기

원문 보기
요약

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

Teleport의 Event Handler 플러그인은 Teleport Auth Service에서 감사 이벤트를 수신하여 로그 관리 솔루션으로 전달하므로, 기록 분석, 비정상적인 동작 감지, Teleport 클러스터와 사용자가 상호 작용하는 방식에 대한 더 나은 이해를 얻을 수 있습니다.

Fluentd는 통합 로깅 레이어를 위한 오픈 소스 데이터 수집기입니다.

이 가이드는 Fluentd를 대상 서비스로 사용하여 Teleport Event Handler 플러그인에 대한 설명 역할도 합니다.

작동 방식#

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

이 데모에서는 Event Handler의 목적지로 로컬 Docker 컨테이너를 생성합니다:

Teleport Fluentd 플러그인

로컬 개념 증명 데모를 위한 아래 지침을 따르거나, 추가 설치 지침 중 하나를 사용하여 인프라와 통합되도록 Teleport Event Handler를 구성할 수 있습니다.

사전 요구사항#

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

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

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

1/2단계. Fluentd 포워더 시작#

Fluentd 플러그인은 이전 단계에서 생성된 키를 사용하여 Fluentd 인스턴스로 이벤트를 전송합니다.

사전 요구사항 설정 가이드에서 생성된 fluent.conf 파일은 TLS를 사용하여 이벤트를 수락하고 출력하도록 Fluentd 인스턴스를 구성합니다:

<source>
    @type http
    port 8888

    <transport tls>
        client_cert_auth true

        # We are going to run fluentd in Docker. /keys will be mounted from the host file system.
        ca_path /keys/ca.crt
        cert_path /keys/server.crt
        private_key_path /keys/server.key
        private_key_passphrase ********** # Passphrase generated along with the keys
    </transport>

    <parse>
      @type json
      json_parser oj

      # This time format is used by the plugin. This field is required.
      time_type string
      time_format %Y-%m-%dT%H:%M:%S
    </parse>

    # If the number of events is high, fluentd will start failing the ingestion
    # with the following error message: buffer space has too many data errors.
    # The following configuration prevents data loss in case of a restart and
    # overcomes the limitations of the default fluentd buffer configuration.
    # This configuration is optional.
    # See https://docs.fluentd.org/configuration/buffer-section for more details.
    <buffer>
      @type file
      flush_thread_count 8
      flush_interval 1s
      chunk_limit_size 10M
      queue_limit_length 16
      retry_max_interval 30
      retry_forever true
    </buffer>
</source>

# Events sent to test.log will be dumped to STDOUT.
<match test.log>
  @type stdout
</match>

이 Fluentd 구성을 시험해 보려면 Fluentd 인스턴스를 시작합니다:

$ docker run -u $(id -u ${USER}):$(id -g ${USER}) -p 8888:8888 -v $(pwd):/keys -v $(pwd)/fluent.conf:/fluentd/etc/fluent.conf fluent/fluentd:edge

이렇게 하면 현재 터미널이 사용되므로, 계속 진행하려면 새 터미널을 엽니다.

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)

연결 문제 해결#

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에 연결을 시도합니다.

다음 단계#

  • 전용 통합을 구성하는 지침은 사이드바 탐색 메뉴의 감사 이벤트 내보내기 아래에서 확인하세요.
  • teleport-plugin-event-handler Helm 차트의 values 파일에서 설정할 수 있는 모든 옵션을 보려면 참조 가이드를 참조하세요.