SPIFFE 소개
SPIFFE (Secure Production Identity Framework For Everyone)는 워크로드를 안전하게 식별하기 위한 표준 집합입니다. SPIFFE의 개방성과 인기는 완전한 워크로드 아이덴티티 구현의 기반으로 적합합니다.
SPIFFE (Secure Production Identity Framework For Everyone)는 워크로드를 안전하게 식별하기 위한 표준 집합입니다.
SPIFFE는 다음을 설정합니다:
- SPIFFE ID라고 하는 아이덴티티를 고유하게 지정하는 형식.
- SPIFFE ID를 SVID (SPIFFE Verifiable Identity Document)라고 하는 검증 가능한 문서로 인코딩하는 표준. JWT와 X.509 형식으로 제공됩니다.
- 워크로드가 수신된 SVID를 검증하는 데 사용해야 하는 프로세스.
- 워크로드가 SVID를 요청하는 데 사용할 수 있는 API 집합인 Workload API.
SPIFFE의 개방성과 인기는 완전한 워크로드 아이덴티티 구현의 기반으로 적합합니다. 여러 인기 있는 도구(Linkerd 및 Istio 등)에 의해 아이덴티티 공급자로 지원되며 자신의 서비스에 SPIFFE를 직접 구현하기 위한 기성 SDK가 존재합니다.
SPIFFE가 권한 부여에 SPIFFE ID를 사용하는 방법을 지정하지 않는다는 것을 인식하는 것이 중요합니다. 이는 높은 수준의 유연성을 제공하여 자신에게 맞는 방식으로 권한 부여를 구현할 수 있습니다.
SPIFFE ID 및 신뢰 도메인#
SPIFFE에서 아이덴티티의 기반은 SPIFFE ID입니다. 이것은 워크로드를 식별하는 고유한 문자열입니다. SPIFFE ID는 spiffe 스키마를 가진 URI로 형식화되며 신뢰 도메인과 워크로드 식별자를 포함합니다.
신뢰 도메인은 워크로드 아이덴티티의 "신뢰의 루트"입니다. 신뢰 도메인 내의 워크로드는 신뢰 도메인 내의 권한에 의해 아이덴티티를 발급받으며, 신뢰 도메인의 루트 키를 사용하여 이러한 아이덴티티를 검증할 수 있습니다. 신뢰 도메인은 URI 내의 호스트로 인코딩됩니다. Teleport 워크로드 아이덴티티의 경우 신뢰 도메인은 Teleport 클러스터이며 클러스터에 구성된 이름으로 표현됩니다. 예: example.teleport.sh.
워크로드 식별자는 URI의 경로로 인코딩됩니다. 이것은 신뢰 도메인 내에서 워크로드를 식별하는 문자열이어야 합니다. 이 경로에 포함하는 내용은 애플리케이션의 요구 사항에 따라 달라집니다. 일반적으로 경로의 계층적 특성이 활용됩니다. 예를 들어 europe 지역에서 작동하는 foo 서비스가 있다면 이를 /region/europe/svc/foo로 나타낼 수 있습니다.
이를 합치면 다음과 같은 SPIFFE ID가 생성됩니다:
spiffe://example.teleport.sh/region/europe/svc/foo
SPIFFE Verifiable Identity Documents (SVIDs)#
SPIFFE ID는 워크로드의 고유 식별자일 수 있지만 워크로드가 아이덴티티를 검증 가능하게 증명하는 방법을 제공하지 않습니다. 이것이 SPIFFE Verifiable Identity Documents (SVIDs)가 필요한 이유입니다.
SVID는 SPIFFE ID와 신뢰할 수 있는 권한에 의해 발급된 것으로 SVID를 검증할 수 있는 암호화 증명을 인코딩하는 문서입니다.
SPIFFE는 SVID를 위한 두 가지 형식을 설정합니다:
- X.509-SVID: URI SAN 필드에 인코딩된 SPIFFE ID를 포함하는 X.509 인증서입니다. 이 인증서는 신뢰 도메인 내의 신뢰할 수 있는 권한에 의해 서명됩니다.
- JWT-SVID: SPIFFE ID를
sub클레임으로 포함하는 JWT 토큰입니다. 이것들은 신뢰 도메인 내의 신뢰할 수 있는 권한에 의해 서명됩니다.
워크로드가 SVID를 검증하는 데 필요한 데이터를 신뢰 번들이라고 합니다. 이것은 신뢰 도메인 내의 신뢰할 수 있는 권한에 속하는 인증서 집합입니다.
Workload API#
Workload API는 워크로드가 SPIFFE 아이덴티티 공급자에서 SVID와 신뢰 번들을 요청하는 데 사용해야 하는 표준화된 gRPC API입니다. Workload API 서버는 구독된 워크로드에 대한 자격증명을 자동으로 갱신하는 것도 처리합니다.
Workload API는 일반적으로 워크로드와 동일한 호스트에 설치된 에이전트에 의해 노출되며 TCP 엔드포인트가 아닌 unix 소켓을 사용하여 접근합니다. SVID를 발급하기 전에 워크로드의 기본 인증 및 권한 부여를 수행할 수 있습니다. 이것을 Workload 어테스테이션이라고 합니다.
다음 단계#
- 워크로드 아이덴티티 개요: Teleport 워크로드 아이덴티티 개요.
- SPIFFE 웹사이트: SPIFFE 사양에 대해 자세히 알아보세요.
