Infograb logo
Teleport 인증

Teleport는 인증과 인가를 모두 처리합니다.

  • 인증은 사용자 또는 서비스의 신원을 증명하는 것에 관한 것입니다.
  • 인가는 어떤 것에 대한 접근 권한을 증명하는 것입니다.

이 가이드는 Teleport가 단기 인증서를 사용하여 인증을 처리하는 방법을 설명합니다.

단기 인증서

인증 기관과 단기 인증서는 Teleport 인증의 핵심입니다. Teleport에서는 모든 연결이 시작될 때 사용자 또는 서비스가 신뢰할 수 있는 인증 기관에서 발급된 유효한 인증서를 제시해야 합니다. 클라이언트는 항상 상호 TLS 또는 상호 SSH 연결을 시작합니다.

Teleport 인증 기관은 웹 서비스, 데이터베이스, Kubernetes 클러스터, 데스크탑 및 OpenSSH 호환 서버의 SSH 인증서에 대해 단기 x.509 인증서를 발급합니다.

인증서가 필요한 이유는 무엇인가요?

  • 인증서는 사용자 또는 서비스 신원에 연결되어 있습니다. 모든 연결과 작업은 사용자 또는 서비스로 추적할 수 있습니다.
  • 단기 인증서는 자동으로 만료되며, 취소할 필요가 없습니다.
  • 인증서는 첫 번째 사용 시 신뢰 문제(TOFU)를 해결합니다. Teleport 클러스터의 모든 서버는 고유한 신원과 인증서를 가지고 있습니다. 클라이언트 인증서가 신뢰되지 않는 인증 기관에 의해 서명된 경우 연결을 허용하지 않습니다.
  • 인증서는 상호 인증된 채널인 mTLS를 가능하게 하며, mTLS는 스푸핑, 경로 공격, 자격 증명 스터핑 등의 다양한 공격을 완화합니다.
  • 인증서는 대규모 배포에 더 적합합니다. 각 서버 또는 서비스는 인증서가 유효한 인증 기관에 의해 서명되었는지만 확인하면 되며, 사용자 자격 증명을 모든 서비스에 복사할 필요가 없습니다.

Teleport는 몇 시간에서 몇 분 동안 유효한 인증서를 발급하며, 자동으로 만료됩니다. 이 인증서의 기간이 짧을수록 더 좋습니다. 이상적으로 인증서는 세션 지속 시간만큼만 발급되어야 합니다. 실제로는 몇 시간 또는 근무일 지속 시간이 허용됩니다. 인증서의 만료 날짜는 인증서를 무효화하지 않고는 위조할 수 없기 때문에 어떤 시스템도 인증서를 검증할 수 있습니다.

X.509 인증서

X.509 인증서는 브라우저로 웹사이트에 접근할 때 사용하는 동일한 인증서입니다. 인증 기관의 서명으로 신원을 공개 키에 바인딩합니다.

x.509 인증서
x.509 단기 인증서의 예시

Teleport는 Kubernetes, 데이터베이스, 웹 서비스 및 내부 구성 요소인 프록시, 인증 서비스와의 상호 인증된 TLS 연결(mTLS)을 설정하기 위해 x.509 인증서를 사용합니다.

OpenSSH 인증서

OpenSSH 인증서는 X.509(웹) 인증서와 유사하며, 사용자 또는 서버의 신원을 공개 키에 인증 기관의 서명으로 바인딩합니다.

SSH 인증서
SSH 단기 인증서의 예시

OpenSSH 인증서에는 사용자 및 호스트 인증에 사용되는 메타데이터가 포함되어 있습니다:

  • 이 인증서가 속한 주체(신원)의 목록.
  • 이를 발급한 인증 기관의 서명.
  • 만료 날짜, "유효 기간" 또는 단순히 TTL로 알려져 있습니다.
  • 노드 역할과 같은 추가 데이터는 인증서 확장에서 저장됩니다.

시간 활용하기

만료는 보안에 유리하게 작용하는 인증서의 기능입니다. SSH 및 X.509 인증서는 서명 외에도 서버에 의해 검증되는 선택적 만료 날짜를 포함합니다.

단기 인증서
SSH 단기 인증서의 예시

위의 다이어그램에서 앨리스는 단기 SSH 인증서를 받지만, 동일한 규칙이 Teleport에 의해 발급된 X.509 인증서에도 적용되며 Kubernetes, 데이터베이스, 웹 앱 및 데스크탑에 사용됩니다.

Teleport는 몇 시간에서 몇 분 동안 유효한 인증서를 발급하며, 자동으로 만료됩니다. 취소 목록을 배포하는 대신 Teleport는 시간이 이 작업을 수행하도록 의존합니다.

일부 경우 인증서 만료가 빠르지 않아 모든 세션을 즉시 종료해야 하는 경우가 있습니다. 예를 들어, 보안 사고가 발생하는 경우입니다. 이런 경우 Teleport 프록시는 세션 및 신원 잠금을 사용하여 실시간 연결을 종료할 수 있습니다.

사용자에 대한 단기 인증서

사용자에게 인증서를 발급하기 위해 Teleport는 로그인 화면을 열고 인증서를 발급한 후 사용자의 컴퓨터로 다시 전달합니다:

우리는 GitHub, Okta 또는 다른 어떤 신원 공급자와 함께 SSO를 사용하는 것을 권장하며 인증서를 받습니다.

단기 인증서를 위한 SSO 교환
단기 인증서와 함께하는 SSO 교환

서비스에 대한 단기 인증서

Jenkins와 같은 배포 자동화 서비스는 Teleport의 머신 ID 서비스를 사용하여 인증서를 수신하고 갱신할 수 있습니다. Teleport 머신 ID의 봇은 서비스와 함께 실행되며 SSH 및 X.509 인증서를 교체합니다.

서비스용 인증서
머신 ID 인증서

내부 인증서

Teleport 내부 서비스 - 인증 서비스, 프록시 서비스, 에이전트 및 머신 ID 봇 - 는 클러스터 내에서 자신을 식별하기 위해 인증서를 사용합니다. 서비스를 클러스터에 조인하고 인증서를 받기 위해 관리자는 단기 토큰 또는 클라우드 아이덴티티 서비스를 사용해야 합니다.

사용자 및 서비스와 달리, 내부 서비스는 장기 인증서를 받습니다.

이 인증서를 갱신하기 위해 관리자는 인증서 기관 회전, 즉 만료 여부와 관계없이 노드 또는 사용자에 대해 이전에 발급된 모든 인증서를 무효화하고, 새로운 인증서를 발급하는 프로세스를 사용해야 합니다.

인증서 회전을 실제로 수행하는 방법에 대해서는 인증서 회전 가이드를 확인하십시오.

전체 클러스터 인증서를 회전하지 않고도 손상되었을 수 있는 노드, 프록시 또는 인증 서비스를 신속하게 잠글 수 있도록 노드 세션 및 아이덴티티 잠금을 사용하십시오.

추가 개념

Teleport 원문 보기