InfoGrab Docs

세션 녹화 요약

요약

Teleport Identity Security를 사용하면 셸 및 데이터베이스 세션의 세션 녹화 요약을 생성하고 볼 수 있습니다. 세션 녹화 요약과 AI 사용 세션 녹화 요약은 Teleport Identity Security가 포함된 Teleport Enterprise 고객에게 제공됩니다.

Teleport Identity Security를 사용하면 셸 및 데이터베이스 세션의 세션 녹화 요약을 생성하고 볼 수 있습니다. 이를 통해 전체 녹화를 검토하기 전에 사용자가 무엇을 하는지 한눈에 파악하고 그들의 행동이 정당한지 평가할 수 있습니다.

Note

세션 녹화 요약과 AI 사용 세션 녹화 요약은 Teleport Identity Security가 포함된 Teleport Enterprise 고객에게 제공됩니다.

중요: AI 기반 요약은 모든 Teleport 배포(자체 호스팅 및 클라우드 모두)에서 기본적으로 비활성화되어 있습니다. 이 기능을 명시적으로 활성화하지 않으면 AI 처리가 발생하지 않습니다. 이를 통해 세션 녹화에 AI를 사용할지 여부와 방법을 완전히 제어할 수 있습니다.

요약을 활성화하기로 선택하면 다음 옵션을 사용할 수 있습니다:

통합 모드 자체 호스팅 Teleport Enterprise Teleport Enterprise Cloud
자체 OpenAI 키로 OpenAI 사용
LiteLLM과 같은 OpenAI 호환 LLM 게이트웨이 사용 ✅ (*)
자체 AWS 계정이 제공하는 Amazon Bedrock 모델 사용
Teleport가 제공하는 Amazon Bedrock 모델 사용 ✅ (**)

(*) Teleport Cloud의 경우, Teleport Auth Service가 LLM 게이트웨이에 접근할 수 있어야 합니다. 즉, 게이트웨이가 공개적으로 접근 가능하고 적절히 보안되어 있어야 합니다. 게이트웨이 접근은 OpenAI API 키와 동등한 것(예: LiteLLM 마스터 키)으로 보호되어야 합니다.

(**) v18.7.1 이상을 실행하는 Teleport Cloud 테넌트의 경우.

기존 고객은 명시적 동의 없이 AI 기능이 자동으로 활성화되지 않습니다. Teleport Identity Security에 포함된 기능에 대해 자세히 알아보세요.

작동 방식#

Teleport는 녹화된 인터랙티브 SSH 또는 Kubernetes 세션 및 녹화된 데이터베이스 세션을 자동으로 요약할 수 있습니다.

각 세션이 끝나면, Teleport는 세션을 LLM으로 라우팅하는 정책 집합과 대조하여 요약해야 하는지 결정합니다. 어떤 세션을 요약할지와 어떤 모델을 사용할지는 세션 종류, 세션 참가자, 리소스 레이블, 사용자 특성 등과 같은 세션, 리소스 및 사용자 메타데이터를 사용하여 결정할 수 있습니다.

일치하는 항목이 발견되면, Teleport는 세션 녹화 요약을 진행합니다. OpenAI 또는 Amazon Bedrock과 같은 외부 추론 제공자를 사용하여 정책에 표시된 추론 모델 구성을 사용하여 요약을 생성합니다.

세션 요약의 기반이 되는 세 가지 기본 개념이 있습니다:

  • 추론 제공자 (OpenAI, Amazon Bedrock)가 요약의 핵심 작업을 수행합니다.
  • 추론 모델은 세션이 어떻게 요약되는지를 나타냅니다: 모델 설정을 제공하는 Teleport 구성 리소스입니다.
  • 추론 정책무엇이 요약되는지와 주어진 경우에 어떤 추론 모델이 사용되는지를 나타냅니다.
Warning

이 기능은 대형 언어 모델을 활용하는 AI로 구동되므로, 정확도가 다를 수 있습니다.

Teleport는 현재 지출 제어를 지원하지 않습니다. LLM 토큰 예산 관리는 사용자의 책임입니다.

세션 녹화 요약 플레이어 및 타임라인 Session Detail with High Alert

사전 요구 사항#

  • Identity Security가 활성화된 v18.2.0 이상을 실행하는 Teleport Enterprise Cloud 테넌트. Teleport 관리 프로필을 사용하려면 v18.7.1이 필요합니다.
  • 선택적으로, 자체 LLM API (OpenAI, Amazon Bedrock 또는 OpenAI 호환 게이트웨이)에 대한 액세스. 직접 제공하지 않는 경우, Cloud 테넌트에 포함된 Teleport 관리 모델을 사용할 수 있습니다.
  • Identity Security가 활성화된 v18.2.0 이상을 실행하는 Teleport Enterprise 클러스터.
  • LLM API에 대한 액세스. 다음 중 하나일 수 있습니다:
    • 공개 또는 자체 호스팅된 OpenAI 또는 OpenAI 호환 추론 API.
    • Amazon Bedrock (위의 가용성 표 참조).
Teleport Enterprise Cloud 빠른 시작

Teleport Enterprise Cloud 테넌트에는 사전 프로비저닝된 추론 모델(teleport-cloud-default)이 포함되어 있습니다. 세션 요약을 시작하려면 바로 3단계: 추론 정책 설정으로 건너뛸 수 있습니다.

참고: 모델이 사전 프로비저닝되어 있다고 해서 세션 요약이 자동으로 활성화되지는 않습니다.

1/5단계: 추론 구성에 대한 액세스 구성#

요약 추론 구성을 관리하려면 inference_model, inference_secretinference_policy 리소스에 대한 쓰기 액세스가 필요하며, 이는 기본적으로 사전 설정된 editor 역할을 통해 부여됩니다.

또는 필요한 모든 리소스에 액세스할 수 있는지 확인하기 위해 새 역할을 생성할 수 있습니다. 새 역할을 생성하려면:

  1. 다음 내용으로 summarizer-admin.yaml 파일을 생성하세요:

    kind: role
    metadata:
      name: summarizer-admin
    spec:
      allow:
        rules:
        - resources:
          - inference_model
          - inference_secret
          - inference_policy
          verbs:
          - read
          - list
          - create
          - update
          - delete
    version: v7
    
  2. 변경 사항을 적용하세요:

    $ tctl create -f summarizer-admin.yaml
    

Assign the summarizer-admin role to your Teleport user by running the appropriate commands for your authentication provider:

2/5단계: 추론 모델 구성#

