워크로드 아이덴티티 소개
Teleport v18.9Teleport 워크로드 아이덴티티는 워크로드에 수명이 짧은 암호화 아이덴티티를 안전하게 발급합니다. Teleport 워크로드 아이덴티티는 유연한 특성 덕분에 다음과 같은 다양한 용도로 사용될 수 있습니다: Teleport 워크로드 아이덴티티는 오픈소스 Secure Production Identity Framework For Everyone (SPIFFE) 표준과 호환됩니다.
Teleport 워크로드 아이덴티티는 워크로드에 수명이 짧은 암호화 아이덴티티를 안전하게 발급합니다. 인프라 전반에 걸친 워크로드 아이덴티티를 위한 유연한 기반으로, 워크로드가 실행되는 위치와 관계없이 일관된 방식으로 인증할 수 있도록 해줍니다.
Teleport 워크로드 아이덴티티는 유연한 특성 덕분에 다음과 같은 다양한 용도로 사용될 수 있습니다:
- AWS, GCP, Azure 등 클라우드 플랫폼의 타사 API에 대한 워크로드 인증.
- 제로 트러스트 전략의 일환으로, 인프라 내 워크로드 간 상호 TLS 인증을 위한 X.509 인증서 제공.
- 인프라 내 서비스 간 워크로드 인증.
Teleport 워크로드 아이덴티티는 오픈소스 Secure Production Identity Framework For Everyone (SPIFFE) 표준과 호환됩니다. 이를 통해 워크로드 아이덴티티 구현 간의 상호 운용성이 가능해지며, 워크로드와의 통합을 간소화할 수 있는 다양한 기성 도구와 SDK도 제공됩니다.
Teleport 워크로드 아이덴티티를 도입함으로써 얻을 수 있는 이점은 매우 많지만, 그중 몇 가지 핵심적인 것은 다음과 같습니다:
- 인프라 내에서 수명이 긴 공유 비밀(secret) 사용을 없애고, 유출 위험과 엔지니어가 이러한 비밀을 생성하고 교체(rotate)하는 데 소요하는 시간을 줄입니다.
- 워크로드를 위한 즉시 사용 가능한 범용 형태의 아이덴티티를 확립함으로써, 엔지니어가 인증 방법을 고민할 필요 없이 새로운 서비스 구축에 집중할 수 있게 합니다.
- 워크로드를 위한 일급(first-class) 형태의 아이덴티티로 수렴시켜, 워크로드가 인증하는 방식의 다양성을 줄임으로써 인프라를 단순화합니다.
작동 방식#
Teleport 워크로드 아이덴티티는 Teleport 클러스터 내에 루트 인증 기관(CA)을 구축하며, 이 인증 기관은 워크로드에 수명이 짧은 JWT와 X509 인증서를 발급하는 역할을 담당합니다.
이러한 아이덴티티는 SPIFFE 검증 가능 아이덴티티 문서(SPIFFE Verifiable Identity Documents, SVID)라고도 하며, 워크로드의 아이덴티티를 URI로 인코딩한 것을 포함합니다. 이 URI는 SPIFFE ID라고도 합니다. 이 SPIFFE ID의 구조는 사용자가 자유롭게 정할 수 있으며, 워크로드를 고유하게 식별하는 데 필요한 어떠한 정보든 인코딩할 수 있습니다.
이러한 아이덴티티를 요청할 수 있는 권한은 Teleport의 역할 기반 접근 제어 (Role-Based Access Control) 시스템에 의해 제어됩니다. 사용자와 봇(Bot)에게 역할이 부여되며, 이 역할을 통해 특정 SPIFFE ID를 가진 아이덴티티를 요청할 수 있습니다.
tbot 에이전트는 아이덴티티가 필요한 워크로드와 가까운 곳에 설치됩니다.
이 에이전트는 워크로드를 위한 아이덴티티 요청 및 갱신 프로세스를 관리합니다.
tbot 에이전트는 지원되는 조인(join) 방법 중 하나를 사용하여 Teleport
클러스터에 인증하며, 대부분의 경우 수명이 긴 비밀을 사용하는 대신 연합
신뢰(federated trust)를 기반으로 인증할 수 있습니다.
워크로드는 다음 두 가지 방법 중 하나로 아이덴티티를 수신할 수 있습니다:
tbot에이전트는 이러한 아이덴티티를 로컬 파일 시스템의 디렉터리에 기록하거나, Kubernetes 시크릿에 기록할 수 있습니다.tbot에이전트는 SPIFFE 워크로드 API를 노출할 수 있습니다. 이는 워크로드가tbot에이전트로부터 직접 아이덴티티를 요청할 수 있도록 하는 표준화된 gRPC API입니다.
워크로드 API를 사용할 때, tbot 에이전트는 워크로드 어테스테이션(Workload
Attestation)이라는 추가 프로세스를 수행할 수 있습니다. 이를 통해 아이덴티티
발급을 특정 워크로드로 제한할 수 있습니다. 예를 들어, 특정 UID 또는 GID를 가진
Linux 프로세스에만 아이덴티티가 발급되도록 제한하거나, 특정 Kubernetes 파드에만
아이덴티티가 발급되도록 제한할 수 있습니다. 워크로드 어테스테이션 프로세스를
통해 워크로드에 "부트스트래핑" 비밀을 제공할 필요가 없어집니다.

