SPIFFE 시크릿 엔진

SPIFFE 시크릿 엔진

적절한 Vault Enterprise 라이선스가 필요해요.

모두를 위한 보안 프로덕션 신원 프레임워크(SPIFFE) spiffe 시크릿 엔진은 JWT 기반 SPIFFE Verifiable Identity Documents(SVID)를 발행(mint)해요. SVID는 X.509 인증서 또는 JWT 두 가지 형태가 있어요. 토큰의 sub 클레임은 SPIFFE ID이며, 토큰이 OIDC 호환이라 OIDC ID 토큰을 검증하는 법을 이미 아는 것은 무엇이든 검증할 수 있어요.

X.509 인증서 기반 신원이 필요하다면 PKI 시크릿 엔진을 사용하세요.

출처: 문서

본문

사용 사례 (Use cases)

  • (어떤 인증 방식에서든) 이미 Vault 토큰을 보유한 워크로드가, 다른 서비스의 SPIFFE 인증 워크플로, OIDC 인식 신뢰 당사자(relying party), 또는 JWT를 수락하는 어떤 서비스에 제시할 휴대용 신원 토큰이 필요한 경우.
  • sub 클레임이 spiffe://<trust-domain>/… URI 형식을 따르는 신원 토큰을 원하는데, 별도의 SPIFFE 호환 서비스를 배포하고 싶지 않은 경우.

SPIFFE 인증 방식 vs. SPIFFE 시크릿 엔진

다음 표를 사용해 워크플로에 따라 어떤 플러그인을 사용할지 결정하세요.

  • 이미 Vault에 로그인되어 있고(Kubernetes, AppRole, AWS 또는 다른 인증 방식 사용) Vault가 SVID를 발급해 주기를 원하면 SPIFFE 시크릿 엔진(secrets/spiffe)을 사용하세요.
  • SPIRE(또는 다른 SPIFFE 발급자)가 실행 중이고 SVID를 사용해 Vault에 로그인하고 싶으면 SPIFFE 인증(auth/spiffe)을 사용하세요.
SPIFFE 인증 방식 SPIFFE 시크릿 엔진 (이 페이지)
방향 (Direction) 워크로드가 로그인을 위해 SVID를 Vault에 제시 이미 로그인된 호출자를 위해 Vault가 JWT-SVID 발행
필요한 것 (What it needs) 들어오는 SVID를 검증할 신뢰 번들 외부 것 없음 — 자체적으로 서명
반환하는 것 (What it returns) Vault 토큰 JWT-SVID

아키텍처 (Architecture)

Vault는 SVID의 발급자이지 소비자가 아니에요. SPIFFE 시크릿 엔진은 독립형 JWT 서명자예요. 자체 서명 키를 생성하고 회전하며, PKI 시크릿 엔진, 외부 CA, 다른 SPIFFE 호환 서비스에 의존하지 않아요.

각 마운트는 단일 신뢰 도메인(trust domain)을 가져요. 역할은 Identity 시크릿 엔진이 발급하는 OIDC 토큰과 같은 템플레이팅 언어를 사용해 클레임 템플릿을 정의해요. 보간할 수 있는 필드는 워크로드가 Vault에 인증하는 데 사용하는 인증 방식(예: Kubernetes 인증 메타데이터 또는 AppRole)에 따라 달라져요. Vault는 항상 iss, aud, iat, exp, vault.entity.id 클레임을 채우며, 역할 템플릿은 이 필드들을 재정의할 수 없어요.

다음 다이어그램은 워크로드가 Vault에서 JWT-SVID를 가져올 때의 요청 흐름을 보여 줘요.

  [ Workload ]                                        [ Vault ]
  (already authenticated                              (mints and signs
   by any other method)                                 the JWT-SVID)
       │                                                    │
       │──(1. Request JWT-SVID, mintjwt)──────────────────> │
       │ <──────────────────(2. JWT-SVID)────────────────── │
       │
       │──(3. Present JWT-SVID)──────────────────> [ Relying party ]
                                                     (validates via JWKS,
                                                      accepts)

지원되는 SVID 유형 (Supported SVID types)

Vault의 SPIFFE 시크릿 엔진은 JWT 기반 SVID를 발행해요.

  • JWT-SVID: Vault는 sub 클레임이 SPIFFE ID(spiffe://<trust-domain>/…)인 짧은 수명의 서명된 JWT를 생성해요. 토큰은 OIDC 호환이며 마운트의 JWKS 엔드포인트를 사용해 어떤 OIDC 인식 신뢰 당사자든 검증할 수 있어요.

Vault는 PKI 시크릿 엔진을 사용해 X.509-SVID를 발행해요.

다음 단계 (Next steps)

  • 활성화 및 설정으로 SPIFFE 시크릿 엔진을 활성화하고, 신뢰 도메인을 구성하고, 역할을 정의하세요.
  • Vault로 SVID 발행하기로 JWT-SVID를 발행하고 엔드 투 엔드로 검증해 보세요.

더 알아보기 (Learn more)

  • SPIFFE 아키텍처·사용 사례·기능에 대한 자세한 내용은 SPIFFE 시크릿 엔진 개요를 참고하세요.
  • SPIFFE 표준에 대한 자세한 내용은 spiffe.io에서 확인하세요.