이 단계에서는 inference_model 리소스를 생성합니다. 이 리소스는 대형 언어 모델(LLM) API를 가리키도록 함으로써 Teleport가 세션을 요약하는 방법을 알려줍니다. 특히 API별 모델 이름을 포함합니다. Teleport 추론 모델 이름API별 모델 이름은 서로 다른 것입니다. 이를 통해 예를 들어 다른 온도 설정으로 OpenAI 또는 Amazon Bedrock과 같은 제공자로부터 동일한 모델을 사용하거나, 동일한 기본 API별 모델 이름을 참조하는 여러 Teleport 추론 모델을 생성하여 다른 API 게이트웨이로 라우팅할 수 있습니다.

Teleport Enterprise Cloud 테넌트에는 Amazon Bedrock으로 구동되는 teleport-cloud-default라는 사전 프로비저닝된 추론 모델이 제공됩니다. Teleport가 기본 모델 및 인프라를 관리합니다.

이 단계에 추가 구성이 필요하지 않습니다. 3단계로 건너뛰고 추론 정책에서 모델로 teleport-cloud-default를 참조하세요.

OpenAI 또는 Amazon Bedrock 탭을 사용하거나 Teleport Web UI를 통해 자체 추론 모델을 추가할 수도 있습니다.

Note

Teleport 관리 모델은 Teleport v18.7.1부터 사용 가능합니다. 현재 사용 제한은 없지만 향후 할당량이 도입될 수 있습니다.

Teleport Web UI를 통해 추론 모델을 생성할 수도 있습니다. Identity Security -> Session Recording Summaries로 이동하여 Add Inference Model을 클릭하세요. 공급자로 OpenAI-Compatible API 또는 Amazon Bedrock을 선택하고 필수 필드를 입력한 후 Create를 클릭하세요. 저장하기 전에 Test Connection을 사용하여 구성을 확인할 수 있습니다.

Create Inference Model dialog in the Teleport Web UI

OpenAI와 통신하려면 추론 모델에 API 키가 필요합니다. 이 키는 inference_secret 리소스에 별도로 저장되고 inference_modelspec.openai.api_key_secret_ref 필드에 의해 참조됩니다.

Warning

API 키를 보호하기 위해 일단 작성된 inference_secret 값은 tctl 또는 Teleport API를 통해 검색할 수 없습니다. 업데이트 또는 삭제만 가능합니다.

  1. 다음 내용으로 inference-model.yaml 파일을 생성하세요:

    kind: inference_model
    version: v1
    metadata:
      name: shell-summary-model
    spec:
      openai:
        # OpenAI에 직접 연결하는 이 시나리오에서, openai_model_id는
        # 유효한 OpenAI 모델 이름이어야 합니다.
        openai_model_id: gpt-4o
        # 이 값은 `inference_secret` 리소스 이름을 참조합니다.
        api_key_secret_ref: openai-key
      # 모델의 컨텍스트 창에 맞추기에 너무 길었던 세션에 대한 비용 발생을
      # 방지하기 위해 세션 길이를 제한하는 것이 좋습니다.
      # 설정되지 않으면 기본값은 200kB입니다. 자세한 내용은 제한 사항 섹션을 참조하세요.
      max_session_length_bytes: 190000
    
    ---
    
    kind: inference_secret
    version: v1
    metadata:
      name: openai-key
    spec:
      value: '<paste-your-openai-api-key-here>'
    
  2. 변경 사항을 적용하세요:

    $ tctl create -f inference-model.yaml
    

모델 선택#

사용하려는 모델에 따라 Amazon Bedrock의 기존 추론 프로파일을 사용하거나 새 추론 프로파일을 생성해야 할 수 있습니다 (Teleport 추론 정책과 혼동하지 마세요). 해당 모델이 온디맨드 호출을 지원하는 경우 추론 프로파일이 필요하지 않습니다. 현재 작성 시점 기준으로, Claude 3.5 Haiku와 Claude 3.5 Sonnet은 Amazon Bedrock 추론 프로파일을 생성할 필요 없이 그대로 사용할 수 있는 모델의 예입니다. 다음 명령을 사용하여 온디맨드 호출을 지원하는 모델을 나열하세요:

aws bedrock list-foundation-models --by-inference-type=ON_DEMAND --query='modelSummaries[*].modelId'

다양한 모델의 추론 가격에 대한 자세한 내용은 Amazon Bedrock 문서를 참조하세요.

Amazon Bedrock 추론 프로파일 찾기 또는 생성#

온디맨드 호출을 지원하지 않는 모델을 사용하려면, 먼저 해당 모델에 대한 시스템 정의 추론 프로파일을 찾거나 직접 생성해야 합니다. 모델이 온디맨드 호출을 지원하는 경우 이 부분을 건너뛸 수 있습니다.

선택한 모델에 대한 시스템 정의 추론 프로파일을 선택하려면, 먼저 사용 가능한 모든 모델을 나열하고 모델 ARN을 선택하세요.

aws bedrock list-foundation-models --query='modelSummaries[*].modelArn'

그런 다음, 을 모델 ARN으로 대체하여 해당 모델의 추론 프로파일을 찾으세요:

aws bedrock list-inference-profiles --query "inferenceProfileSummaries[?contains(@.models[*].modelArn, '



Have multiple sources of AWS credentials?

Teleport's AWS client loads credentials from different sources in the following order:

  • Environment Variables
  • Shared credentials file
  • Shared configuration file (Teleport always enables shared configuration)
  • EC2 Instance Metadata (credentials only)

While you can provide AWS credentials via a shared credentials file or shared configuration file, you will need to run the Teleport Auth Service with the AWS_PROFILE environment variable assigned to the name of your profile of choice.

If you have a specific use case that the instructions above do not account for, consult the documentation for the AWS SDK for Go for a detailed description of credential loading behavior.

모델을 직접 호출하는 경우, Teleport가 Amazon Bedrock에 인증하는 데 사용하는 IAM 역할에 다음 AWS IAM 정책(Teleport 추론 정책과 혼동하지 마세요)을 첨부하세요:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "bedrock:InvokeModel",
      "Resource": "





5/5단계: 세션 진행 및 요약 보기#

완료되었습니다! 이제 테스트 세션을 진행할 준비가 되었습니다. tsh ssh, kubectl exec, tsh db connect 또는 웹 터미널을 사용하여 클러스터 리소스 중 하나에 연결하세요. 인터랙티브 세션을 시작하고 명령을 실행한 후 세션을 종료하고 Audit -> Session Recordings로 이동하세요. 요약 버튼이 있는 해당 녹화 타일을 볼 수 있습니다. 요약 버튼을 클릭하면 요약이 표시됩니다.

세션 녹화 요약 대시보드#

Session recording list screen with a summary visible

Info

요약을 생성하는 데 시간이 걸릴 수 있으며, 시간은 세션 크기, 모델 및 온도를 포함한 여러 요인에 따라 다릅니다. 일반적으로 세션이 Auth Service에 업로드된 후 최대 1분 이내에 표시됩니다.

