Teleport 인증
Teleport는 인증과 권한 부여를 모두 처리합니다. 이 가이드에서는 Teleport가 단명 인증서로 인증을 처리하는 방법을 설명합니다. 인증 기관과 단명 인증서는 Teleport 인증의 핵심입니다. Teleport 인증 기관은 웹 서비스, 데이터베이스, Kubernetes 클러스터, 데스크탑을 위한 단명 x.509 인증서와 OpenSSH 호환 서버를 위한 SSH 인증서를 발급합니다.
Teleport는 인증과 권한 부여를 모두 처리합니다.
- 인증은 AI 에이전트, 사람 사용자 또는 서비스의 신원을 증명하는 것입니다.
- 권한 부여는 무언가에 대한 접근 권한을 증명하는 것입니다.
이 가이드에서는 Teleport가 단명 인증서로 인증을 처리하는 방법을 설명합니다.
단명 인증서#
인증 기관과 단명 인증서는 Teleport 인증의 핵심입니다. Teleport에서는 모든 연결의 시작에 사용자 또는 서비스가 신뢰할 수 있는 인증 기관이 발급한 유효한 인증서를 제시해야 합니다. 클라이언트는 항상 상호 TLS 또는 상호 SSH 연결을 시작합니다.
Teleport 인증 기관은 웹 서비스, 데이터베이스, Kubernetes 클러스터, 데스크탑을 위한 단명 x.509 인증서와 OpenSSH 호환 서버를 위한 SSH 인증서를 발급합니다.
인증서를 사용하는 이유는?#
- 인증서는 사용자 또는 서비스 신원과 연결됩니다. 모든 연결과 작업을 사용자 또는 서비스까지 추적할 수 있습니다.
- 단명 인증서는 자동으로 만료되므로 취소할 필요가 없습니다.
- 인증서는 최초 신뢰(TOFU) 문제를 해결합니다. Teleport 클러스터에서 모든 서버는 자체 신원과 인증서를 가집니다. 클라이언트 인증서가 신뢰할 수 없는 인증 기관에 의해 서명된 경우 연결을 허용하지 않습니다.
- 인증서는 상호 인증된 채널을 활성화합니다. mTLS, mTLS는 스푸핑, 경로 공격, 자격 증명 스터핑 등 광범위한 공격을 완화합니다.
- 인증서는 대규모 배포에서 더 잘 작동합니다. 각 서버 또는 서비스는 인증서가 유효한 인증 기관으로 서명되었는지만 검증하면 되며, 모든 서비스에 사용자 자격 증명을 복사할 필요가 없습니다.
Teleport는 몇 시간에서 몇 분 동안 유효한 인증서를 발급하며 어떤 조치 없이 자동 만료됩니다. 이 인증서의 기간이 짧을수록 좋습니다. 이상적으로는 인증서가 세션 기간 동안만 발급되어야 합니다. 실제로는 몇 시간 또는 업무 시간도 괜찮습니다. 인증서의 만료 날짜는 인증서를 무효화하지 않고는 위조할 수 없으므로, 모든 시스템이 인증서를 검증할 수 있습니다.
X.509 인증서#
X.509 인증서는 브라우저로 웹 사이트에 접근할 때 사용하는 것과 동일한 인증서입니다. 인증 기관의 서명으로 공개 키에 신원을 바인딩합니다.
Teleport는 Kubernetes 클러스터, 데이터베이스, 웹 서비스 및 프록시 서비스와 Auth 서비스와 같은 자체 내부 구성 요소에 x.509 인증서를 사용하여 상호 인증된 TLS 연결(mTLS)을 설정합니다.
OpenSSH 인증서#
OpenSSH 인증서는 X.509(웹) 인증서와 유사하며, 인증 기관의 서명으로 사용자 또는 서버의 신원을 공개 키에 바인딩합니다.
OpenSSH 인증서에는 사용자와 호스트를 인증하는 데 사용되는 메타데이터가 포함됩니다:
- 이 인증서가 속한 주체(신원)의 목록.
- 발급한 인증 기관의 서명.
- "time-to-live" 또는 단순히 TTL이라고도 하는 만료 날짜.
- 노드 역할과 같은 추가 데이터는 인증서 확장으로 저장됩니다.
시간을 활용하기#
만료는 시간이 보안을 위해 작동하게 하는 인증서의 기능입니다. SSH 및 X.509 인증서에는 서명 외에도 서버가 검증하는 선택적 만료 날짜가 포함됩니다.
위 다이어그램에서 Alice는 단명 SSH 인증서를 받지만, 동일한 규칙이 Teleport가 Kubernetes, 데이터베이스, 웹 앱 및 데스크탑에 사용하는 X.509 인증서에도 적용됩니다.
Teleport는 몇 시간에서 몇 분 동안 유효한 인증서를 발급하며 어떤 조치 없이 자동 만료됩니다. 취소 목록을 배포하는 대신, Teleport는 시간이 대신 처리해주는 것에 의존합니다.
일부 경우에는 인증서 만료가 충분히 빠르지 않아, 활성 보안 인시던트 발생 시처럼 모든 세션을 즉시 종료해야 합니다. 이러한 경우를 위해 Teleport 프록시는 세션 및 신원 잠금을 사용하여 라이브 연결을 종료할 수 있습니다.
사용자를 위한 단명 인증서#
사용자에게 인증서를 발급하기 위해, Teleport는 로그인 화면을 열고, 인증서를 발급하여 사용자 컴퓨터로 다시 전달합니다:
GitHub, Okta 또는 다른 identity provider와 함께 SSO를 사용하고 인증서를 받는 것을 권장합니다.
서비스를 위한 단명 인증서#
Jenkins와 같은 배포 자동화 서비스는 Teleport의 머신 및 워크로드 아이덴티티를 사용하여 인증서를 받고 갱신할 수 있습니다. Teleport 머신 및 워크로드 아이덴티티의 Bot은 서비스 옆에서 실행되며 SSH 및 X.509 인증서를 교체합니다.
내부 인증서#
Teleport 내부 서비스(Auth 서비스, 프록시 서비스, Agent 및 머신 및 워크로드 아이덴티티 Bot)는 클러스터 내에서 자신을 식별하기 위해 인증서를 사용합니다. 서비스를 클러스터에 참가시키고 인증서를 받으려면 관리자가 단명 토큰 또는 클라우드 신원 서비스를 사용해야 합니다.
사용자 및 서비스와 달리, 내부 서비스는 장기 인증서를 받습니다.
이 인증서를 갱신하려면, 관리자는 인증 기관 교체를 사용해야 합니다. 이는 만료 여부에 관계없이 노드 또는 사용자를 위해 이전에 발급된 모든 인증서를 무효화하고, 새 인증 기관을 사용하여 새 인증서를 발급하는 프로세스입니다.
실제로 인증 기관 교체를 수행하는 방법은 인증서 교체 가이드를 참조하세요.
전체 클러스터 인증서를 교체하지 않고 잠재적으로 침해된 Auth 서비스 인스턴스, 프록시 서비스 인스턴스 또는 Teleport Agent를 빠르게 잠그려면 세션 및 신원 잠금을 사용하세요.
