InfoGrab DocsInfoGrab Docs

teleport-plugin-event-handler 차트 레퍼런스

요약

teleport-plugin-event-handler Helm 차트는 Event Handler Teleport 플러그인을 구성하는 데 사용되며, 사용자가 이벤트와 세션 로그를 추가 처리 또는 저장을 위해 Fluentd 인스턴스로 전송할 수 있도록 합니다.

teleport-plugin-event-handler Helm 차트는 Event Handler Teleport 플러그인을 구성하는 데 사용되며, 사용자가 이벤트와 세션 로그를 추가 처리 또는 저장을 위해 Fluentd 인스턴스로 전송할 수 있도록 합니다.

GitHub에서 소스를 탐색할 수 있습니다.

이 레퍼런스는 teleport-plugin-event-handler 차트에서 사용 가능한 값들을 상세히 설명합니다.

Warning

영구적인 수정을 가하기 전에 프로덕션 인스턴스, 환경 및/또는 설정을 백업하는 것을 모범 사례로 권장합니다. 이렇게 하면 필요한 경우 기존 상태로 롤백할 수 있습니다.

teleport#

teleport는 플러그인이 Teleport 클러스터에 연결하는 방식을 설명하는 구성을 담고 있습니다.

teleport.address#

Type Default
string ""

teleport.address는 플러그인이 연결하는 Teleport 클러스터의 주소입니다. 이 주소에는 Teleport 클러스터의 도메인 이름과 포트가 모두 포함되어야 합니다. auth 서버의 주소이거나 proxy 서버의 주소일 수 있습니다.

예를 들면 다음과 같습니다.

  • Proxy에 연결: teleport.example.com:443 또는 teleport.example.com:3080
  • Auth에 연결: teleport-auth.example.com:3025

주소가 비어 있으면, tbot.teleportProxyAddress 또는 tbot.teleportAuthAddress가 설정되어 있을 경우 해당 값이 사용됩니다.

teleport.identitySecretName#

Type Default
string ""

teleport.identitySecretName은 Teleport 클러스터에 대한 연결 자격 증명을 담고 있는 Kubernetes secret의 이름입니다.

secret은 다음 형식이어야 합니다.

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: teleport-plugin-event-handler-identity
data:
  auth_id: #...

이 자격 증명을 얻는 방법에 대한 자세한 내용은 Fluentd로 이벤트 내보내기 가이드를 참고하세요.

teleport.identitySecretPath#

Type Default
string "auth_id"

teleport.identitySecretPathteleport.identitySecretName으로 지정된 Kubernetes secret에서 Teleport 클러스터 연결 자격 증명을 담고 있는 키입니다. secret의 경로가 "auth_id"인 경우, 이 필드는 생략할 수 있습니다.

eventHandler#

eventHandler는 플러그인이 Teleport 이벤트를 전달하는 데 사용하는 구성을 담고 있습니다.

eventHandler.storagePath#

Type Default
string "/var/lib/teleport/plugins/event-handler/storage"

eventHandler.storagePath는 이벤트 핸들러의 스토리지 디렉터리입니다.

eventHandler.timeout#

Type Default
string "10s"

eventHandler.timeout은 폴링 타임아웃입니다.

eventHandler.batch#

Type Default
int 20

eventHandler.batch는 fetch 배치 크기입니다.

eventHandler.windowSize#

Type Default
string "24h"

eventHandler.windowSize는 이벤트 핸들러가 Teleport로부터 이벤트를 요청하는 시간 윈도우의 기간을 구성합니다. 기본값은 24시간으로 설정되어 있습니다. 이벤트 백엔드가 기본 윈도우 크기에 해당하는 이벤트 볼륨을 처리할 수 없는 경우 윈도우 크기를 줄이세요. 윈도우 크기는 Go의 time.ParseDuration으로 파싱되는 duration 문자열로 지정해야 합니다.

eventHandler.debug#

Type Default
bool false

eventHandler.debug는 디버그 로깅을 활성화합니다.

eventHandler.types#

Type Default
list []

eventHandler.types는 전달할 이벤트 유형의 목록입니다. 설정하지 않으면, 이벤트 핸들러는 모든 이벤트를 전달합니다.

eventHandler.skipEventTypes#

Type Default
list []

eventHandler.skipEventTypes는 건너뛸 감사 이벤트 유형의 목록입니다.

eventHandler.skipSessionTypes#

Type Default
list []

eventHandler.skipSessionTypes는 건너뛸 세션 레코딩 이벤트 유형의 목록입니다. 설정하지 않으면, 이벤트 핸들러는 노이즈성 이벤트와 바이너리 이벤트를 건너뜁니다.

기본적으로 건너뛰는 이벤트 목록은 Teleport-event-handler README를 참고하세요.

eventHandler.startTime#

Type Default
string ""

eventHandler.startTime은 수집을 시작할 시작 시각입니다(RFC3339 형식).

eventHandler.dryRun#

Type Default
bool false

eventHandler.dryRun은 Fluentd로 이벤트를 전송하지 않는 dry run을 활성화합니다.

eventHandler.concurrency#

Type Default
int 5

eventHandler.concurrency는 처리할 동시 세션 수입니다. 기본값은 5로 설정되어 있습니다.

eventHandler.lock.enabled#

Type Default
bool false

eventHandler.lock.enabled는 사용자 자동 잠금 활성화 여부를 제어합니다.

eventHandler.lock.failedAttemptsCount#

Type Default
int 3

eventHandler.lock.failedAttemptsCount는 잠금을 유발하는 lockPeriod 내 실패 시도 횟수입니다. 기본값은 3으로 설정되어 있습니다.

eventHandler.lock.period#

Type Default
string "1m"

eventHandler.lock.periodlock-failed-attempts-count 회의 실패 시도가 잠금을 유발하는 시간 기간입니다. 기본값은 1분으로 설정되어 있습니다.

eventHandler.lock.for#

Type Default
string ""

eventHandler.lock.for는 사용자가 잠기는 시간 기간입니다.

fluentd#

fluentd는 Fluentd 포워더에 대한 구성을 담고 있습니다.

fluentd.url#