세션 요약에 대한 감사 이벤트#

세션이 요약된 후 감사 이벤트가 생성됩니다. 이를 통해 높은 심각도 세션에 대해 알림을 보내기 위해 SIEM으로 이벤트를 전달할 수 있습니다.

// 심각 위험 수준의 세션 요약 예시.
{
  "cluster_name": "example.teleport.com",
  "code": "INF010I",
  "db_protocol": "",
  "db_uri": "",
  "ei": 1771606438680848100,
  "event": "session.summarized",
  "inference_finished_at": "2026-02-20T16:53:58.583618024Z",
  "inference_started_at": "2026-02-20T16:53:15.970015278Z",
  "model_name": "shell-summary-model",
  "namespace": "default",
  "risk_level": "CRITICAL",
  "server_hostname": "wasabi-db-host",
  "server_id": "46bdf6db-0b55-4e62-9dcc-32b0958df696",
  "server_labels": {
    "cloud": "aws",
    "env": "prod",
    "teleport.dev/account-id": "981262289404",
    "teleport.dev/instance-id": "i-0e94eeb1ff1f46dd7",
    "type": "teleport-postgres"
  },
  "server_sub_kind": "teleport",
  "server_version": "18.7.0",
  "session_type": "ssh",
  "short_description": "Credential harvesting followed by data exfiltration to command-and-control infrastructure with evidence destruction",
  "sid": "33610f89-096e-4708-9b43-c4b00e7c9c4f",
  "success": true,
  "time": "2026-02-20T16:53:58.671136904Z",
  "uid": "1a3813e0-53a6-4dfa-807c-da6e76215937",
  "username": "benarent"
}

제한 사항#

온디맨드 요약은 지원되지 않음#

요약은 일치하는 추론 정책을 기반으로 세션이 끝난 후 자동으로 생성됩니다. 특정 세션에 대한 요약을 수동으로 트리거하거나 이미 처리된 세션을 다시 요약하는 것은 불가능합니다.

세션 크기 제한#

현재, Teleport는 모델의 컨텍스트 창보다 큰 세션의 요약을 시도하지 않습니다. 토큰화 후 세션이 그보다 크면 OpenAI는 요청을 거부합니다. 사용된 입력 토큰은 낭비됩니다. 이를 방지하기 위해 Teleport는 inference_model 리소스의 spec.max_session_length_bytes 필드를 사용하여 추론 제공자에게 보낼 수 있는 최대 세션 크기를 사용자 정의할 수 있습니다. 모델에 대해 정확한 바이트 수를 제공할 수 없습니다. 실험에서 모델과 입력에 따라 토큰당 2~4바이트를 관찰했습니다.

요약할 세션 선택#

클러스터의 모든 세션을 무작위로 요약하면 비용이 증가할 수 있으므로, 어떤 세션이 요약되고 어떤 모델이 추론에 사용될지 구체적으로 지정하는 것이 좋습니다. 이러한 메커니즘 중 하나인 종류별 세션 선택은 위의 예시에서 이미 언급했습니다. 종류별 매칭 외에도, 각 추론 정책에 사용자 정의 필터를 추가하여 프로덕션 리소스를 대상으로 하는 세션, 특정 사용자가 참여한 세션 등만 요약할 수 있습니다.

필터는 Teleport 조건자 언어를 사용하여 표현됩니다. 추론 정책에 필터가 포함되어 있으면, 표시된 종류 중 하나 지정된 필터와 일치하는 세션에만 매칭됩니다.

세션 매칭 예시#

일반적인 경우는 요약을 위해 프로덕션 리소스만 선택하는 것입니다. 다음 예시 정책은 클러스터 레이블을 매칭하여 프로덕션 클러스터 중 하나의 Kubernetes 세션에만 매칭됩니다:

kind: inference_policy
version: v1
metadata:
  name: prod-k8s-sessions
  description: Summarize production Kubernetes sessions
spec:
  kinds:
  - k8s
  filter: 'equals(resource.metadata.labels["env"], "prod")'
  model: shell-summary-model

다음 예시는 두 정책을 사용하여 셸 및 데이터베이스 세션을 두 개의 다른 모델로 라우팅합니다. 생성된 두 inference_model 리소스인 database-summary-modelshell-summary-model이 있다고 가정합니다.

kind: inference_policy
version: v1
metadata:
  name: shell-policy
spec:
  kinds: ['ssh', 'k8s']
  model: shell-summary-model

---

kind: inference_policy
version: v1
metadata:
  name: db-policy
spec:
  kinds: ['db']
  model: db-summary-model

조건자 언어#

추론 정책 필터는 Teleport 조건자 언어를 사용하여 표현됩니다. 이 경우 언어는 다음 연산자를 지원합니다:

연산자 의미 예시
&& and (모든 조건이 일치해야 함) contains(field1, field2) && equals(field2, "val")
|| or (하나의 조건만 일치하면 됨) contains(field1, field2) || contains(field1, "val2")
! not (함수와 함께 사용) !equals(field1, field2)
== 같음 resource.metadata.labels["env"] == "prod"
!= 같지 않음 resource.metadata.labels["env"] != "prod"

언어는 또한 다음 함수를 지원합니다:

함수 반환 유형 설명
all_end_with(a, suffix) Boolean a가 목록이면 a의 모든 문자열이 suffix로 끝나면 true를 반환합니다. a가 문자열이면 asuffix로 끝나면 true를 반환합니다.
all_equal(a, b) Boolean a가 목록이면 a의 모든 항목이 b와 같으면 true를 반환합니다. a가 문자열이면 b와 같으면 true를 반환합니다.
contains(list, item) Boolean itemlist에 포함되어 있으면 true를 반환합니다.
contains_all(list, items) Boolean 모든 itemslist에 포함되어 있으면 true를 반환합니다.
contains_any(list, items) Boolean items 중 하나라도 list에 포함되어 있으면 true를 반환합니다.
equals(a, b) Boolean ab와 같으면 true를 반환합니다.
has_prefix(s, prefix) Boolean 문자열 sprefix로 시작하면 true를 반환합니다.
is_subset(a, item1, item2, ...) Boolean a가 목록이면 list(item1, item2, ...)a의 부분집합이면 true를 반환합니다. a가 문자열이면 목록에 a가 포함되어 있으면 true를 반환합니다.
set(value1, value2, ...) []string 문자열 목록을 반환합니다.

대상 리소스, 세션 및 사용자에 대한 정보를 사용하여 조건자를 구성할 수 있습니다.

