SPIFFE 시크릿 엔진 활성화 및 사용하기

SPIFFE 시크릿 엔진 활성화 및 사용하기

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

spiffe 시크릿 엔진은 요청 엔티티에 대한 신원 정보를 보간할 수 있는 템플릿을 사용해 SPIFFE JSON Web Token SPIFFE Verifiable Identity Documents(JWT-SVID)를 발행해요.

출처: 문서

본문

SPIFFE 시크릿 엔진 활성화하기

각 SPIFFE 백엔드 인스턴스는 단일 신뢰 도메인을 가져요. 플러그인은 역할을 사용해 발행된 JWT의 클레임을 결정하는 템플릿을 정의해요. 이 예시를 따르려면 시크릿 엔진 활성화 권한이 있고 spiffe/ 마운트에 쓸 수 있는 토큰을 사용하세요.

1. SPIFFE 시크릿 엔진을 활성화합니다.

$ vault secrets enable spiffe
Success! Enabled the spiffe secrets engine at: spiffe/

2. 신뢰 도메인을 구성합니다.

$ vault write spiffe/config trust_domain=example.org
Key                            Value
---                            -----
bundle_refresh_hint            3600
jwt_issuer_url                 n/a
jwt_oidc_compatibility_mode    false
jwt_signing_algorithm          RS256
key_lifetime                   86400
trust_domain                   example.org

3. 역할을 만듭니다.

$ vault write spiffe/role/role1 template='{"sub": "spiffe://example.org/workload"}' ttl=5m
Key              Value
---              -----
name             role1
template         {"sub": "spiffe://example.org/workload"}
ttl              300
use_jti_claim    false

사용법 (Usage)

JWT-SVID를 발행하려면 대상(audience)을 지정해야 해요. Vault는 워크로드가 대상 서비스에 제시할 수 있는 서명된 토큰을 반환해요.

$ vault write spiffe/role/role1/mintjwt audience=my-aud
Key            Value
---            -----
token          eyJhbG...VCJ9...

다른 Vault 클러스터의 SPIFFE 인증 방식과 통합하기

SPIFFE 시크릿 엔진에는 신뢰 번들을 서비스하는 trust_bundle/web 엔드포인트가 있어요. 클라이언트는 이 신뢰 엔드포인트를 호출해 플러그인이 발행한 JWT를 검증하는 데 필요한 공개 키를 가져올 수 있어요. 이렇게 하면 워크로드가 발행된 JWT-SVID를 사용해 SPIFFE 인증 방식을 실행하는 다른 Vault 클러스터에 인증할 수 있어요.

OIDC와 통합하기

SPIFFE 시크릿 엔진은 OIDC 프로바이더와 작동하는 JWT-SVID를 지원해요.

시크릿 엔진 구성에서 jwt_oidc_compatibility_mode=true를 설정하세요.

$ vault write spiffe/config \
    trust_domain=example.org \
    jwt_oidc_compatibility_mode=true

jwt_oidc_compatibility_mode=true를 설정하면 SVID를 255자로 제한하는데, 이는 OIDC에서 JWT sub 클레임의 한도예요.

또한 OIDC 프로바이더가 Vault가 발행하는 JWT를 검증할 수 있게 하는 두 개의 엔드포인트가 있어요.

API

SPIFFE 시크릿 엔진은 완전한 HTTP API를 제공해요. 자세한 내용은 SPIFFE 시크릿 엔진 API 문서를 참고해 주세요.

Terraform

Terraform을 사용해 SPIFFE 시크릿 엔진을 선언적으로 관리할 수 있어요. vault_mount 리소스로 SPIFFE 시크릿 엔진을 활성화하고 vault_spiffe_secret_backend_config 리소스로 구성을 관리하세요.

다음 단계 (Next steps)

더 알아보기 (Learn more)

  • JWT-SVID를 실제로 발행하고 검증하는 예시는 SVID 발행·검증·사용 문서를 참고하세요.
  • SPIFFE 표준에 대한 자세한 내용은 spiffe.io에서 확인하세요.