워크로드가 아이덴티티를 확보하면, 이를 다양한 용도로 사용할 수 있습니다. X.509 인증서는 상호 TLS를 구축하는 데 사용할 수 있고, JWT는 다양한 타사 API에 인증하는 데 사용할 수 있습니다.
Teleport 제로 트러스트 접근 vs 워크로드 아이덴티티#
제로 트러스트 접근을 위한 Teleport Machine & Workload Identity는 주로 워크로드에 수명이 짧은 자격 증명을 발급하여 Teleport 클러스터가 보호하는 리소스에 접근할 수 있도록 합니다. 발급된 자격 증명은 Teleport 자체와만 호환되며, 리소스에 대한 접근은 반드시 Teleport 프록시를 통해 이루어져야 합니다.
Teleport 워크로드 아이덴티티는 상호 운용 가능한 워크로드 아이덴티티를 위한 대중적인 SPIFFE 표준과 호환되는 암호화 아이덴티티를 발급합니다. 이러한 아이덴티티는 다양한 용도로 사용할 수 있을 만큼 유연합니다. 워크로드 간 통신을 보호하는 데는 Teleport 프록시가 사용되지 않습니다.
다음 단계#
Teleport 워크로드 아이덴티티에 대해 자세히 알아보세요:
- SPIFFE: SPIFFE 사양과 Teleport 워크로드 아이덴티티가 이를 어떻게 구현하는지 알아봅니다.
- 연합(Federation): 연합을 사용하여 워크로드가 다른 신뢰 도메인의 워크로드를 신뢰하도록 허용하는 방법을 알아봅니다.
- JWT SVID: 워크로드 아이덴티티가 발급하는 수명이 짧은 JWT에 대해 알아봅니다.
- 모범 사례: 프로덕션 환경에서 워크로드 아이덴티티를 사용하기 위한 모범 사례입니다.
- 워크로드 아이덴티티 리소스: 워크로드 아이덴티티 리소스에 대한 전체 참조입니다.
- 워크로드 아이덴티티 API 및 워크로드 어테스테이션: 워크로드 아이덴티티 API 및 워크로드 어테스테이션에 대해 자세히 알아봅니다.
특정 사용 사례에 맞게 Teleport 워크로드 아이덴티티를 구성하는 방법을 알아보세요:
- 시작하기: 워크로드 아이덴티티를 위해 Teleport를 구성하는 방법입니다.
- TSH 지원: 사용자에게 SVID를 발급하기 위해 워크로드 아이덴티티와 함께
tsh를 사용하는 방법입니다. - AWS Roles Anywhere: AWS Roles Anywhere를 사용하여 인증 수단으로 워크로드 아이덴티티 인증서를 수락하도록 AWS를 구성합니다.
- AWS OIDC 연합: AWS OIDC 연합을 사용하여 인증 수단으로 워크로드 아이덴티티 JWT를 수락하도록 AWS를 구성합니다.
- GCP 워크로드 아이덴티티 연합: GCP 워크로드 아이덴티티 연합을 사용하여 인증 수단으로 워크로드 아이덴티티 JWT를 수락하도록 GCP를 구성합니다.
- Azure 연합 자격 증명: Azure 연합 자격 증명을 사용하여 인증 수단으로 워크로드 아이덴티티 JWT를 수락하도록 Azure를 구성합니다.
기타 리소스#
- SPIFFE 사양: 공식 SPIFFE 사양입니다. SPIFFE ID 및 SVID 형식을 이해하는 데 유용합니다.
- Solving The Bottom Turtle: SPIFFE의 기본 개념과 세부 사항을 다루는 책입니다.