필드 의미 예시
resource 이 세션이 연결되는 리소스 (서버, Kubernetes 클러스터 또는 데이터베이스)
resource.kind 리소스 종류 resource.kind == "node"
resource.metadata.labels 리소스 레이블 equals(resource.metadata.labels["env"], "prod")
resource.metadata.name 리소스 이름. SSH 서버의 경우 서버 ID입니다. resource.name == "production-cluster"
resource.spec.addr 서버 주소 (SSH 세션만 해당) resource.spec.addr == "123.123.123.123:3022"
resource.spec.db_protocol 데이터베이스 프로토콜 (데이터베이스 세션만 해당). 지원 값은 DB 리소스 참조를 참조하세요. resource.spec.protocol == "postgres"
resource.spec.hostname 서버 호스트 이름 (SSH 세션만 해당) resource.spec.hostname == "dummy-host"
resource.spec.uri 데이터베이스 URI (데이터베이스 세션만 해당) has_prefix(resource.spec.uri, "db-host")
session 매칭 중인 세션. 이 객체는 session.enddb.session.end 이벤트의 모든 필드를 지원하므로 여기서는 가장 유용한 것들만 나열합니다.
session.cluster_name Teleport 클러스터 이름 cluster_name == "teleport.example.com"
session.db_name 데이터베이스 이름 (Teleport 리소스가 아닌 기본 데이터베이스; 데이터베이스 세션만 해당) session.db_name == "orders"
session.db_service 데이터베이스 서비스 이름 (데이터베이스 세션만 해당) session.db_service == "prod-db-service"
session.kubernetes_groups Kubernetes 그룹 목록 (Kubernetes 세션만 해당) contains(session.kubernetes_groups, "viewers")
session.kubernetes_node_name 파드를 실행하는 노드 이름 (Kubernetes 세션만 해당) session.kubernetes_node_name == "node1"
session.kubernetes_pod_name 파드 이름 (Kubernetes 세션만 해당) session.kubernetes_pod_name == "some-pod"
session.kubernetes_pod_namespace 파드가 포함된 네임스페이스 (Kubernetes 세션만 해당) session.kubernetes_pod_namespace == "default"
session.kubernetes_users Kubernetes 사용자 이름 목록 (Kubernetes 세션만 해당) contains(session.kubernetes_users, "admin")
session.participants 세션에 참여한 사용자 (SSH 및 Kubernetes 세션만 해당) contains(session.participants, "alice")
user 세션을 생성한 사용자.
user.metadata.name 사용자 이름 is_subset(user.metadata.name, "alice", "bob")
user.spec.roles 사용자 역할 contains(user.spec.roles, "intern")
user.spec.traits 사용자 특성 contains(user.spec.traits["teams"], "alpha")

LiteLLM 및 기타 OpenAI 호환 프록시 사용#

현재 공식적으로 지원되는 유일한 추론 제공자는 OpenAI이지만, 이 목적으로 OpenAI 호환 API를 사용하는 것도 가능합니다. 예를 들어, 일부 또는 모든 세션을 다른 제공자로 라우팅하거나 온프레미스에서 언어 모델을 호스팅할 수도 있습니다. 이를 수행하는 한 가지 방법은 LiteLLM을 사용하는 것입니다. 다음은 수행해야 할 작업입니다:

  1. Teleport Auth Service에서 접근할 수 있는 호스트에 LiteLLM 프록시 서버 (LLM 게이트웨이)를 설정합니다.
  2. LiteLLM 구성에 원하는 모델을 추가합니다. 이 예시에서는 my-custom-model이라고 부르겠습니다.
  3. Teleport 추론 모델을 구성합니다. spec.openai.base_url 속성을 사용하여 Teleport가 LiteLLM 인스턴스를 가리키도록 하고 spec.openai.openai_model_idmy-custom-model을 입력합니다.
  4. LiteLLM 마스터 키를 포함하는 inference_secret을 추가합니다.

다음은 예시 구성입니다:

kind: inference_model
version: v1
metadata:
  name: lite-llm-summary-model
spec:
  openai:
    # LiteLLM 프록시의 경우, openai_model_id는 LiteLLM에서 구성된 공개 모델 이름입니다.
    openai_model_id: my-custom-model
    api_key_secret_ref: lite-llm-master-key
    base_url: http://llm-host:4000/

---

kind: inference_secret
version: v1
metadata:
  name: lite-llm-master-key
spec:
  # LiteLLM의 경우 API 키는 OpenAI 키가 *아닙니다*. 대신 LiteLLM 마스터 키를 사용하세요.
  value: '<paste-your-master-key-here>'

모니터링#

Teleport는 세션 요약기를 모니터링하는 데 사용할 수 있는 몇 가지 유용한 Prometheus 메트릭을 제공합니다. 메트릭은 추론 모델 이름으로 레이블이 지정되며, OpenAI 오류의 경우 추가적으로 OpenAI API 오류 코드로 레이블이 지정됩니다. 자세한 내용은 Teleport 메트릭 참조를 참조하세요.

문제 해결#

Amazon Bedrock이 온디맨드 처리량으로 모델 호출에 실패함#

문제: "ValidationException: Invocation of model ID [model-id] with on-demand throughput isn't supported. Retry your request with the ID or ARN of an inference profile that contains this model."와 함께 요약이 실패합니다.

해결 방법: inference_model 리소스에서 모델 ID 대신 Amazon Bedrock 추론 프로파일을 사용하세요.

Amazon Bedrock 모델 식별자가 유효하지 않음#

문제: "ValidationException: The provided model identifier is invalid."와 함께 요약이 실패합니다.

해결 방법: 가능한 이유 중 하나는 inference_model 리소스에 선언된 region과 주어진 모델 또는 추론 프로파일에 사용 가능한 리전 간의 불일치입니다. 해당 리전이 지원되는지 확인하세요.

Amazon Bedrock이 모델 또는 추론 정책에 대한 액세스를 거부함#

문제: "AccessDeniedException: User: [user] is not authorized to perform: bedrock:InvokeModel on resource: [resource-arn] because no identity-based policy allows the bedrock:InvokeModel action"과 함께 요약이 실패합니다.

해결 방법: 먼저, Teleport가 사용하는 AWS IAM 역할에 Teleport 구성(inference_model 리소스)에서 지정한 모델 또는 추론 정책에 대한 InvokeModel 작업을 허용하는 정책이 첨부되어 있는지 확인하세요. 그런 다음 Amazon Bedrock 추론 프로파일을 사용하는 경우, 정책이 추론 프로파일 자체뿐만 아니라 해당 추론 프로파일과 관련된 모든 Amazon Bedrock 모델도 참조하는지 확인하세요. 다음 명령을 사용하여 추론 프로파일의 세부 정보를 가져오고, 을 추론 프로파일 ARN으로 대체하세요:

aws bedrock get-inference-profile --inference-profile-identifier="bedrock-inference-profile-arn"/>"