Type Default
string ""

fluentd.url은 이벤트가 전송될 Fluentd URL입니다.

fluentd.sessionUrl#

Type Default
string ""

fluentd.sessionUrl은 세션 로그가 전송될 Fluentd URL입니다.

fluentd.certificate#

fluentd.certificate는 플러그인의 Fluentd 클라이언트 인증서에 대한 구성을 담고 있습니다. certManager.enabled가 true이면 cert-manager가 자체 secret을 사용하므로, 이 섹션은 사용되지 않습니다.

fluentd.certificate.secretName#

Type Default
string ""

fluentd.certificate.secretName은 Fluentd에 연결하기 위한 자격 증명을 담고 있는 secret입니다. 여기에는 CA 인증서, 클라이언트 키, 클라이언트 인증서가 포함되어야 합니다.

fluentd.certificate.caPath#

Type Default
string "ca.crt"

fluentd.certificate.caPath는 secret 내에서 CA 인증서를 담고 있는 키의 이름입니다.

fluentd.certificate.certPath#

Type Default
string "client.crt"

fluentd.certificate.certPath는 secret 내에서 클라이언트 인증서를 담고 있는 키의 이름입니다.

fluentd.certificate.keyPath#

Type Default
string "client.key"

fluentd.certificate.keyPath는 secret 내에서 클라이언트 개인 키를 담고 있는 키의 이름입니다.

fluentd.maxConnections#

Type Default
int 0

fluentd.maxConnections는 Fluentd에 대한 최대 연결 수입니다. 기본적으로, 또는 0으로 설정하면, 이 값은 eventHandler.concurrency * 2가 됩니다.

tbot#

tbot은 플러그인이 Teleport에 연결하는 데 필요한 자격 증명을 얻고 갱신하는 선택적 tbot 배포를 제어합니다. 여기에는 기본값과 필수값만 설명되어 있으며, 지원되는 값의 전체 목록은 tbot 차트 레퍼런스를 참고하세요.

tbot.enabled#

Type Default
bool false

tbot.enabled는 이벤트 핸들러 플러그인과 함께 tbot을 배포할지 여부를 제어합니다.

tbot.clusterName#

Type Default
string ""

tbot.clusterName은 tbot과 이벤트 핸들러 플러그인이 참여할 Teleport 클러스터의 이름입니다. tbot이 활성화된 경우 이 값을 설정하는 것은 필수입니다.

tbot.teleportProxyAddress#

Type Default
string ""

tbot.teleportProxyAddress는 봇이 연결할 teleport Proxy Service 주소입니다. 여기에는 포트 번호가 포함되어야 하며, Proxy Service의 경우 보통 443 또는 3080입니다. Proxy Service에 연결하는 것이 Teleport에 연결하는 가장 일반적이고 권장되는 방법입니다. 이는 Teleport Enterprise (Cloud)에 연결하기 위해 필수입니다.

이 설정은 teleportAuthAddress와 상호 배타적입니다.

예를 들면 다음과 같습니다.

tbot:
  teleportProxyAddress: "test.teleport.sh:443"

tbot.teleportAuthAddress#

Type Default
string ""

tbot.teleportAuthAddress는 봇이 연결할 teleport Auth Service 주소입니다. 여기에는 포트 번호가 포함되어야 하며, Auth Service의 경우 보통 3025입니다. Auth Service 직접 연결은 봇을 teleport-cluster Helm 릴리스와 동일한 Kubernetes 클러스터에 배포하고 Auth Service에 직접 액세스할 수 있는 경우에 사용해야 합니다. 그 외의 경우에는 Proxy Service를 통해 연결하는 것을 우선하세요.

이 설정은 teleportProxyAddress와 상호 배타적입니다.

예를 들면 다음과 같습니다.

teleportAuthAddress: "teleport-auth.teleport-namespace.svc.cluster.local:3025"

tbot.joinMethod#

Type Default
string "kubernetes"

tbot.joinMethod는 tbot이 Teleport 클러스터에 참여하는 방식을 설명합니다. 지원되는 값의 목록과 자세한 설명은 join method 레퍼런스를 참고하세요.

tbot.token#

Type Default
string ""

tbot.token은 tbot이 Teleport 클러스터에 참여하는 데 사용하는 토큰의 이름입니다. joinMethod"token"으로 설정된 경우가 아니라면 이 값은 민감하지 않습니다. 설정하지 않으면 기본값은 [release name]-tbot입니다. crd.create가 true로 설정되면, 제공된 토큰 이름으로 TeleportProvisionToken이 생성됩니다.

crd#

crd는 차트가 Teleport Kubernetes Operator가 관리하는 커스텀 리소스를 생성할지 여부를 제어합니다. 활성화하면, 차트는 플러그인을 Teleport에 자동으로 연결하기 위해 TeleportRoleV8, TeleportBotV1, TeleportProvisionToken 리소스를 생성합니다.

Warning

커스텀 리소스가 성공적으로 적용되려면 Teleport 클러스터에서 Teleport Kubernetes Operator가 이미 활성화되어 있어야 합니다. 또한, 커스텀 리소스는 Teleport Kubernetes Operator와 동일한 네임스페이스에 배포되어야 합니다.

crd.create#

Type Default
bool false

crd.create는 플러그인을 자동으로 부트스트랩하기 위해 차트가 Operator 커스텀 리소스를 생성할지 여부를 제어합니다.

crd.namespace#

Type Default
string ""

crd.namespace는 커스텀 리소스가 생성되는 Kubernetes 네임스페이스를 선택적으로 재정의합니다. 이는 Teleport Kubernetes Operator가 실행 중인 네임스페이스와 일치해야 합니다. 기본값은 릴리스 네임스페이스입니다.

crd.tokenSpecOverride#

crd.tokenSpecOverride는 tbot이 Teleport 클러스터에 참여하는 데 사용할 join 토큰 스펙을 선택적으로 재정의합니다.

tbot이 활성화되면, 기본 구성은 kubernetes in_cluster join method를 사용합니다. 기본적으로 tbot의 서비스 계정은 모든 kubernetes join 유형(in_cluster, JWKS, OIDC)에 대해 허용됩니다.

