Machine & Workload Identity 구성 참조 Teleport Machine & Workload Identity 구성 참조.
version은 사용 중인 구성 파일의 버전을 지정합니다. `v2`가 가장 최신이며 모든 새 봇에 사용되어야 합니다. 이 예시의 나머지는 `v2` 스키마입니다. debug는 stderr에 상세 로깅을 활성화합니다. 지정하지 않으면 기본값은 false입니다. auth_server는 `tbot`이 연결해야 하는 Auth Service 인스턴스의 주소를 지정합니다. Proxy Service 주소를 지정하기 위해 `proxy_server`를 지정하는 것을 권장합니다. proxy_server는 `tbot`이 연결해야 하는 Teleport Proxy Service의 주소를 지정합니다. Teleport Proxy Service의 주소 또는 Teleport Cloud를 사용하는 경우 Teleport Cloud 인스턴스의 주소를 사용하는 것을 권장합니다. credential_ttl은 `tbot`이 생성한 인증서의 유효 기간을 지정합니다. `m`(분) 또는 `h`(시간) 접미사와 함께 양의 숫자 값이어야 합니다. 기본값은 `1h`입니다. 최대값은 `24h`입니다. # 대부분의 출력 및 서비스에서 `tbot`의 내부 인증서보다 짧은 TTL을 갖도록 재정의할 수 있습니다. renewal_interval은 `tbot`이 생성한 출력을 갱신하려는 빈도를 지정합니다. `m`(분) 또는 `h`(시간) 접미사와 함께 양의 숫자 값이어야 합니다. 기본값은 `20m`입니다. 이 값은 `credential_ttl`보다 낮아야 합니다. 이 값은 `tbot`이 원샷 모드에서 실행 중일 때 무시됩니다. # 대부분의 출력 및 서비스에서 `tbot`의 내부 인증서보다 짧은 갱신 간격을 갖도록 재정의할 수 있습니다. oneshot은 출력을 생성한 직후 `tbot`이 종료되도록 구성합니다. 기본값은 `false`입니다. CI/CD와 같은 일시적 환경에서는 `true` 값이 유용합니다. onboarding은 `tbot`이 Teleport 클러스터로 인증하는 방법을 제어하는 구성 옵션 그룹입니다. storage는 `tbot`이 내부 상태를 저장하는 데 사용할 대상을 지정합니다. 이 상태는 민감하므로 여기에 지정한 대상이 `tbot`만 접근할 수 있도록 해야 합니다. # 지정하지 않으면 storage는 `/var/lib/teleport/bot` 경로의 디렉토리 대상으로 설정됩니다. # 지원되는 대상의 전체 목록과 구성 옵션은 이 참조 페이지의 대상 섹션을 참조하세요. services는 어떤 `tbot` 서브 서비스를 활성화해야 하고 어떻게 구성해야 하는지 지정합니다. # 지원되는 서비스의 전체 목록과 구성 옵션은 이 참조 페이지의 서비스 섹션을 참조하세요. outputs는 `services`와 동의어이며 레거시 호환성을 위해 존재합니다. `services`와 `outputs` 양쪽에 지정된 모든 서비스가 활성화됩니다. 두 필드 사이에 항목을 중복하지 않아야 하며, 가능한 경우 `services` 필드 내에 구성을 유지하는 것을 권장합니다. 출력 서비스 `identity` type은 출력의 유형을 지정합니다. identity 출력의 경우 항상 `identity`입니다. ssh_config는 identity 출력이 OpenSSH 구성 파일을 생성하려 할지 제어합니다. 이를 위해서는 `tbot`이 Teleport Proxy Service에 연결할 수 있어야 합니다. "on" 또는 "off"여야 합니다. 지정하지 않으면 기본값은 "on"입니다. allow_reissue는 identity 출력이 생성한 인증서를 재발행할 수 있는지 (예: `tsh apps login`/`tsh db login`과 함께 사용) 제어합니다. 지정하지 않으면 기본값은 `false`입니다. 인증서를 재발행할 수 없다는 오류 메시지가 표시되면 이를 `true`로 설정하세요. The following configuration fields are available across most output types. destination specifies where the output should write any generated artifacts such as certificates and configuration files. # See the full list of supported destinations and their configuration options under the Destinations section of this reference page. roles specifies the roles that should be included in the certificates generated by the output. These roles must be roles that the bot has been granted permission to impersonate. # if no roles are specified, all roles the bot is allowed to impersonate are used. credential_ttl and renewal_interval override the credential TTL and renewal interval for this specific output, so that you can make its certificates valid for shorter than `tbot`'s internal certificates. # This is particularly useful when using `tbot` in one-shot as part of a cron job where you need `tbot`'s internal certificate to live long enough to be renewed on the next invocation, but don't want long-lived workload certificates on-disk. name optionally overrides the name of the service used in logs and the `/readyz` endpoint. It must only contain letters, numbers, hyphens, underscores, and plus symbols. `application` type은 출력의 유형을 지정합니다. application 출력의 경우 항상 `application`입니다. app_name은 `tbot`이 자격 증명을 생성해야 하는 Teleport 클러스터에 구성된 애플리케이션 이름을 지정합니다. 이 필드는 반드시 지정해야 합니다. The following configuration fields are available across most output types. destination specifies where the output should write any generated artifacts such as certificates and configuration files. # See the full list of supported destinations and their configuration options under the Destinations section of this reference page. roles specifies the roles that should be included in the certificates generated by the output. These roles must be roles that the bot has been granted permission to impersonate. # if no roles are specified, all roles the bot is allowed to impersonate are used. credential_ttl and renewal_interval override the credential TTL and renewal interval for this specific output, so that you can make its certificates valid for shorter than `tbot`'s internal certificates. # This is particularly useful when using `tbot` in one-shot as part of a cron job where you need `tbot`'s internal certificate to live long enough to be renewed on the next invocation, but don't want long-lived workload certificates on-disk. name optionally overrides the name of the service used in logs and the `/readyz` endpoint. It must only contain letters, numbers, hyphens, underscores, and plus symbols. `database` type은 출력의 유형을 지정합니다. database 출력의 경우 항상 `database`입니다. service는 출력이 자격 증명을 생성해야 하는 Teleport에 구성된 데이터베이스 서버의 이름입니다. 이 필드는 반드시 지정해야 합니다. database는 자격 증명을 생성할 지정된 데이터베이스 서버의 특정 데이터베이스 이름입니다. 여러 개별 데이터베이스를 지원하지 않는 데이터베이스 유형의 경우 지정할 필요가 없습니다. username은 자격 증명을 생성할 지정된 데이터베이스 서버의 사용자 이름입니다. 사용자가 없는 데이터베이스 유형의 경우 지정할 필요가 없습니다. 기본 형식이 사용됩니다. 지원되는 값의 전체 목록은 아래의 "지원되는 형식" 테이블을 참조하세요. The following configuration fields are available across most output types. destination specifies where the output should write any generated artifacts such as certificates and configuration files. # See the full list of supported destinations and their configuration options under the Destinations section of this reference page. roles specifies the roles that should be included in the certificates generated by the output. These roles must be roles that the bot has been granted permission to impersonate. # if no roles are specified, all roles the bot is allowed to impersonate are used. credential_ttl and renewal_interval override the credential TTL and renewal interval for this specific output, so that you can make its certificates valid for shorter than `tbot`'s internal certificates. # This is particularly useful when using `tbot` in one-shot as part of a cron job where you need `tbot`'s internal certificate to live long enough to be renewed on the next invocation, but don't want long-lived workload certificates on-disk. name optionally overrides the name of the service used in logs and the `/readyz` endpoint. It must only contain letters, numbers, hyphens, underscores, and plus symbols. `kubernetes` type은 출력의 유형을 지정합니다. kubernetes 출력의 경우 항상 `kubernetes`입니다. kubernetes_cluster는 출력이 자격 증명과 kubeconfig를 생성해야 하는 Teleport에 구성된 Kubernetes 클러스터의 이름입니다. 이 필드는 반드시 지정해야 합니다. disable_exec_plugin은 `kubectl` 자격 증명 exec 플러그인으로 `tbot` 바이너리를 사용하는 기본 동작을 비활성화합니다. 이는 생성된 kubeconfig를 소비하는 시스템에 `tbot`이 존재하지 않는 환경에서 유용합니다(예: `kubernetes_secret` 출력 유형 사용 시). 이 자격 증명 exec 플러그인은 단일 `kubectl` 호출 내에서 자격 증명을 자동으로 갱신하는 데 사용됩니다. 기본값은 `false`입니다. The following configuration fields are available across most output types. destination specifies where the output should write any generated artifacts such as certificates and configuration files. # See the full list of supported destinations and their configuration options under the Destinations section of this reference page. roles specifies the roles that should be included in the certificates generated by the output. These roles must be roles that the bot has been granted permission to impersonate. # if no roles are specified, all roles the bot is allowed to impersonate are used. credential_ttl and renewal_interval override the credential TTL and renewal interval for this specific output, so that you can make its certificates valid for shorter than `tbot`'s internal certificates. # This is particularly useful when using `tbot` in one-shot as part of a cron job where you need `tbot`'s internal certificate to live long enough to be renewed on the next invocation, but don't want long-lived workload certificates on-disk. name optionally overrides the name of the service used in logs and the `/readyz` endpoint. It must only contain letters, numbers, hyphens, underscores, and plus symbols. `kubernetes/v2` selectors는 하나 이상의 일치하는 Kubernetes 클러스터를 포함합니다. 각 일치는 봇이 클러스터에 접근할 권한이 있다고 가정하여 결과 `kubeconfig.yaml`에 포함됩니다. 다음 구성 필드는 대부분의 출력 유형에서 사용 가능합니다. 이 출력 유형에는 `roles`가 지원되지 않습니다. credential_ttl 및 renewal_interval은 이 특정 출력에 대한 자격 증명 TTL 및 갱신 간격을 재정의하여 `tbot`의 내부 인증서보다 짧은 유효 기간의 인증서를 만들 수 있습니다. # 이는 cron 작업의 일부로 `tbot`을 원샷으로 사용할 때 특히 유용합니다. 다음 호출 시 갱신될 수 있도록 `tbot`의 내부 인증서가 충분히 오래 지속되어야 하지만, 디스크에 오래 지속되는 워크로드 인증서를 원하지 않는 경우에 사용됩니다. disable_exec_plugin은 `kubectl` 자격 증명 exec 플러그인으로 `tbot` 바이너리를 사용하는 기본 동작을 비활성화합니다. 이는 생성된 kubeconfig를 소비하는 시스템에 `tbot`이 존재하지 않는 환경에서 유용합니다(예: `kubernetes_secret` 출력 유형 사용 시). 이 자격 증명 exec 플러그인은 단일 `kubectl` 호출 내에서 자격 증명을 자동으로 갱신하는 데 사용됩니다. 기본값은 `false`입니다. context_name_template은 생성된 kubeconfig에서 컨텍스트 이름의 형식을 결정합니다. 다음 변수를 지원하는 Go 템플릿 문자열입니다: # - {} - Teleport 클러스터 이름 - {} - Kubernetes 클러스터 리소스 이름 - {} - `{{index .Labels "key"}}`를 사용하여 인덱싱할 수 있는 Kubernetes 클러스터 리소스에 적용된 레이블의 맵 # 기본적으로 다음 템플릿이 사용됩니다: "{}-{}" relay_server는 tbot이 Teleport 컨트롤 플레인 대신 Kubernetes 트래픽을 라우팅하는 데 사용해야 하는 Relay 서비스 주소를 지정합니다. 설정하면 모든 Kubernetes API 연결이 이 Relay를 통해 전송됩니다; 지정된 Relay를 통해 접근 가능한 Kubernetes 클러스터만 접근할 수 있으며 tbot은 컨트롤 플레인으로 폴백하지 않습니다. 호스트 이름 또는 host:port를 제공하세요 # relay_server 옵션을 사용하려면 `tbot` 18.5.0 이상이 필요합니다. name은 선택적으로 로그와 `/readyz` 엔드포인트에서 사용되는 서비스 이름을 재정의합니다. 문자, 숫자, 하이픈, 밑줄, 더하기 기호만 포함해야 합니다. `kubernetes/argo-cd` selectors는 하나 이상의 일치하는 Kubernetes 클러스터를 포함합니다. 봇이 접근할 권한이 있는 각 일치하는 클러스터는 Kubernetes 시크릿을 생성하여 Argo CD에 등록됩니다. secret_namespace는 Argo CD 클러스터 시크릿이 생성될 Kubernetes 네임스페이스입니다. Argo CD가 실행 중인 네임스페이스와 일치해야 합니다. # 기본적으로 `tbot`은 `POD_NAMESPACE` 환경 변수를 사용하거나, 비어 있는 경우: "default"를 사용합니다. secret_name_prefix는 Kubernetes 시크릿 이름에 적용될 접두사로 쉽게 식별할 수 있도록 합니다. 이름의 나머지는 대상 클러스터 이름의 해시에서 파생됩니다. # 기본적으로 접두사는 "teleport.argocd-cluster"입니다. secret_labels는 Argo CD 검색을 위해 추가된 "argocd.argoproj.io/secret-type" 레이블에 추가하여 클러스터 시크릿에 적용될 레이블 집합입니다. # 레이블 값은 다음 변수를 가진 Go 템플릿 문자열일 수 있습니다: # - {} - Teleport 클러스터 이름 - {} - Kubernetes 클러스터 리소스 이름 - {} - `{{index .Labels "key"}}`를 사용하여 인덱싱할 수 있는 Kubernetes 클러스터 리소스에 적용된 레이블의 맵 # 레이블 값이 비어 있으면 레이블이 시크릿에 추가되지 않습니다. secret_annotations는 `tbot`의 자체 어노테이션에 추가하여 클러스터 시크릿에 적용될 어노테이션 집합입니다: # - "teleport.dev/bot-name" - 봇 이름 - "teleport.dev/kubernetes-cluster-name" - Kubernetes 클러스터 이름 - "teleport.dev/updated" - RFC3339 형식의 타임스탬프 - "teleport.dev/tbot-version" - 실행 중인 tbot의 버전 - "teleport.dev/teleport-cluster-name" - Teleport 클러스터 이름 # 어노테이션 값은 다음 변수를 가진 Go 템플릿 문자열일 수 있습니다: # - {} - Teleport 클러스터 이름 - {} - Kubernetes 클러스터 리소스 이름 - {} - `{{index .Labels "key"}}`를 사용하여 인덱싱할 수 있는 Kubernetes 클러스터 리소스에 적용된 레이블의 맵 # 어노테이션 값이 비어 있으면 어노테이션이 시크릿에 추가되지 않습니다 project는 Kubernetes 클러스터가 연결될 Argo CD 프로젝트입니다. namespaces는 선택적으로 대상 Kubernetes 클러스터 내에서 애플리케이션을 배포할 수 있는 네임스페이스를 제한합니다. 기본적으로 모든 네임스페이스가 허용됩니다. cluster_resources는 Argo CD가 대상 클러스터 내의 클러스터 범위 리소스에 대해 작동할 수 있는지 결정합니다. 이 옵션은 `namespaces`가 비어 있지 않을 때만 적용됩니다. cluster_name_template은 Argo CD에서 클러스터 이름의 형식을 결정합니다. 다음 변수를 지원하는 Go 템플릿 문자열입니다: # - {} - Teleport 클러스터 이름 - {} - Kubernetes 클러스터 리소스 이름 # 기본적으로 다음 템플릿이 사용됩니다: "{}-{}" 다음 구성 필드는 대부분의 출력 유형에서 사용 가능합니다. 이 출력 유형에는 `roles` 및 `destination`이 지원되지 않습니다. credential_ttl 및 renewal_interval은 이 특정 출력에 대한 자격 증명 TTL 및 갱신 간격을 재정의합니다. name은 선택적으로 로그와 `/readyz` 엔드포인트에서 사용되는 서비스 이름을 재정의합니다. 문자, 숫자, 하이픈, 밑줄, 더하기 기호만 포함해야 합니다. `ssh_host` type은 출력의 유형을 지정합니다. ssh host 출력의 경우 항상 `ssh_host`입니다. principals는 호스트 인증서에 포함할 호스트 이름 목록입니다. 이 이름은 클라이언트가 호스트에 연결하는 데 사용하는 이름과 일치해야 합니다. The following configuration fields are available across most output types. destination specifies where the output should write any generated artifacts such as certificates and configuration files. # See the full list of supported destinations and their configuration options under the Destinations section of this reference page. roles specifies the roles that should be included in the certificates generated by the output. These roles must be roles that the bot has been granted permission to impersonate. # if no roles are specified, all roles the bot is allowed to impersonate are used. credential_ttl and renewal_interval override the credential TTL and renewal interval for this specific output, so that you can make its certificates valid for shorter than `tbot`'s internal certificates. # This is particularly useful when using `tbot` in one-shot as part of a cron job where you need `tbot`'s internal certificate to live long enough to be renewed on the next invocation, but don't want long-lived workload certificates on-disk. name optionally overrides the name of the service used in logs and the `/readyz` endpoint. It must only contain letters, numbers, hyphens, underscores, and plus symbols. `workload-identity-x509` type은 출력의 유형을 지정합니다. X509 Workload Identity 출력의 경우 항상 `workload-identity-x509`입니다. Selector is used to control which WorkloadIdentity resource will be used to issue the workload identity credential. The selector can either be the name of a specific WorkloadIdentity resource or a label selector that can match multiple WorkloadIdentity resources. # The selector must be set to either a name or labels, but not both. The following configuration fields are available across most output types. destination specifies where the output should write any generated artifacts such as certificates and configuration files. # See the full list of supported destinations and their configuration options under the Destinations section of this reference page. roles specifies the roles that should be included in the certificates generated by the output. These roles must be roles that the bot has been granted permission to impersonate. # if no roles are specified, all roles the bot is allowed to impersonate are used. credential_ttl and renewal_interval override the credential TTL and renewal interval for this specific output, so that you can make its certificates valid for shorter than `tbot`'s internal certificates. # This is particularly useful when using `tbot` in one-shot as part of a cron job where you need `tbot`'s internal certificate to live long enough to be renewed on the next invocation, but don't want long-lived workload certificates on-disk. name optionally overrides the name of the service used in logs and the `/readyz` endpoint. It must only contain letters, numbers, hyphens, underscores, and plus symbols. `workload-identity-jwt` type은 출력의 유형을 지정합니다. JWT Workload Identity 출력의 경우 항상 `workload-identity-jwt`입니다. audiences는 JWT의 `aud` 클레임에 포함되어야 하는 값을 지정합니다. 일반적으로 JWT의 의도된 수신자를 식별하며 단일 값을 포함합니다. # 최소 하나의 audience 값을 지정해야 합니다. Selector is used to control which WorkloadIdentity resource will be used to issue the workload identity credential. The selector can either be the name of a specific WorkloadIdentity resource or a label selector that can match multiple WorkloadIdentity resources. # The selector must be set to either a name or labels, but not both. The following configuration fields are available across most output types. destination specifies where the output should write any generated artifacts such as certificates and configuration files. # See the full list of supported destinations and their configuration options under the Destinations section of this reference page. roles specifies the roles that should be included in the certificates generated by the output. These roles must be roles that the bot has been granted permission to impersonate. # if no roles are specified, all roles the bot is allowed to impersonate are used. credential_ttl and renewal_interval override the credential TTL and renewal interval for this specific output, so that you can make its certificates valid for shorter than `tbot`'s internal certificates. # This is particularly useful when using `tbot` in one-shot as part of a cron job where you need `tbot`'s internal certificate to live long enough to be renewed on the next invocation, but don't want long-lived workload certificates on-disk. name optionally overrides the name of the service used in logs and the `/readyz` endpoint. It must only contain letters, numbers, hyphens, underscores, and plus symbols. `workload-identity-aws-roles-anywhere` type은 출력의 유형을 지정합니다. Workload Identity AWS Roles Anywhere 출력의 경우 항상 `workload-identity-aws-roles-anywhere`입니다. 다음 구성 필드는 대부분의 출력 유형에서 사용 가능합니다. destination은 인증서 및 구성 파일과 같이 생성된 아티팩트를 출력이 작성해야 하는 위치를 지정합니다. # 지원되는 대상의 전체 목록과 구성 옵션은 이 참조 페이지의 대상 섹션을 참조하세요. role_arn은 생성된 자격 증명이 수임해야 하는 AWS 역할의 ARN입니다. 필수. profile_arn은 Roles Anywhere 교환 중 사용할 AWS 프로필의 ARN입니다. 필수. trust_anchor_arn은 Roles Anywhere 교환 중 사용해야 하는 신뢰 앵커의 ARN입니다. 필수. region은 Roles Anywhere 교환에 사용할 AWS 리전입니다. 생략하면 `AWS_REGION` 환경 변수 또는 AWS 구성 파일로 설정된 리전이 기본값입니다. session_duration은 생성된 AWS 자격 증명의 유효 기간입니다. 최대 12시간까지 가능합니다. 생략하면 기본값은 6시간입니다. session_renewal_interval은 AWS 자격 증명을 갱신해야 하는 간격입니다. 세션 기간보다 짧아야 합니다. 생략하면 기본값은 1시간입니다. credential_profile_name은 AWS 자격 증명 파일에 쓸 프로필 이름입니다. 지정하지 않으면 이 프로필은 `default`로 이름이 지정됩니다. artifact_name은 AWS 자격 증명을 작성할 파일 이름입니다. 지정하지 않으면 기본값은 `aws_credentials`입니다. overwrite_credential_file은 AWS 자격 증명 파일이 이미 존재하는 경우 덮어쓸지, 또는 tbot이 추가한 프로필을 파일의 기존 프로필과 병합할지 제어합니다. 지정하지 않으면 기본값은 `false`입니다. Selector is used to control which WorkloadIdentity resource will be used to issue the workload identity credential. The selector can either be the name of a specific WorkloadIdentity resource or a label selector that can match multiple WorkloadIdentity resources. # The selector must be set to either a name or labels, but not both. name은 선택적으로 로그와 `/readyz` 엔드포인트에서 사용되는 서비스 이름을 재정의합니다. 문자, 숫자, 하이픈, 밑줄, 더하기 기호만 포함해야 합니다. `spiffe-svid` type은 출력의 유형을 지정합니다. SPIFFE SVID 출력의 경우 항상 `spiffe-svid`입니다. svid는 요청해야 하는 SPIFFE SVID의 속성을 지정합니다. The following configuration fields are available across most output types. destination specifies where the output should write any generated artifacts such as certificates and configuration files. # See the full list of supported destinations and their configuration options under the Destinations section of this reference page. roles specifies the roles that should be included in the certificates generated by the output. These roles must be roles that the bot has been granted permission to impersonate. # if no roles are specified, all roles the bot is allowed to impersonate are used. credential_ttl and renewal_interval override the credential TTL and renewal interval for this specific output, so that you can make its certificates valid for shorter than `tbot`'s internal certificates. # This is particularly useful when using `tbot` in one-shot as part of a cron job where you need `tbot`'s internal certificate to live long enough to be renewed on the next invocation, but don't want long-lived workload certificates on-disk. name optionally overrides the name of the service used in logs and the `/readyz` endpoint. It must only contain letters, numbers, hyphens, underscores, and plus symbols. 서비스 `workload-identity-api` `spiffe-workload-api` type은 서비스의 유형을 지정합니다. SPIFFE Workload API 서비스의 경우 항상 `spiffe-workload-api`입니다. listen은 서비스가 수신 대기해야 하는 주소를 지정합니다. # 두 가지 유형의 리스너가 지원됩니다: - TCP: `tcp://<address>:<port>` - Unix 소켓: `unix:///<path>` attestors는 이 Workload API에 대한 워크로드 증명을 구성할 수 있게 합니다. svids는 Workload API가 제공해야 하는 SPIFFE SVID를 지정합니다. name은 선택적으로 로그와 `/readyz` 엔드포인트에서 사용되는 서비스 이름을 재정의합니다. 문자, 숫자, 하이픈, 밑줄, 더하기 기호만 포함해야 합니다. `database-tunnel` type은 서비스의 유형을 지정합니다. database tunnel 서비스의 경우 항상 `database-tunnel`입니다. listen은 서비스가 수신 대기해야 하는 주소를 지정합니다. # 두 가지 유형의 리스너가 지원됩니다: - TCP: `tcp://<address>:<port>` - Unix 소켓: `unix:///<path>` service는 서비스가 터널을 열어야 하는 Teleport에 구성된 데이터베이스 서버의 이름입니다. database는 지정된 데이터베이스 서비스의 특정 데이터베이스 이름입니다. username은 터널을 열 지정된 데이터베이스 서버의 사용자 이름입니다. name은 선택적으로 로그와 `/readyz` 엔드포인트에서 사용되는 서비스 이름을 재정의합니다. 문자, 숫자, 하이픈, 밑줄, 더하기 기호만 포함해야 합니다. `application-tunnel` type은 서비스의 유형을 지정합니다. application tunnel 서비스의 경우 항상 `application-tunnel`입니다. listen은 서비스가 수신 대기해야 하는 주소를 지정합니다. # 두 가지 유형의 리스너가 지원됩니다: - TCP: `tcp://<address>:<port>` - Unix 소켓: `unix:///<path>` app_name은 서비스가 터널을 열어야 하는 Teleport에 구성된 애플리케이션의 이름입니다. name은 선택적으로 로그와 `/readyz` 엔드포인트에서 사용되는 서비스 이름을 재정의합니다. 문자, 숫자, 하이픈, 밑줄, 더하기 기호만 포함해야 합니다. `ssh-multiplexer` type은 서비스의 유형을 지정합니다. SSH 멀티플렉서의 경우 destination은 터널이 열려야 하고 아티팩트가 작성되어야 하는 위치를 지정합니다. `directory` 유형이어야 합니다. enable_resumption은 멀티플렉서가 세션 재개를 협상해야 하는지 지정합니다. 이를 통해 SSH 연결이 네트워크 중단을 견딜 수 있습니다. 연결당 메모리 리소스 사용이 증가합니다. # 지정하지 않으면 기본값은 true입니다. proxy_command는 생성된 SSH 구성에서 ProxyCommand로 사용해야 하는 명령을 지정합니다. # 지정하지 않으면 ProxyCommand는 현재 실행 중인 tbot 바이너리 자체가 됩니다. proxy_templates_path는 연결할 Teleport 노드를 결정할 때 사용해야 하는 프록시 템플릿 구성 파일의 경로를 지정합니다. 이 파일은 ssh-multiplexer를 실행하는 장기 실행 tbot 프로세스가 접근할 수 있어야 합니다. # 지정하지 않으면 프록시 템플릿이 사용되지 않습니다. relay_server는 tbot이 Teleport 컨트롤 플레인 대신 SSH 트래픽을 라우팅하는 데 사용해야 하는 Relay 서비스 주소를 지정합니다. 설정하면 모든 SSH 연결이 이 Relay를 통해 전송됩니다; 지정된 Relay를 통해 접근 가능한 서버만 접근할 수 있으며 tbot은 컨트롤 플레인으로 폴백하지 않습니다. 호스트 이름 또는 # relay_server 옵션을 사용하려면 `tbot` 18.3.0 이상이 필요합니다. name은 선택적으로 로그와 `/readyz` 엔드포인트에서 사용되는 서비스 이름을 재정의합니다. 문자, 숫자, 하이픈, 밑줄, 더하기 기호만 포함해야 합니다. Connect to Mux Unix Domain Socket Send the connection request specifying the server you wish to connect to We must set the env var as Paramiko does not make this configurable... Paramiko does not support known_hosts with CAs: https://github.com/paramiko/paramiko/issues/771 Therefore, we must disable host key checking `application-proxy` type은 서비스의 유형을 지정합니다. application proxy 서비스의 경우 항상 `application-proxy`입니다. listen은 서비스가 수신 대기해야 하는 주소를 지정합니다. # 두 가지 유형의 리스너가 지원됩니다: - TCP: `tcp://<address>:<port>` - Unix 소켓: `unix:///<path>` name은 선택적으로 로그와 `/readyz` 엔드포인트에서 사용되는 서비스 이름을 재정의합니다. 문자, 숫자, 하이픈, 밑줄, 더하기 기호만 포함해야 합니다. 대상 `directory` type은 대상의 유형을 지정합니다. directory 대상의 경우 항상 `directory`입니다. path는 이 대상이 쓸 디렉토리의 경로를 지정합니다. 이 디렉토리는 이미 존재해야 하거나, `tbot init`을 사용하여 올바른 권한으로 생성해야 합니다. symlinks는 심볼릭 링크 공격 방지의 동작을 구성합니다. Linux 5.6+ 필요. 지원되는 값: * try-secure (기본값): 심볼릭 링크 없이 인증서를 안전하게 읽고 쓰려고 시도하지만, 호스트가 이를 지원하지 않으면 안전하지 않은 읽기 및 쓰기로 (경고와 함께) 폴백합니다. * secure: 인증서를 안전하게 읽고 쓰려고 시도하며, 지원되지 않으면 하드 오류를 발생시킵니다. * insecure: 경로의 심볼릭 링크를 조용히 허용합니다. acls는 이 대상에 대해 Linux 접근 제어 목록(ACL) 설정을 수행해야 하는지 구성합니다. ACL을 지원하는 파일시스템을 갖춘 Linux 필요. 지원되는 값: * try (Linux의 기본값): ACL 사용을 시도하고, ACL이 구성되었지만 유효하지 않은 경우 런타임에 경고합니다. * off (비-Linux의 기본값): ACL 사용을 시도하지 않습니다. * required: 항상 ACL을 사용하고, ACL이 유효하지 않은 경우 런타임에 하드 오류를 발생시킵니다. readers는 ACL에 의해 이 디렉토리 출력에 접근할 수 있는 사용자 및 그룹의 목록입니다. `acls` 매개변수는 `try` 또는 `required`여야 합니다. 파일 ACL은 런타임에 이 구성과 일치하도록 모니터링되고 수정됩니다. 개별 항목은 `user` 또는 `group`을 지정할 수 있지만 둘 다 지정할 수 없습니다. `user`는 기존 명명된 사용자 또는 UID를 허용하며, `group`은 기존 명명된 그룹 또는 GID를 허용합니다. UID 및 GID는 반드시 로컬 시스템에 존재할 필요는 없습니다. 비어 있는 readers 목록은 런타임 ACL 관리를 비활성화합니다. `memory` type은 대상의 유형을 지정합니다. memory 대상의 경우 항상 `memory`입니다. `kubernetes_secret` type은 대상의 유형을 지정합니다. kubernetes_secret 대상의 경우 항상 `kubernetes_secret`입니다. name은 아티팩트를 작성할 Kubernetes 시크릿의 이름을 지정합니다. namespace는 시크릿을 작성할 Kubernetes 네임스페이스를 지정합니다. 지정하지 않으면 `POD_NAMESPACE` 환경 변수의 값이 기본값입니다. # Helm 차트를 사용하고 `tbot`이 실행 중인 네임스페이스가 아닌 다른 네임스페이스를 지정하는 경우, 해당 네임스페이스의 시크릿에 읽고 쓸 수 있는 권한을 `tbot` 서비스 계정에 수동으로 부여해야 합니다. labels는 Kubernetes 시크릿에 적용할 레이블을 지정합니다. 이 필드는 선택 사항입니다. kubeconfig_path는 Kubernetes API 서버에 연결하고 인증하는 데 사용할 kubeconfig 경로입니다. Kubernetes 클러스터 내부에서 tbot을 실행할 때는 인클러스터 자격 증명을 사용할 수 있으므로 이를 구성할 필요가 없습니다. # 이는 Kubernetes 클러스터 외부에서 tbot을 실행하거나 tbot이 실행 중인 것과 다른 Kubernetes 클러스터에 시크릿을 작성해야 할 때 유용합니다. # KUBECONFIG 환경 변수를 사용하여 설정할 수도 있습니다. 구성 파일 내의 값이 환경 변수보다 우선합니다. kubeconfig_context는 kubeconfig에서 사용할 컨텍스트를 재정의합니다. # 기본 인클러스터 구성에 의존할 때는 효과가 없으며 KUBECONFIG 환경 변수 또는 `kubeconfig_path` 필드가 설정된 경우에만 사용할 수 있습니다. # 지정하지 않으면 Kubernetes 구성 파일에 현재 설정된 컨텍스트가 사용됩니다. Bot 리소스 이 참조는 tbot 구성 파일에서 구성할 수 있는 다양한 옵션을 설명합니다. 이 구성 파일은 CLI 매개변수만으로 tbot 을 구성하는 것보다 더 많은 제어를 제공합니다. 구성 파일로 tbot 을 실행하려면 -c 플래그로 경로를 지정하세요: $ tbot start -c ./tbot.yaml 이 참조에서 아티팩트 라는 용어는 출력을 생성하는 프로세스의 일부로 tbot 이 대상에 쓰는 항목을 나타냅니다. 아티팩트의 예로는 구성 파일, 인증서 및 암호화 키 자료가 있습니다. 일반적으로 아티팩트는 파일이지만, 대상이 반드시 파일시스템일 필요는 없으므로 이 용어를 명시적으로 사용합니다. # version은 사용 중인 구성 파일의 버전을 지정합니다. `v2`가 가장 최신이며 # 모든 새 봇에 사용되어야 합니다. 이 예시의 나머지는 `v2` 스키마입니다. version: v2 # debug는 stderr에 상세 로깅을 활성화합니다. 지정하지 않으면 기본값은 # false입니다. debug: true # auth_server는 `tbot`이 연결해야 하는 Auth Service 인스턴스의 주소를 # 지정합니다. Proxy Service 주소를 지정하기 위해 `proxy_server`를 # 지정하는 것을 권장합니다. auth_server: "teleport.example.com:3025" # proxy_server는 `tbot`이 연결해야 하는 Teleport Proxy Service의 주소를 # 지정합니다. # Teleport Proxy Service의 주소 또는 Teleport Cloud를 사용하는 경우 # Teleport Cloud 인스턴스의 주소를 사용하는 것을 권장합니다. proxy_server: "teleport.example.com:443" # 또는 Teleport Cloud의 경우 "example.teleport.sh:443" # credential_ttl은 `tbot`이 생성한 인증서의 유효 기간을 지정합니다. # `m`(분) 또는 `h`(시간) 접미사와 함께 양의 숫자 값이어야 합니다. # 기본값은 `1h`입니다. # 최대값은 `24h`입니다. # # 대부분의 출력 및 서비스에서 `tbot`의 내부 인증서보다 짧은 TTL을 # 갖도록 재정의할 수 있습니다. credential_ttl: "1h" # renewal_interval은 `tbot`이 생성한 출력을 갱신하려는 빈도를 지정합니다. # `m`(분) 또는 `h`(시간) 접미사와 함께 양의 숫자 값이어야 합니다. # 기본값은 `20m`입니다. # 이 값은 `credential_ttl`보다 낮아야 합니다. # 이 값은 `tbot`이 원샷 모드에서 실행 중일 때 무시됩니다. # # 대부분의 출력 및 서비스에서 `tbot`의 내부 인증서보다 짧은 갱신 # 간격을 갖도록 재정의할 수 있습니다. renewal_interval: "20m" # oneshot은 출력을 생성한 직후 `tbot`이 종료되도록 구성합니다. # 기본값은 `false`입니다. CI/CD와 같은 일시적 환경에서는 `true`