세션 녹화 요약

원문 보기
요약

Teleport Identity Security를 사용하면 셸 및 데이터베이스 세션의 세션 녹화 요약을 생성하고 볼 수 있습니다. 세션 녹화 요약과 AI 사용 세션 녹화 요약은 Teleport Identity Security가 포함된 Teleport Enterprise 고객에게 제공됩니다.

Teleport Identity Security를 사용하면 셸 및 데이터베이스 세션의 세션 녹화 요약을 생성하고 볼 수 있습니다. 이를 통해 전체 녹화를 검토하기 전에 사용자가 무엇을 하는지 한눈에 파악하고 그들의 행동이 정당한지 평가할 수 있습니다.

Note

세션 녹화 요약과 AI 사용 세션 녹화 요약은 Teleport Identity Security가 포함된 Teleport Enterprise 고객에게 제공됩니다.

중요: AI 기반 요약은 모든 Teleport 배포(자체 호스팅 및 클라우드 모두)에서 기본적으로 비활성화되어 있습니다. 이 기능을 명시적으로 활성화하지 않으면 AI 처리가 발생하지 않습니다. 이를 통해 세션 녹화에 AI를 사용할지 여부와 방법을 완전히 제어할 수 있습니다.

요약을 활성화하기로 선택하면 다음 옵션을 사용할 수 있습니다:

통합 모드 자체 호스팅 Teleport Enterprise Teleport Enterprise Cloud
자체 OpenAI 키로 OpenAI 사용
LiteLLM과 같은 OpenAI 호환 LLM 게이트웨이 사용 ✅ (*)
자체 AWS 계정이 제공하는 Amazon Bedrock 모델 사용
Teleport가 제공하는 Amazon Bedrock 모델 사용 ✅ (**)

(*) Teleport Cloud의 경우, Teleport Auth Service가 LLM 게이트웨이에 접근할 수 있어야 합니다. 즉, 게이트웨이가 공개적으로 접근 가능하고 적절히 보안되어 있어야 합니다. 게이트웨이 접근은 OpenAI API 키와 동등한 것(예: LiteLLM 마스터 키)으로 보호되어야 합니다.

(**) v18.7.1 이상을 실행하는 Teleport Cloud 테넌트의 경우.

기존 고객은 명시적 동의 없이 AI 기능이 자동으로 활성화되지 않습니다. Teleport Identity Security에 포함된 기능에 대해 자세히 알아보세요.

작동 방식#

Teleport는 녹화된 인터랙티브 SSH 또는 Kubernetes 세션 및 녹화된 데이터베이스 세션을 자동으로 요약할 수 있습니다.

각 세션이 끝나면, Teleport는 세션을 LLM으로 라우팅하는 정책 집합과 대조하여 요약해야 하는지 결정합니다. 어떤 세션을 요약할지와 어떤 모델을 사용할지는 세션 종류, 세션 참가자, 리소스 레이블, 사용자 특성 등과 같은 세션, 리소스 및 사용자 메타데이터를 사용하여 결정할 수 있습니다.

일치하는 항목이 발견되면, Teleport는 세션 녹화 요약을 진행합니다. OpenAI 또는 Amazon Bedrock과 같은 외부 추론 제공자를 사용하여 정책에 표시된 추론 모델 구성을 사용하여 요약을 생성합니다.

세션 요약의 기반이 되는 세 가지 기본 개념이 있습니다:

  • 추론 제공자 (OpenAI, Amazon Bedrock)가 요약의 핵심 작업을 수행합니다.
  • 추론 모델은 세션이 어떻게 요약되는지를 나타냅니다: 모델 설정을 제공하는 Teleport 구성 리소스입니다.
  • 추론 정책무엇이 요약되는지와 주어진 경우에 어떤 추론 모델이 사용되는지를 나타냅니다.
Warning

이 기능은 대형 언어 모델을 활용하는 AI로 구동되므로, 정확도가 다를 수 있습니다.

Teleport는 현재 지출 제어를 지원하지 않습니다. LLM 토큰 예산 관리는 사용자의 책임입니다.

세션 녹화 요약 플레이어 및 타임라인 Session Detail with High Alert

사전 요구 사항#

  • Identity Security가 활성화된 v18.2.0 이상을 실행하는 Teleport Enterprise Cloud 테넌트. Teleport 관리 프로필을 사용하려면 v18.7.1이 필요합니다.
  • 선택적으로, 자체 LLM API (OpenAI, Amazon Bedrock 또는 OpenAI 호환 게이트웨이)에 대한 액세스. 직접 제공하지 않는 경우, Cloud 테넌트에 포함된 Teleport 관리 모델을 사용할 수 있습니다.
  • Identity Security가 활성화된 v18.2.0 이상을 실행하는 Teleport Enterprise 클러스터.
  • LLM API에 대한 액세스. 다음 중 하나일 수 있습니다:
    • 공개 또는 자체 호스팅된 OpenAI 또는 OpenAI 호환 추론 API.
    • Amazon Bedrock (위의 가용성 표 참조).
Teleport Enterprise Cloud 빠른 시작

Teleport Enterprise Cloud 테넌트에는 사전 프로비저닝된 추론 모델(teleport-cloud-default)이 포함되어 있습니다. 세션 요약을 시작하려면 바로 3단계: 추론 정책 설정으로 건너뛸 수 있습니다.

참고: 모델이 사전 프로비저닝되어 있다고 해서 세션 요약이 자동으로 활성화되지는 않습니다.

1/5단계: 추론 구성에 대한 액세스 구성#

요약 추론 구성을 관리하려면 inference_model, inference_secretinference_policy 리소스에 대한 쓰기 액세스가 필요하며, 이는 기본적으로 사전 설정된 editor 역할을 통해 부여됩니다.

또는 필요한 모든 리소스에 액세스할 수 있는지 확인하기 위해 새 역할을 생성할 수 있습니다. 새 역할을 생성하려면:

  1. 다음 내용으로 summarizer-admin.yaml 파일을 생성하세요:

    kind: role
    metadata:
      name: summarizer-admin
    spec:
      allow:
        rules:
        - resources:
          - inference_model
          - inference_secret
          - inference_policy
          verbs:
          - read
          - list
          - create
          - update
          - delete
    version: v7
    
  2. 변경 사항을 적용하세요:

    $ tctl create -f summarizer-admin.yaml
    

Assign the summarizer-admin role to your Teleport user by running the appropriate commands for your authentication provider:

2/5단계: 추론 모델 구성#

