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를 검증할 수 있게 하는 두 개의 엔드포인트가 있어요.
.well-known/openid-configuration: 마운트에 대한 OIDC 디스커버리 메타데이터를 반환해요..well-known/keys: 발급된 토큰의 공개 서명 키를 포함하는 JSON Web Key Set(JWKS)을 반환해요.
API
SPIFFE 시크릿 엔진은 완전한 HTTP API를 제공해요. 자세한 내용은 SPIFFE 시크릿 엔진 API 문서를 참고해 주세요.
Terraform
Terraform을 사용해 SPIFFE 시크릿 엔진을 선언적으로 관리할 수 있어요. vault_mount 리소스로 SPIFFE 시크릿 엔진을 활성화하고 vault_spiffe_secret_backend_config 리소스로 구성을 관리하세요.
다음 단계 (Next steps)
- 아키텍처, 사용 사례, 기능에 대한 자세한 내용은 SPIFFE 시크릿 엔진 개요를 참고하세요.
- 엔드포인트에 대한 자세한 내용은 SPIFFE 시크릿 엔진 API 문서를 참고하세요.
더 알아보기 (Learn more)
- JWT-SVID를 실제로 발행하고 검증하는 예시는 SVID 발행·검증·사용 문서를 참고하세요.
- SPIFFE 표준에 대한 자세한 내용은 spiffe.io에서 확인하세요.