토큰을 다른 지원되는 join method를 사용하도록 구성할 수도 있습니다. 플러그인이 클러스터에 올바르게 참여하려면 토큰 스펙이 tbot.joinMethod와 일치해야 합니다. 지원되는 값의 목록과 자세한 설명은 join method 레퍼런스를 참고하세요.

Warning

kubernetes join method를 사용하지 않거나 tbot이 활성화되지 않은 경우, join_method를 지정해야 합니다. Operator가 Teleport 토큰 리소스를 올바르게 생성할 수 있도록 join 토큰에 필요한 모든 필드가 존재하는지 확인하세요.

예시 (Kubernetes JWKS join method):

tokenSpecOverride:
  join_method: kubernetes
  kubernetes:
    type: static_jwks
    static_jwks:
      jwks: |
        # Place the kubernetes JWKS here (`kubectl get --raw /openid/v1/jwks`)
        {"keys":[--snip--]}

예시 (Kubernetes OIDC join method):

tokenSpecOverride:
  join_method: kubernetes
  kubernetes:
    type: oidc
    oidc:
      # Insert the OIDC issuer value here, it will vary depending on your
      # cluster and cloud provider.
      issuer: https://oidc.eks.us-west-2.amazonaws.com/id/my-cluster

certManager#

certManager는 플러그인과 Fluentd 간 mTLS 연결을 위한 TLS 인증서를 프로비저닝하는 데 차트가 cert-manager를 사용할지 여부를 제어합니다. 활성화하면, cert-manager는 플러그인의 릴리스 네임스페이스에 두 개의 Kubernetes secret을 생성합니다: Fluentd 서버 자격 증명(CA 인증서, 서버 인증서, 서버 키)과 플러그인 클라이언트 자격 증명(CA 인증서, 클라이언트 인증서, 클라이언트 키)입니다. TLS 인증서는 PKCS#8 인코딩과 ECDSA 암호화를 사용합니다.

Note

Kubernetes 클러스터에 cert-manager를 직접 설치하고 구성해야 합니다.

자세한 내용은 cert-manager Helm 설치 지침을 참고하세요.

certManager.enabled#

Type Default
bool false

certManager.enabled는 플러그인용 TLS 인증서를 프로비저닝하는 데 cert-manager를 사용할지 여부를 제어합니다.

certManager.issuer#

certManager.issuer는 Fluentd 서버 및 클라이언트 인증서를 발급할 cert-managerIssuer 또는 ClusterIssuer입니다.

certManager.issuer.create#

Type Default
bool true

certManager.issuer.create는 Fluentd 서버 및 클라이언트 인증서를 발급할 프라이빗 CA issuer를 차트가 생성할지 여부를 제어합니다.

자세한 내용은 cert-manager Bootstrapping CA Issuers 문서 를 참고하세요.

Warning

certManager.issuer.create가 true이면, 차트는 새 프라이빗 CA issuer를 생성합니다. 이는 기존 Fluentd 배포가 새 인증서를 로드하기 위해 재시작되어야 할 수 있음을 의미합니다. 따라서, 프로덕션에서는 자체 issuer를 사용하는 것이 권장됩니다.

자세한 내용은 cert-manager Issuers 문서 를 참고하세요.

certManager.issuer.name#

Type Default
string ""

certManager.issuer.name은 issuer의 Name입니다. certManager.issuer.create가 true이면 사용되지 않습니다.

Note

certManager.issuer.create가 false이면, 적절한 issuer를 직접 설치하고 구성해야 합니다. Issuer 리소스를 구성하는 경우, 플러그인의 릴리스 네임스페이스와 동일한 네임스페이스에 있어야 합니다. 또는, 클러스터 전역 issuer를 위해 ClusterIssuer를 사용할 수 있습니다.

자세한 내용은 cert-manager Issuers 문서 를 참고하세요.

certManager.issuer.kind#

Type Default
string "Issuer"

certManager.issuer.kind는 issuer의 Kind입니다. certManager.issuer.create가 true이면 사용되지 않습니다. 권한을 플러그인의 릴리스 네임스페이스로 한정하기 위해 기본값은 'Issuer'입니다.

certManager.issuer.group#

Type Default
string "cert-manager.io"

certManager.issuer.group은 issuer의 Group입니다. certManager.issuer.create가 true이면 사용되지 않습니다. 내장 issuer를 사용하기 위해 기본값은 'cert-manager.io'입니다.

certManager.dnsNames#

Type Default
list []

certManager.dnsNames는 Fluentd 포워더의 DNS 이름으로, 서버 인증서의 SANs 확장을 채웁니다.

certManager.ipAddresses#

Type Default
list []

certManager.ipAddresses는 Fluentd 포워더의 IP 주소로, 서버 인증서의 SANs 확장을 채웁니다.

certManager.ttl#

Type Default
string "87600h"

certManager.ttl은 TLS 인증서의 time-to-live 기간입니다. 기본값은 87600시간(10년)입니다.

certManager.renewBefore#

Type Default
string ""

certManager.renewBeforecertManager.ttl 이전에 TLS 인증서를 갱신할 시점입니다. 이 값은 certManager.ttl보다 작아야 합니다. 비어 있으면, 발급된 인증서 time-to-live 기간의 1/3이 기본값으로 사용됩니다. 예를 들어, 인증서가 60분 동안 유효하다면, cert-manager는 만료 20분 전에 인증서를 갱신합니다.

annotations#

annotations는 차트가 생성하는 다양한 Kubernetes 객체에 적용할 어노테이션을 담고 있습니다. 자세한 내용은 Kubernetes 어노테이션 문서를 참고하세요.

annotations.config#

Type Default
object {}

annotations.config는 ConfigMap에 설정할 어노테이션입니다.

annotations.deployment#

Type Default
object {}

annotations.deployment는 Deployment에 설정할 어노테이션입니다.

annotations.pod#

Type Default
object {}

annotations.pod는 Pod에 설정할 어노테이션입니다.

annotations.certSecret#

Type Default
object {}

annotations.certSecretcertManager.enabled가 true일 때 cert-manager v1.5+가 생성하는 인증서 secret에 설정할 어노테이션입니다