이 단계에서는 inference_model 리소스를 생성합니다. 이 리소스는 대형 언어 모델(LLM) API를 가리키도록 함으로써 Teleport가 세션을 요약하는 방법을 알려줍니다. 특히 API별 모델 이름을 포함합니다. Teleport 추론 모델 이름API별 모델 이름은 서로 다른 것입니다. 이를 통해 예를 들어 다른 온도 설정으로 OpenAI 또는 Amazon Bedrock과 같은 제공자로부터 동일한 모델을 사용하거나, 동일한 기본 API별 모델 이름을 참조하는 여러 Teleport 추론 모델을 생성하여 다른 API 게이트웨이로 라우팅할 수 있습니다.

Teleport Enterprise Cloud 테넌트에는 Amazon Bedrock으로 구동되는 teleport-cloud-default라는 사전 프로비저닝된 추론 모델이 제공됩니다. Teleport가 기본 모델 및 인프라를 관리합니다.

이 단계에 추가 구성이 필요하지 않습니다. 3단계로 건너뛰고 추론 정책에서 모델로 teleport-cloud-default를 참조하세요.

OpenAI 또는 Amazon Bedrock 탭을 사용하거나 Teleport Web UI를 통해 자체 추론 모델을 추가할 수도 있습니다.

Note

Teleport 관리 모델은 Teleport v18.7.1부터 사용 가능합니다. 현재 사용 제한은 없지만 향후 할당량이 도입될 수 있습니다.

Teleport Web UI를 통해 추론 모델을 생성할 수도 있습니다. Identity Security -> Session Recording Summaries로 이동하여 Add Inference Model을 클릭하세요. 공급자로 OpenAI-Compatible API 또는 Amazon Bedrock을 선택하고 필수 필드를 입력한 후 Create를 클릭하세요. 저장하기 전에 Test Connection을 사용하여 구성을 확인할 수 있습니다.

Create Inference Model dialog in the Teleport Web UI

OpenAI와 통신하려면 추론 모델에 API 키가 필요합니다. 이 키는 inference_secret 리소스에 별도로 저장되고 inference_modelspec.openai.api_key_secret_ref 필드에 의해 참조됩니다.

Warning

API 키를 보호하기 위해 일단 작성된 inference_secret 값은 tctl 또는 Teleport API를 통해 검색할 수 없습니다. 업데이트 또는 삭제만 가능합니다.

  1. 다음 내용으로 inference-model.yaml 파일을 생성하세요:

    kind: inference_model
    version: v1
    metadata:
      name: shell-summary-model
    spec:
      openai:
        # OpenAI에 직접 연결하는 이 시나리오에서, openai_model_id는
        # 유효한 OpenAI 모델 이름이어야 합니다.
        openai_model_id: gpt-4o
        # 이 값은 `inference_secret` 리소스 이름을 참조합니다.
        api_key_secret_ref: openai-key
      # 모델의 컨텍스트 창에 맞추기에 너무 길었던 세션에 대한 비용 발생을
      # 방지하기 위해 세션 길이를 제한하는 것이 좋습니다.
      # 설정되지 않으면 기본값은 200kB입니다. 자세한 내용은 제한 사항 섹션을 참조하세요.
      max_session_length_bytes: 190000
    
    ---
    
    kind: inference_secret
    version: v1
    metadata:
      name: openai-key
    spec:
      value: '<paste-your-openai-api-key-here>'
    
  2. 변경 사항을 적용하세요:

    $ tctl create -f inference-model.yaml
    

모델 선택#

사용하려는 모델에 따라 Amazon Bedrock의 기존 추론 프로파일을 사용하거나 새 추론 프로파일을 생성해야 할 수 있습니다 (Teleport 추론 정책과 혼동하지 마세요). 해당 모델이 온디맨드 호출을 지원하는 경우 추론 프로파일이 필요하지 않습니다. 현재 작성 시점 기준으로, Claude 3.5 Haiku와 Claude 3.5 Sonnet은 Amazon Bedrock 추론 프로파일을 생성할 필요 없이 그대로 사용할 수 있는 모델의 예입니다. 다음 명령을 사용하여 온디맨드 호출을 지원하는 모델을 나열하세요:

aws bedrock list-foundation-models --by-inference-type=ON_DEMAND --query='modelSummaries[*].modelId'

다양한 모델의 추론 가격에 대한 자세한 내용은 Amazon Bedrock 문서를 참조하세요.

Amazon Bedrock 추론 프로파일 찾기 또는 생성#

온디맨드 호출을 지원하지 않는 모델을 사용하려면, 먼저 해당 모델에 대한 시스템 정의 추론 프로파일을 찾거나 직접 생성해야 합니다. 모델이 온디맨드 호출을 지원하는 경우 이 부분을 건너뛸 수 있습니다.

선택한 모델에 대한 시스템 정의 추론 프로파일을 선택하려면, 먼저 사용 가능한 모든 모델을 나열하고 모델 ARN을 선택하세요.

aws bedrock list-foundation-models --query='modelSummaries[*].modelArn'

그런 다음, 을 모델 ARN으로 대체하여 해당 모델의 추론 프로파일을 찾으세요:

aws bedrock list-inference-profiles --query "inferenceProfileSummaries[?contains(@.models[*].modelArn, '



Have multiple sources of AWS credentials?

Teleport's AWS client loads credentials from different sources in the following order:

  • Environment Variables
  • Shared credentials file
  • Shared configuration file (Teleport always enables shared configuration)
  • EC2 Instance Metadata (credentials only)

While you can provide AWS credentials via a shared credentials file or shared configuration file, you will need to run the Teleport Auth Service with the AWS_PROFILE environment variable assigned to the name of your profile of choice.

If you have a specific use case that the instructions above do not account for, consult the documentation for the AWS SDK for Go for a detailed description of credential loading behavior.

모델을 직접 호출하는 경우, Teleport가 Amazon Bedrock에 인증하는 데 사용하는 IAM 역할에 다음 AWS IAM 정책(Teleport 추론 정책과 혼동하지 마세요)을 첨부하세요:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "bedrock:InvokeModel",
      "Resource": "





5/5단계: 세션 진행 및 요약 보기#

완료되었습니다! 이제 테스트 세션을 진행할 준비가 되었습니다. tsh ssh, kubectl exec, tsh db connect 또는 웹 터미널을 사용하여 클러스터 리소스 중 하나에 연결하세요. 인터랙티브 세션을 시작하고 명령을 실행한 후 세션을 종료하고 Audit -> Session Recordings로 이동하세요. 요약 버튼이 있는 해당 녹화 타일을 볼 수 있습니다. 요약 버튼을 클릭하면 요약이 표시됩니다.

세션 녹화 요약 대시보드#

Session recording list screen with a summary visible

Info

요약을 생성하는 데 시간이 걸릴 수 있으며, 시간은 세션 크기, 모델 및 온도를 포함한 여러 요인에 따라 다릅니다. 일반적으로 세션이 Auth Service에 업로드된 후 최대 1분 이내에 표시됩니다.

