Infograb logo
SPIFFE 소개

SPIFFE (모든 사람을 위한 안전한 생산 신원 프레임워크)는 워크로드를 안전하게 식별하기 위한 표준 집합입니다.

SPIFFE는 다음을 설정합니다:

  • SPIFFE ID라는 신원을 고유하게 지정하는 형식.
  • SVIDs(SPIFFE Verifiable Identity Document)라고 하는 증명 가능한 문서에 SPIFFE ID를 인코딩하는 표준으로, JWT 및 X.509 형식이 있습니다.
  • 수신된 SVID를 검증하기 위해 워크로드가 사용해야 하는 프로세스.
  • 워크로드가 SVID 를 요청하는 데 사용할 수 있는 API 집합인 Workload API.

SPIFFE의 개방적 특성과 인기로 인해 전체 워크로드 신원 구현의 기초로 적합합니다. 여러 인기 있는 도구(예: Linkerd 및 Istio)에서 신원 공급자로 지원되며, SPIFFE를 직접 서비스에 구현하기 위한 기성 SDK가 존재합니다.

SPIFFE ID를 권한 부여에 사용하는 방법을 명시하지 않는다는 점을 인식하는 것이 중요합니다. 이는 높은 수준의 유연성을 제공하여, 적합한 방식으로 권한 부여를 구현할 수 있도록 합니다.

SPIFFE ID 및 신뢰 도메인

SPIFFE에서 신원의 기초는 SPIFFE ID입니다. 이는 워크로드를 식별하는 고유한 문자열입니다. SPIFFE ID는 spiffe 의 스키마를 가진 URI 형식으로 되어 있으며, 신뢰 도메인과 워크로드 식별자를 포함합니다.

신뢰 도메인은 워크로드 신원의 "신뢰의 뿌리"입니다. 신뢰 도메인 내의 워크로드는 신뢰 도메인 내의 기관에 의해 신원이 발급되며, 신뢰 도메인의 루트 키를 사용하여 이러한 신원을 검증할 수 있습니다. 신뢰 도메인은 URI 내의 호스트로 인코딩됩니다. Teleport Workload Identity의 경우 신뢰 도메인은 귀하의 Teleport 클러스터이며, 이는 클러스터에 대해 구성된 이름으로 표현됩니다, 예: example.teleport.sh .

워크로드 식별자는 URI 내의 경로로 인코딩됩니다. 이는 신뢰 도메인 내에서 워크로드를 식별하는 문자열이어야 합니다. 이 경로에 포함되는 내용은 귀하와 귀하의 애플리케이션 요구 사항에 따라 달라집니다. 일반적으로 경로의 계층적 특성을 활용합니다. 예를 들어, europe 지역에서 운영되는 foo 라는 서비스가 있다면, 이를 /region/europe/svc/foo 로 표현할 수 있습니다.

이것을 통해 다음과 같은 SPIFFE ID가 생성됩니다:

spiffe://example.teleport.sh/region/europe/svc/foo

안전한 검증된 신원 문서(SVIDs)

SPIFFE ID는 워크로드에 대한 고유한 식별자일 수 있지만, 워크로드가 자신의 신원을 검증 가능하게 증명할 방법을 제공하지 않습니다. 여기에서 안전한 검증된 신원 문서(SVIDs)가 필요합니다.

SVID는 SPIFFE ID와 신뢰할 수 있는 기관에 의해 발급된 것으로 검증할 수 있게 하는 암호학적 증명을 인코딩하는 문서입니다.

SPIFFE는 SVID에 대한 두 가지 형식을 정의합니다:

  • X.509-SVID: SPIFFE ID가 URI SAN 필드에 인코딩된 X.509 인증서입니다. 이 인증서는 신뢰 도메인 내의 신뢰할 수 있는 기관에 의해 서명됩니다.
  • JWT-SVID: SPIFFE ID가 sub 클레임으로 포함된 JWT 토큰입니다. 이들은 신뢰 도메인 내의 신뢰할 수 있는 기관에 의해 서명됩니다.

워크로드가 SVID를 검증하는 데 필요한 데이터는 신뢰 번들과 같이 알려져 있습니다. 이는 신뢰 도메인 내의 신뢰할 수 있는 기관에 속하는 인증서 집합입니다.

Workload API

Workload API는 작업 부하가 SPIFFE ID 공급자로부터 SVID 및 신뢰 번들을 요청하는 데 사용해야 하는 표준화된 gRPC API입니다. Workload API 서버는 구독한 작업 부하에 대한 자격 증명을 자동으로 갱신하는 것도 처리합니다.

Workload API는 일반적으로 작업 부하와 동일한 호스트에 설치된 에이전트에 의해 노출되며, TCP 엔드포인트가 아닌 유닉스 소켓을 사용하여 접근됩니다. 자격 증명을 발급하기 전에 작업 부하에 대한 기본 인증 및 인가를 수행할 수 있습니다. 이를 Workload Attestation이라고 합니다.

Next steps

Teleport 원문 보기