extraLabels#

extraLabels는 차트가 생성하는 리소스에 적용할 추가 Kubernetes 레이블을 담고 있습니다. 자세한 내용은 Kubernetes 레이블 문서 를 참고하세요.

extraLabels.config#

Type Default
object {}

extraLabels.config는 ConfigMap에 설정할 레이블입니다.

extraLabels.deployment#

Type Default
object {}

extraLabels.deployment는 Deployment에 설정할 레이블입니다.

extraLabels.pod#

Type Default
object {}

extraLabels.pod는 Pod에 설정할 레이블입니다.

extraLabels.certSecret#

Type Default
object {}

extraLabels.certSecretcertManager.enabled가 true일 때 cert-manager v1.5+가 생성하는 인증서 secret에 설정할 레이블입니다.

image#

image는 차트가 생성하는 플러그인 Pod에 사용되는 컨테이너 이미지를 설정합니다.

Teleport에서 게시한 이미지 대신 자체 플러그인 이미지를 사용하도록 이를 재정의할 수 있습니다.

image.repository#

Type Default
string "public.ecr.aws/gravitational/teleport-plugin-event-handler"

image.repository는 이미지 리포지토리입니다.

image.pullPolicy#

Type Default
string "IfNotPresent"

image.pullPolicyKubernetes 이미지 pull 정책입니다.

image.tag#

Type Default
string ""

image.tag는 기본값이 차트 appVersion인 이미지 태그를 재정의합니다.

일반적으로 Teleport 플러그인의 버전은 차트의 버전과 일치합니다. 차트 버전 15.0.0을 설치하면, 플러그인 버전 15.0.0을 사용합니다. 플러그인 업그레이드는 차트를 업그레이드하여 수행합니다.

Warning

image.tag는 개발 및 커스텀 태그를 위한 것입니다. 이는 일반적인 배포에서 플러그인 버전을 제어하는 데 사용해서는 안 됩니다. 이 차트는 특정 플러그인 버전을 실행하도록 설계되었습니다. 다른 버전을 실행하려고 하면 호환성 문제가 발생합니다.

Teleport 플러그인 버전 X.Y.Z를 실행하려면, 대신 helm install --version X.Y.Z를 사용해야 합니다.

imagePullSecrets#

Type Default
list []

imagePullSecrets는 프라이빗 Docker 레지스트리에 액세스하는 데 선택적으로 사용할 수 있는 인증 토큰을 담고 있는 secret의 목록입니다.

자세한 내용은 Kubernetes 레퍼런스를 참고하세요.

nameOverride#

Type Default
string ""

nameOverride는 차트의 이름을 선택적으로 재정의하며, 리소스에 이름을 지정할 때 릴리스 이름과 함께 사용됩니다.

fullnameOverride#

Type Default
string ""

fullnameOverride는 리소스의 전체 이름을 선택적으로 재정의합니다.

podSecurityContext#

Type Default
object {}

podSecurityContext는 차트가 생성하는 모든 Pod에 대한 pod 보안 컨텍스트를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

보안 컨텍스트를 설정 해제하려면, null 또는 ~로 설정하세요.

securityContext#

Type Default
object {}

securityContext는 차트가 생성하는 모든 Pod에 대한 컨테이너 보안 컨텍스트를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

보안 컨텍스트를 설정 해제하려면, null 또는 ~로 설정하세요.

resources#

Type Default
object {}

resources는 차트가 생성하는 모든 Pod에 대한 리소스 requests/limits를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

nodeSelector#

Type Default
object {}

nodeSelector는 차트가 생성하는 모든 Pod에 대한 node selector를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

tls#

tls는 event-handler pod에 자체 TLS 자료를 마운트하기 위한 설정을 담고 있습니다. event-handler는 TLS 서버를 노출하지 않으므로, 이는 CA를 신뢰하는 데만 사용됩니다.

tls.existingCASecretName#

Type Default
string ""

tls.existingCASecretName은 신뢰할 수 있는 CA 또는 PEM 형식의 번들을 Teleport pod에 로드하기 위해 SSL_CERT_FILE 환경 변수를 설정합니다. 주입된 CA는 Proxy Service와의 TLS 통신을 검증하는 데 사용됩니다.

다음과 같은 명령을 사용하여 Teleport와 동일한 네임스페이스에 CA 인증서를 담고 있는 secret을 생성해야 합니다:

$ kubectl create secret generic my-root-ca --from-file=ca.pem=/path/to/root-ca.pem

tls.existingCASecretKeyName#

Type Default
string "ca.pem"

tls.existingCASecretKeyName은 CA secret에서 신뢰할 수 있는 CA 번들 파일로 사용될 키를 결정합니다.

tolerations#

Type Default
list []

tolerations는 차트가 생성하는 모든 Pod에 대한 toleration을 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

affinity#

Type Default
object {}

affinity는 차트가 생성하는 모든 Pod에 대한 affinity를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

volumes#

Type Default
list []

volumes는 메인 event-handler pod에 마운트되는 볼륨을 설정합니다. 자세한 내용은 Kubernetes 볼륨 문서를 참고하세요.

예를 들면 다음과 같습니다.

- name: storage
  persistentVolumeClaim:
    claimName: teleport-plugin-event-handler

volumeMounts#

Type Default
list []

volumeMounts는 메인 event-handler 컨테이너에 대한 볼륨 마운트를 설정합니다. 자세한 내용은 Kubernetes 볼륨 문서를 참고하세요.

예를 들면 다음과 같습니다.

- name: storage
  mountPath: "/var/lib/teleport/plugins/event-handler/storage"

extraArgs#

Type Default
list []

extraArgs는 메인 event-handler 컨테이너의 teleport-plugin start에 전달할 추가 인자를 담고 있습니다.

extraEnv#

Type Default
list []

extraEnv는 메인 event-handler 컨테이너에 설정할 추가 환경 변수를 담고 있습니다.

예를 들면 다음과 같습니다.

extraEnv:
  - name: HTTPS_PROXY
    value: "http://username:password@my.proxy.host:3128"

teleport-plugin-event-handler 차트 레퍼런스