세션 요약에 대한 감사 이벤트#

세션이 요약된 후 감사 이벤트가 생성됩니다. 이를 통해 높은 심각도 세션에 대해 알림을 보내기 위해 SIEM으로 이벤트를 전달할 수 있습니다.

// 심각 위험 수준의 세션 요약 예시.
{
  "cluster_name": "example.teleport.com",
  "code": "INF010I",
  "db_protocol": "",
  "db_uri": "",
  "ei": 1771606438680848100,
  "event": "session.summarized",
  "inference_finished_at": "2026-02-20T16:53:58.583618024Z",
  "inference_started_at": "2026-02-20T16:53:15.970015278Z",
  "model_name": "shell-summary-model",
  "namespace": "default",
  "risk_level": "CRITICAL",
  "server_hostname": "wasabi-db-host",
  "server_id": "46bdf6db-0b55-4e62-9dcc-32b0958df696",
  "server_labels": {
    "cloud": "aws",
    "env": "prod",
    "teleport.dev/account-id": "981262289404",
    "teleport.dev/instance-id": "i-0e94eeb1ff1f46dd7",
    "type": "teleport-postgres"
  },
  "server_sub_kind": "teleport",
  "server_version": "18.7.0",
  "session_type": "ssh",
  "short_description": "Credential harvesting followed by data exfiltration to command-and-control infrastructure with evidence destruction",
  "sid": "33610f89-096e-4708-9b43-c4b00e7c9c4f",
  "success": true,
  "time": "2026-02-20T16:53:58.671136904Z",
  "uid": "1a3813e0-53a6-4dfa-807c-da6e76215937",
  "username": "benarent"
}

제한 사항#

온디맨드 요약은 지원되지 않음#

요약은 일치하는 추론 정책을 기반으로 세션이 끝난 후 자동으로 생성됩니다. 특정 세션에 대한 요약을 수동으로 트리거하거나 이미 처리된 세션을 다시 요약하는 것은 불가능합니다.

세션 크기 제한#

현재, Teleport는 모델의 컨텍스트 창보다 큰 세션의 요약을 시도하지 않습니다. 토큰화 후 세션이 그보다 크면 OpenAI는 요청을 거부합니다. 사용된 입력 토큰은 낭비됩니다. 이를 방지하기 위해 Teleport는 inference_model 리소스의 spec.max_session_length_bytes 필드를 사용하여 추론 제공자에게 보낼 수 있는 최대 세션 크기를 사용자 정의할 수 있습니다. 모델에 대해 정확한 바이트 수를 제공할 수 없습니다. 실험에서 모델과 입력에 따라 토큰당 2~4바이트를 관찰했습니다.

요약할 세션 선택#

클러스터의 모든 세션을 무작위로 요약하면 비용이 증가할 수 있으므로, 어떤 세션이 요약되고 어떤 모델이 추론에 사용될지 구체적으로 지정하는 것이 좋습니다. 이러한 메커니즘 중 하나인 종류별 세션 선택은 위의 예시에서 이미 언급했습니다. 종류별 매칭 외에도, 각 추론 정책에 사용자 정의 필터를 추가하여 프로덕션 리소스를 대상으로 하는 세션, 특정 사용자가 참여한 세션 등만 요약할 수 있습니다.

필터는 Teleport 조건자 언어를 사용하여 표현됩니다. 추론 정책에 필터가 포함되어 있으면, 표시된 종류 중 하나 지정된 필터와 일치하는 세션에만 매칭됩니다.

세션 매칭 예시#

일반적인 경우는 요약을 위해 프로덕션 리소스만 선택하는 것입니다. 다음 예시 정책은 클러스터 레이블을 매칭하여 프로덕션 클러스터 중 하나의 Kubernetes 세션에만 매칭됩니다:

kind: inference_policy
version: v1
metadata:
  name: prod-k8s-sessions
  description: Summarize production Kubernetes sessions
spec:
  kinds:
  - k8s
  filter: 'equals(resource.metadata.labels["env"], "prod")'
  model: shell-summary-model

다음 예시는 두 정책을 사용하여 셸 및 데이터베이스 세션을 두 개의 다른 모델로 라우팅합니다. 생성된 두 inference_model 리소스인 database-summary-modelshell-summary-model이 있다고 가정합니다.

kind: inference_policy
version: v1
metadata:
  name: shell-policy
spec:
  kinds: ['ssh', 'k8s']
  model: shell-summary-model

---

kind: inference_policy
version: v1
metadata:
  name: db-policy
spec:
  kinds: ['db']
  model: db-summary-model

조건자 언어#

추론 정책 필터는 Teleport 조건자 언어를 사용하여 표현됩니다. 이 경우 언어는 다음 연산자를 지원합니다:

연산자 의미 예시
&& and (모든 조건이 일치해야 함) contains(field1, field2) && equals(field2, "val")
|| or (하나의 조건만 일치하면 됨) contains(field1, field2) || contains(field1, "val2")
! not (함수와 함께 사용) !equals(field1, field2)
== 같음 resource.metadata.labels["env"] == "prod"
!= 같지 않음 resource.metadata.labels["env"] != "prod"

언어는 또한 다음 함수를 지원합니다:

함수 반환 유형 설명
all_end_with(a, suffix) Boolean a가 목록이면 a의 모든 문자열이 suffix로 끝나면 true를 반환합니다. a가 문자열이면 asuffix로 끝나면 true를 반환합니다.
all_equal(a, b) Boolean a가 목록이면 a의 모든 항목이 b와 같으면 true를 반환합니다. a가 문자열이면 b와 같으면 true를 반환합니다.
contains(list, item) Boolean itemlist에 포함되어 있으면 true를 반환합니다.
contains_all(list, items) Boolean 모든 itemslist에 포함되어 있으면 true를 반환합니다.
contains_any(list, items) Boolean items 중 하나라도 list에 포함되어 있으면 true를 반환합니다.
equals(a, b) Boolean ab와 같으면 true를 반환합니다.
has_prefix(s, prefix) Boolean 문자열 sprefix로 시작하면 true를 반환합니다.
is_subset(a, item1, item2, ...) Boolean a가 목록이면 list(item1, item2, ...)a의 부분집합이면 true를 반환합니다. a가 문자열이면 목록에 a가 포함되어 있으면 true를 반환합니다.
set(value1, value2, ...) []string 문자열 목록을 반환합니다.

대상 리소스, 세션 및 사용자에 대한 정보를 사용하여 조건자를 구성할 수 있습니다.

필드 의미 예시
resource 이 세션이 연결되는 리소스 (서버, Kubernetes 클러스터 또는 데이터베이스)
resource.kind 리소스 종류 resource.kind == "node"
resource.metadata.labels 리소스 레이블 equals(resource.metadata.labels["env"], "prod")
resource.metadata.name 리소스 이름. SSH 서버의 경우 서버 ID입니다. resource.name == "production-cluster"
resource.spec.addr 서버 주소 (SSH 세션만 해당) resource.spec.addr == "123.123.123.123:3022"
resource.spec.db_protocol 데이터베이스 프로토콜 (데이터베이스 세션만 해당). 지원 값은 DB 리소스 참조를 참조하세요. resource.spec.protocol == "postgres"
resource.spec.hostname 서버 호스트 이름 (SSH 세션만 해당) resource.spec.hostname == "dummy-host"
resource.spec.uri 데이터베이스 URI (데이터베이스 세션만 해당) has_prefix(resource.spec.uri, "db-host")
session 매칭 중인 세션. 이 객체는 session.enddb.session.end 이벤트의 모든 필드를 지원하므로 여기서는 가장 유용한 것들만 나열합니다.
session.cluster_name Teleport 클러스터 이름 cluster_name == "teleport.example.com"
session.db_name 데이터베이스 이름 (Teleport 리소스가 아닌 기본 데이터베이스; 데이터베이스 세션만 해당) session.db_name == "orders"
session.db_service 데이터베이스 서비스 이름 (데이터베이스 세션만 해당) session.db_service == "prod-db-service"
session.kubernetes_groups Kubernetes 그룹 목록 (Kubernetes 세션만 해당) contains(session.kubernetes_groups, "viewers")
session.kubernetes_node_name 파드를 실행하는 노드 이름 (Kubernetes 세션만 해당) session.kubernetes_node_name == "node1"
session.kubernetes_pod_name 파드 이름 (Kubernetes 세션만 해당) session.kubernetes_pod_name == "some-pod"
session.kubernetes_pod_namespace 파드가 포함된 네임스페이스 (Kubernetes 세션만 해당) session.kubernetes_pod_namespace == "default"
session.kubernetes_users Kubernetes 사용자 이름 목록 (Kubernetes 세션만 해당) contains(session.kubernetes_users, "admin")
session.participants 세션에 참여한 사용자 (SSH 및 Kubernetes 세션만 해당) contains(session.participants, "alice")
user 세션을 생성한 사용자.
user.metadata.name 사용자 이름 is_subset(user.metadata.name, "alice", "bob")
user.spec.roles 사용자 역할 contains(user.spec.roles, "intern")
user.spec.traits 사용자 특성 contains(user.spec.traits["teams"], "alpha")

LiteLLM 및 기타 OpenAI 호환 프록시 사용#

현재 공식적으로 지원되는 유일한 추론 제공자는 OpenAI이지만, 이 목적으로 OpenAI 호환 API를 사용하는 것도 가능합니다. 예를 들어, 일부 또는 모든 세션을 다른 제공자로 라우팅하거나 온프레미스에서 언어 모델을 호스팅할 수도 있습니다. 이를 수행하는 한 가지 방법은 LiteLLM을 사용하는 것입니다. 다음은 수행해야 할 작업입니다:

  1. Teleport Auth Service에서 접근할 수 있는 호스트에 LiteLLM 프록시 서버 (LLM 게이트웨이)를 설정합니다.
  2. LiteLLM 구성에 원하는 모델을 추가합니다. 이 예시에서는 my-custom-model이라고 부르겠습니다.
  3. Teleport 추론 모델을 구성합니다. spec.openai.base_url 속성을 사용하여 Teleport가 LiteLLM 인스턴스를 가리키도록 하고 spec.openai.openai_model_idmy-custom-model을 입력합니다.
  4. LiteLLM 마스터 키를 포함하는 inference_secret을 추가합니다.

다음은 예시 구성입니다:

kind: inference_model
version: v1
metadata:
  name: lite-llm-summary-model
spec:
  openai:
    # LiteLLM 프록시의 경우, openai_model_id는 LiteLLM에서 구성된 공개 모델 이름입니다.
    openai_model_id: my-custom-model
    api_key_secret_ref: lite-llm-master-key
    base_url: http://llm-host:4000/

---

kind: inference_secret
version: v1
metadata:
  name: lite-llm-master-key
spec:
  # LiteLLM의 경우 API 키는 OpenAI 키가 *아닙니다*. 대신 LiteLLM 마스터 키를 사용하세요.
  value: '<paste-your-master-key-here>'

모니터링#

Teleport는 세션 요약기를 모니터링하는 데 사용할 수 있는 몇 가지 유용한 Prometheus 메트릭을 제공합니다. 메트릭은 추론 모델 이름으로 레이블이 지정되며, OpenAI 오류의 경우 추가적으로 OpenAI API 오류 코드로 레이블이 지정됩니다. 자세한 내용은 Teleport 메트릭 참조를 참조하세요.

문제 해결#

Amazon Bedrock이 온디맨드 처리량으로 모델 호출에 실패함#

문제: "ValidationException: Invocation of model ID [model-id] with on-demand throughput isn't supported. Retry your request with the ID or ARN of an inference profile that contains this model."와 함께 요약이 실패합니다.

해결 방법: inference_model 리소스에서 모델 ID 대신 Amazon Bedrock 추론 프로파일을 사용하세요.

Amazon Bedrock 모델 식별자가 유효하지 않음#

문제: "ValidationException: The provided model identifier is invalid."와 함께 요약이 실패합니다.

해결 방법: 가능한 이유 중 하나는 inference_model 리소스에 선언된 region과 주어진 모델 또는 추론 프로파일에 사용 가능한 리전 간의 불일치입니다. 해당 리전이 지원되는지 확인하세요.

Amazon Bedrock이 모델 또는 추론 정책에 대한 액세스를 거부함#

문제: "AccessDeniedException: User: [user] is not authorized to perform: bedrock:InvokeModel on resource: [resource-arn] because no identity-based policy allows the bedrock:InvokeModel action"과 함께 요약이 실패합니다.

해결 방법: 먼저, Teleport가 사용하는 AWS IAM 역할에 Teleport 구성(inference_model 리소스)에서 지정한 모델 또는 추론 정책에 대한 InvokeModel 작업을 허용하는 정책이 첨부되어 있는지 확인하세요. 그런 다음 Amazon Bedrock 추론 프로파일을 사용하는 경우, 정책이 추론 프로파일 자체뿐만 아니라 해당 추론 프로파일과 관련된 모든 Amazon Bedrock 모델도 참조하는지 확인하세요. 다음 명령을 사용하여 추론 프로파일의 세부 정보를 가져오고, 을 추론 프로파일 ARN으로 대체하세요:

aws bedrock get-inference-profile --inference-profile-identifier="bedrock-inference-profile-arn"/>"