Teleport v18.9
원문 보기
요약

teleport-plugin-event-handler Helm 차트는 Event Handler Teleport 플러그인을 구성하는 데 사용되며, 사용자가 이벤트와 세션 로그를 추가 처리 또는 저장을 위해 Fluentd 인스턴스로 전송할 수 있도록 합니다.

teleport-plugin-event-handler Helm 차트는 Event Handler Teleport 플러그인을 구성하는 데 사용되며, 사용자가 이벤트와 세션 로그를 추가 처리 또는 저장을 위해 Fluentd 인스턴스로 전송할 수 있도록 합니다.

GitHub에서 소스를 탐색할 수 있습니다.

이 레퍼런스는 teleport-plugin-event-handler 차트에서 사용 가능한 값들을 상세히 설명합니다.

Warning

영구적인 수정을 가하기 전에 프로덕션 인스턴스, 환경 및/또는 설정을 백업하는 것을 모범 사례로 권장합니다. 이렇게 하면 필요한 경우 기존 상태로 롤백할 수 있습니다.

teleport#

teleport는 플러그인이 Teleport 클러스터에 연결하는 방식을 설명하는 구성을 담고 있습니다.

teleport.address#

Type Default
string ""

teleport.address는 플러그인이 연결하는 Teleport 클러스터의 주소입니다. 이 주소에는 Teleport 클러스터의 도메인 이름과 포트가 모두 포함되어야 합니다. auth 서버의 주소이거나 proxy 서버의 주소일 수 있습니다.

예를 들면 다음과 같습니다.

  • Proxy에 연결: teleport.example.com:443 또는 teleport.example.com:3080
  • Auth에 연결: teleport-auth.example.com:3025

주소가 비어 있으면, tbot.teleportProxyAddress 또는 tbot.teleportAuthAddress가 설정되어 있을 경우 해당 값이 사용됩니다.

teleport.identitySecretName#

Type Default
string ""

teleport.identitySecretName은 Teleport 클러스터에 대한 연결 자격 증명을 담고 있는 Kubernetes secret의 이름입니다.

secret은 다음 형식이어야 합니다.

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: teleport-plugin-event-handler-identity
data:
  auth_id: #...

이 자격 증명을 얻는 방법에 대한 자세한 내용은 Fluentd로 이벤트 내보내기 가이드를 참고하세요.

teleport.identitySecretPath#

Type Default
string "auth_id"

teleport.identitySecretPathteleport.identitySecretName으로 지정된 Kubernetes secret에서 Teleport 클러스터 연결 자격 증명을 담고 있는 키입니다. secret의 경로가 "auth_id"인 경우, 이 필드는 생략할 수 있습니다.

eventHandler#

eventHandler는 플러그인이 Teleport 이벤트를 전달하는 데 사용하는 구성을 담고 있습니다.

eventHandler.storagePath#

Type Default
string "/var/lib/teleport/plugins/event-handler/storage"

eventHandler.storagePath는 이벤트 핸들러의 스토리지 디렉터리입니다.

eventHandler.timeout#

Type Default
string "10s"

eventHandler.timeout은 폴링 타임아웃입니다.

eventHandler.batch#

Type Default
int 20

eventHandler.batch는 fetch 배치 크기입니다.

eventHandler.windowSize#

Type Default
string "24h"

eventHandler.windowSize는 이벤트 핸들러가 Teleport로부터 이벤트를 요청하는 시간 윈도우의 기간을 구성합니다. 기본값은 24시간으로 설정되어 있습니다. 이벤트 백엔드가 기본 윈도우 크기에 해당하는 이벤트 볼륨을 처리할 수 없는 경우 윈도우 크기를 줄이세요. 윈도우 크기는 Go의 time.ParseDuration으로 파싱되는 duration 문자열로 지정해야 합니다.

eventHandler.debug#

Type Default
bool false

eventHandler.debug는 디버그 로깅을 활성화합니다.

eventHandler.types#

Type Default
list []

eventHandler.types는 전달할 이벤트 유형의 목록입니다. 설정하지 않으면, 이벤트 핸들러는 모든 이벤트를 전달합니다.

eventHandler.skipEventTypes#

Type Default
list []

eventHandler.skipEventTypes는 건너뛸 감사 이벤트 유형의 목록입니다.

eventHandler.skipSessionTypes#

Type Default
list []

eventHandler.skipSessionTypes는 건너뛸 세션 레코딩 이벤트 유형의 목록입니다. 설정하지 않으면, 이벤트 핸들러는 노이즈성 이벤트와 바이너리 이벤트를 건너뜁니다.

기본적으로 건너뛰는 이벤트 목록은 Teleport-event-handler README를 참고하세요.

eventHandler.startTime#

Type Default
string ""

eventHandler.startTime은 수집을 시작할 시작 시각입니다(RFC3339 형식).

eventHandler.dryRun#

Type Default
bool false

eventHandler.dryRun은 Fluentd로 이벤트를 전송하지 않는 dry run을 활성화합니다.

eventHandler.concurrency#

Type Default
int 5

eventHandler.concurrency는 처리할 동시 세션 수입니다. 기본값은 5로 설정되어 있습니다.

eventHandler.lock.enabled#

Type Default
bool false

eventHandler.lock.enabled는 사용자 자동 잠금 활성화 여부를 제어합니다.

eventHandler.lock.failedAttemptsCount#

Type Default
int 3

eventHandler.lock.failedAttemptsCount는 잠금을 유발하는 lockPeriod 내 실패 시도 횟수입니다. 기본값은 3으로 설정되어 있습니다.

eventHandler.lock.period#

Type Default
string "1m"

eventHandler.lock.periodlock-failed-attempts-count 회의 실패 시도가 잠금을 유발하는 시간 기간입니다. 기본값은 1분으로 설정되어 있습니다.

eventHandler.lock.for#

Type Default
string ""

eventHandler.lock.for는 사용자가 잠기는 시간 기간입니다.

fluentd#

fluentd는 Fluentd 포워더에 대한 구성을 담고 있습니다.

fluentd.url#

Type Default
string ""

fluentd.url은 이벤트가 전송될 Fluentd URL입니다.

fluentd.sessionUrl#

Type Default
string ""

fluentd.sessionUrl은 세션 로그가 전송될 Fluentd URL입니다.

fluentd.certificate#

fluentd.certificate는 플러그인의 Fluentd 클라이언트 인증서에 대한 구성을 담고 있습니다. certManager.enabled가 true이면 cert-manager가 자체 secret을 사용하므로, 이 섹션은 사용되지 않습니다.

fluentd.certificate.secretName#

Type Default
string ""

fluentd.certificate.secretName은 Fluentd에 연결하기 위한 자격 증명을 담고 있는 secret입니다. 여기에는 CA 인증서, 클라이언트 키, 클라이언트 인증서가 포함되어야 합니다.

fluentd.certificate.caPath#

Type Default
string "ca.crt"

fluentd.certificate.caPath는 secret 내에서 CA 인증서를 담고 있는 키의 이름입니다.

fluentd.certificate.certPath#

Type Default
string "client.crt"

fluentd.certificate.certPath는 secret 내에서 클라이언트 인증서를 담고 있는 키의 이름입니다.

fluentd.certificate.keyPath#

Type Default
string "client.key"

fluentd.certificate.keyPath는 secret 내에서 클라이언트 개인 키를 담고 있는 키의 이름입니다.

fluentd.maxConnections#

Type Default
int 0

fluentd.maxConnections는 Fluentd에 대한 최대 연결 수입니다. 기본적으로, 또는 0으로 설정하면, 이 값은 eventHandler.concurrency * 2가 됩니다.

tbot#

tbot은 플러그인이 Teleport에 연결하는 데 필요한 자격 증명을 얻고 갱신하는 선택적 tbot 배포를 제어합니다. 여기에는 기본값과 필수값만 설명되어 있으며, 지원되는 값의 전체 목록은 tbot 차트 레퍼런스를 참고하세요.

tbot.enabled#

Type Default
bool false

tbot.enabled는 이벤트 핸들러 플러그인과 함께 tbot을 배포할지 여부를 제어합니다.

tbot.clusterName#

Type Default
string ""

tbot.clusterName은 tbot과 이벤트 핸들러 플러그인이 참여할 Teleport 클러스터의 이름입니다. tbot이 활성화된 경우 이 값을 설정하는 것은 필수입니다.

tbot.teleportProxyAddress#

Type Default
string ""

tbot.teleportProxyAddress는 봇이 연결할 teleport Proxy Service 주소입니다. 여기에는 포트 번호가 포함되어야 하며, Proxy Service의 경우 보통 443 또는 3080입니다. Proxy Service에 연결하는 것이 Teleport에 연결하는 가장 일반적이고 권장되는 방법입니다. 이는 Teleport Enterprise (Cloud)에 연결하기 위해 필수입니다.

이 설정은 teleportAuthAddress와 상호 배타적입니다.

예를 들면 다음과 같습니다.

tbot:
  teleportProxyAddress: "test.teleport.sh:443"

tbot.teleportAuthAddress#

Type Default
string ""

tbot.teleportAuthAddress는 봇이 연결할 teleport Auth Service 주소입니다. 여기에는 포트 번호가 포함되어야 하며, Auth Service의 경우 보통 3025입니다. Auth Service 직접 연결은 봇을 teleport-cluster Helm 릴리스와 동일한 Kubernetes 클러스터에 배포하고 Auth Service에 직접 액세스할 수 있는 경우에 사용해야 합니다. 그 외의 경우에는 Proxy Service를 통해 연결하는 것을 우선하세요.

이 설정은 teleportProxyAddress와 상호 배타적입니다.

예를 들면 다음과 같습니다.

teleportAuthAddress: "teleport-auth.teleport-namespace.svc.cluster.local:3025"

tbot.joinMethod#

Type Default
string "kubernetes"

tbot.joinMethod는 tbot이 Teleport 클러스터에 참여하는 방식을 설명합니다. 지원되는 값의 목록과 자세한 설명은 join method 레퍼런스를 참고하세요.

tbot.token#

Type Default
string ""

tbot.token은 tbot이 Teleport 클러스터에 참여하는 데 사용하는 토큰의 이름입니다. joinMethod"token"으로 설정된 경우가 아니라면 이 값은 민감하지 않습니다. 설정하지 않으면 기본값은 [release name]-tbot입니다. crd.create가 true로 설정되면, 제공된 토큰 이름으로 TeleportProvisionToken이 생성됩니다.

crd#

crd는 차트가 Teleport Kubernetes Operator가 관리하는 커스텀 리소스를 생성할지 여부를 제어합니다. 활성화하면, 차트는 플러그인을 Teleport에 자동으로 연결하기 위해 TeleportRoleV8, TeleportBotV1, TeleportProvisionToken 리소스를 생성합니다.

Warning

커스텀 리소스가 성공적으로 적용되려면 Teleport 클러스터에서 Teleport Kubernetes Operator가 이미 활성화되어 있어야 합니다. 또한, 커스텀 리소스는 Teleport Kubernetes Operator와 동일한 네임스페이스에 배포되어야 합니다.

crd.create#

Type Default
bool false

crd.create는 플러그인을 자동으로 부트스트랩하기 위해 차트가 Operator 커스텀 리소스를 생성할지 여부를 제어합니다.

crd.namespace#

Type Default
string ""

crd.namespace는 커스텀 리소스가 생성되는 Kubernetes 네임스페이스를 선택적으로 재정의합니다. 이는 Teleport Kubernetes Operator가 실행 중인 네임스페이스와 일치해야 합니다. 기본값은 릴리스 네임스페이스입니다.

crd.tokenSpecOverride#

crd.tokenSpecOverride는 tbot이 Teleport 클러스터에 참여하는 데 사용할 join 토큰 스펙을 선택적으로 재정의합니다.

tbot이 활성화되면, 기본 구성은 kubernetes in_cluster join method를 사용합니다. 기본적으로 tbot의 서비스 계정은 모든 kubernetes join 유형(in_cluster, JWKS, OIDC)에 대해 허용됩니다.

토큰을 다른 지원되는 join method를 사용하도록 구성할 수도 있습니다. 플러그인이 클러스터에 올바르게 참여하려면 토큰 스펙이 tbot.joinMethod와 일치해야 합니다. 지원되는 값의 목록과 자세한 설명은 join method 레퍼런스를 참고하세요.

Warning

kubernetes join method를 사용하지 않거나 tbot이 활성화되지 않은 경우, join_method를 지정해야 합니다. Operator가 Teleport 토큰 리소스를 올바르게 생성할 수 있도록 join 토큰에 필요한 모든 필드가 존재하는지 확인하세요.

예시 (Kubernetes JWKS join method):

tokenSpecOverride:
  join_method: kubernetes
  kubernetes:
    type: static_jwks
    static_jwks:
      jwks: |
        # Place the kubernetes JWKS here (`kubectl get --raw /openid/v1/jwks`)
        {"keys":[--snip--]}

예시 (Kubernetes OIDC join method):

tokenSpecOverride:
  join_method: kubernetes
  kubernetes:
    type: oidc
    oidc:
      # Insert the OIDC issuer value here, it will vary depending on your
      # cluster and cloud provider.
      issuer: https://oidc.eks.us-west-2.amazonaws.com/id/my-cluster

certManager#

certManager는 플러그인과 Fluentd 간 mTLS 연결을 위한 TLS 인증서를 프로비저닝하는 데 차트가 cert-manager를 사용할지 여부를 제어합니다. 활성화하면, cert-manager는 플러그인의 릴리스 네임스페이스에 두 개의 Kubernetes secret을 생성합니다: Fluentd 서버 자격 증명(CA 인증서, 서버 인증서, 서버 키)과 플러그인 클라이언트 자격 증명(CA 인증서, 클라이언트 인증서, 클라이언트 키)입니다. TLS 인증서는 PKCS#8 인코딩과 ECDSA 암호화를 사용합니다.

Note

Kubernetes 클러스터에 cert-manager를 직접 설치하고 구성해야 합니다.

자세한 내용은 cert-manager Helm 설치 지침을 참고하세요.

certManager.enabled#

Type Default
bool false

certManager.enabled는 플러그인용 TLS 인증서를 프로비저닝하는 데 cert-manager를 사용할지 여부를 제어합니다.

certManager.issuer#

certManager.issuer는 Fluentd 서버 및 클라이언트 인증서를 발급할 cert-managerIssuer 또는 ClusterIssuer입니다.

certManager.issuer.create#

Type Default
bool true

certManager.issuer.create는 Fluentd 서버 및 클라이언트 인증서를 발급할 프라이빗 CA issuer를 차트가 생성할지 여부를 제어합니다.

자세한 내용은 cert-manager Bootstrapping CA Issuers 문서 를 참고하세요.

Warning

certManager.issuer.create가 true이면, 차트는 새 프라이빗 CA issuer를 생성합니다. 이는 기존 Fluentd 배포가 새 인증서를 로드하기 위해 재시작되어야 할 수 있음을 의미합니다. 따라서, 프로덕션에서는 자체 issuer를 사용하는 것이 권장됩니다.

자세한 내용은 cert-manager Issuers 문서 를 참고하세요.

certManager.issuer.name#

Type Default
string ""

certManager.issuer.name은 issuer의 Name입니다. certManager.issuer.create가 true이면 사용되지 않습니다.

Note

certManager.issuer.create가 false이면, 적절한 issuer를 직접 설치하고 구성해야 합니다. Issuer 리소스를 구성하는 경우, 플러그인의 릴리스 네임스페이스와 동일한 네임스페이스에 있어야 합니다. 또는, 클러스터 전역 issuer를 위해 ClusterIssuer를 사용할 수 있습니다.

자세한 내용은 cert-manager Issuers 문서 를 참고하세요.

certManager.issuer.kind#

Type Default
string "Issuer"

certManager.issuer.kind는 issuer의 Kind입니다. certManager.issuer.create가 true이면 사용되지 않습니다. 권한을 플러그인의 릴리스 네임스페이스로 한정하기 위해 기본값은 'Issuer'입니다.

certManager.issuer.group#

Type Default
string "cert-manager.io"

certManager.issuer.group은 issuer의 Group입니다. certManager.issuer.create가 true이면 사용되지 않습니다. 내장 issuer를 사용하기 위해 기본값은 'cert-manager.io'입니다.

certManager.dnsNames#

Type Default
list []

certManager.dnsNames는 Fluentd 포워더의 DNS 이름으로, 서버 인증서의 SANs 확장을 채웁니다.

certManager.ipAddresses#

Type Default
list []

certManager.ipAddresses는 Fluentd 포워더의 IP 주소로, 서버 인증서의 SANs 확장을 채웁니다.

certManager.ttl#

Type Default
string "87600h"

certManager.ttl은 TLS 인증서의 time-to-live 기간입니다. 기본값은 87600시간(10년)입니다.

certManager.renewBefore#

Type Default
string ""

certManager.renewBeforecertManager.ttl 이전에 TLS 인증서를 갱신할 시점입니다. 이 값은 certManager.ttl보다 작아야 합니다. 비어 있으면, 발급된 인증서 time-to-live 기간의 1/3이 기본값으로 사용됩니다. 예를 들어, 인증서가 60분 동안 유효하다면, cert-manager는 만료 20분 전에 인증서를 갱신합니다.

annotations#

annotations는 차트가 생성하는 다양한 Kubernetes 객체에 적용할 어노테이션을 담고 있습니다. 자세한 내용은 Kubernetes 어노테이션 문서를 참고하세요.

annotations.config#

Type Default
object {}

annotations.config는 ConfigMap에 설정할 어노테이션입니다.

annotations.deployment#

Type Default
object {}

annotations.deployment는 Deployment에 설정할 어노테이션입니다.

annotations.pod#

Type Default
object {}

annotations.pod는 Pod에 설정할 어노테이션입니다.

annotations.certSecret#

Type Default
object {}

annotations.certSecretcertManager.enabled가 true일 때 cert-manager v1.5+가 생성하는 인증서 secret에 설정할 어노테이션입니다

extraLabels#

extraLabels는 차트가 생성하는 리소스에 적용할 추가 Kubernetes 레이블을 담고 있습니다. 자세한 내용은 Kubernetes 레이블 문서 를 참고하세요.

extraLabels.config#

Type Default
object {}

extraLabels.config는 ConfigMap에 설정할 레이블입니다.

extraLabels.deployment#

Type Default
object {}

extraLabels.deployment는 Deployment에 설정할 레이블입니다.

extraLabels.pod#

Type Default
object {}

extraLabels.pod는 Pod에 설정할 레이블입니다.

extraLabels.certSecret#

Type Default
object {}

extraLabels.certSecretcertManager.enabled가 true일 때 cert-manager v1.5+가 생성하는 인증서 secret에 설정할 레이블입니다.

image#

image는 차트가 생성하는 플러그인 Pod에 사용되는 컨테이너 이미지를 설정합니다.

Teleport에서 게시한 이미지 대신 자체 플러그인 이미지를 사용하도록 이를 재정의할 수 있습니다.

image.repository#

Type Default
string "public.ecr.aws/gravitational/teleport-plugin-event-handler"

image.repository는 이미지 리포지토리입니다.

image.pullPolicy#

Type Default
string "IfNotPresent"

image.pullPolicyKubernetes 이미지 pull 정책입니다.

image.tag#

Type Default
string ""

image.tag는 기본값이 차트 appVersion인 이미지 태그를 재정의합니다.

일반적으로 Teleport 플러그인의 버전은 차트의 버전과 일치합니다. 차트 버전 15.0.0을 설치하면, 플러그인 버전 15.0.0을 사용합니다. 플러그인 업그레이드는 차트를 업그레이드하여 수행합니다.

Warning

image.tag는 개발 및 커스텀 태그를 위한 것입니다. 이는 일반적인 배포에서 플러그인 버전을 제어하는 데 사용해서는 안 됩니다. 이 차트는 특정 플러그인 버전을 실행하도록 설계되었습니다. 다른 버전을 실행하려고 하면 호환성 문제가 발생합니다.

Teleport 플러그인 버전 X.Y.Z를 실행하려면, 대신 helm install --version X.Y.Z를 사용해야 합니다.

imagePullSecrets#

Type Default
list []

imagePullSecrets는 프라이빗 Docker 레지스트리에 액세스하는 데 선택적으로 사용할 수 있는 인증 토큰을 담고 있는 secret의 목록입니다.

자세한 내용은 Kubernetes 레퍼런스를 참고하세요.

nameOverride#

Type Default
string ""

nameOverride는 차트의 이름을 선택적으로 재정의하며, 리소스에 이름을 지정할 때 릴리스 이름과 함께 사용됩니다.

fullnameOverride#

Type Default
string ""

fullnameOverride는 리소스의 전체 이름을 선택적으로 재정의합니다.

podSecurityContext#

Type Default
object {}

podSecurityContext는 차트가 생성하는 모든 Pod에 대한 pod 보안 컨텍스트를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

보안 컨텍스트를 설정 해제하려면, null 또는 ~로 설정하세요.

securityContext#

Type Default
object {}

securityContext는 차트가 생성하는 모든 Pod에 대한 컨테이너 보안 컨텍스트를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

보안 컨텍스트를 설정 해제하려면, null 또는 ~로 설정하세요.

resources#

Type Default
object {}

resources는 차트가 생성하는 모든 Pod에 대한 리소스 requests/limits를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

nodeSelector#

Type Default
object {}

nodeSelector는 차트가 생성하는 모든 Pod에 대한 node selector를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

tls#

tls는 event-handler pod에 자체 TLS 자료를 마운트하기 위한 설정을 담고 있습니다. event-handler는 TLS 서버를 노출하지 않으므로, 이는 CA를 신뢰하는 데만 사용됩니다.

tls.existingCASecretName#

Type Default
string ""

tls.existingCASecretName은 신뢰할 수 있는 CA 또는 PEM 형식의 번들을 Teleport pod에 로드하기 위해 SSL_CERT_FILE 환경 변수를 설정합니다. 주입된 CA는 Proxy Service와의 TLS 통신을 검증하는 데 사용됩니다.

다음과 같은 명령을 사용하여 Teleport와 동일한 네임스페이스에 CA 인증서를 담고 있는 secret을 생성해야 합니다:

$ kubectl create secret generic my-root-ca --from-file=ca.pem=/path/to/root-ca.pem

tls.existingCASecretKeyName#

Type Default
string "ca.pem"

tls.existingCASecretKeyName은 CA secret에서 신뢰할 수 있는 CA 번들 파일로 사용될 키를 결정합니다.

tolerations#

Type Default
list []

tolerations는 차트가 생성하는 모든 Pod에 대한 toleration을 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

affinity#

Type Default
object {}

affinity는 차트가 생성하는 모든 Pod에 대한 affinity를 설정합니다. 자세한 내용은 Kubernetes 문서를 참고하세요.

volumes#

Type Default
list []

volumes는 메인 event-handler pod에 마운트되는 볼륨을 설정합니다. 자세한 내용은 Kubernetes 볼륨 문서를 참고하세요.

예를 들면 다음과 같습니다.

- name: storage
  persistentVolumeClaim:
    claimName: teleport-plugin-event-handler

volumeMounts#

Type Default
list []

volumeMounts는 메인 event-handler 컨테이너에 대한 볼륨 마운트를 설정합니다. 자세한 내용은 Kubernetes 볼륨 문서를 참고하세요.

예를 들면 다음과 같습니다.

- name: storage
  mountPath: "/var/lib/teleport/plugins/event-handler/storage"

extraArgs#

Type Default
list []

extraArgs는 메인 event-handler 컨테이너의 teleport-plugin start에 전달할 추가 인자를 담고 있습니다.

extraEnv#

Type Default
list []

extraEnv는 메인 event-handler 컨테이너에 설정할 추가 환경 변수를 담고 있습니다.

예를 들면 다음과 같습니다.

extraEnv:
  - name: HTTPS_PROXY
    value: "http://username:password@my.proxy.host:3128"