Vault의 네임스페이스와 보안 다중 테넌시(SMT) 지원

Vault의 네임스페이스와 보안 다중 테넌시(SMT) 지원

많은 조직이 Vault를 서비스로 구현하여 민감한 데이터의 중앙 집중 관리와, 조직 내 각 팀이 테넌트(tenant) 라는 격리된 환경에서 운영되도록 보장합니다. 다중 테넌트 환경은 다음과 같은 구현 과제가 있습니다.

  • 테넌트 격리 (Tenant isolation): Vault as a Service(VaaS) 환경의 팀은 정책·시크릿·ID에 대해 강력한 격리가 필요합니다. 조직의 보안·개인정보 요구사항이나 컴플라이언스 규정 때문에도 테넌트 격리가 필요할 수 있습니다.
  • 장기 관리 (Long-term management): 테넌트마다 정책이 다르고 팀이 요청하는 변경 속도도 다르므로, 조직 내 테넌트 수가 늘어나면 단일 팀이 다중 테넌트 환경을 관리하기 어려워집니다.

네임스페이스(Namespaces) 는 단일 Vault Enterprise 인스턴스 내에서 테넌트 격리와 관리 위임(administration delegation)을 통한 보안 다중 테넌시(SMT)를 지원합니다. 이를 통해 Vault 관리자는 위임받은 관리자(delegate)가 자신의 테넌트 환경을 스스로 관리하도록 할 수 있습니다.

출처: 문서

본문

네임스페이스를 만들면 별도의 로그인 경로가 있는 격리된 환경이 생기며, 이는 Vault 설치 안에서 미니 Vault 인스턴스처럼 작동합니다. 사용자는 그 네임스페이스 범위 안에서 다음을 포함한 민감한 데이터를 만들고 관리할 수 있습니다.

  • 시크릿 엔진
  • 인증 방법
  • ACL, EGP, RGP 정책
  • 비밀번호 정책
  • 엔티티
  • ID 그룹
  • 토큰

팁: 네임스페이스는 격리된 환경이지만, Vault 관리자는 Vault API의 group-policy-application 엔드포인트로 네임스페이스 전반에 걸쳐 전역 정책을 공유·강제할 수 있습니다.

네임스페이스 명명 제한

유효한 Vault 네임스페이스 이름:

  • /로 끝날 수 없음
  • 공백을 포함할 수 없음
  • 다음 예약 문자열 중 하나일 수 없음: root, sys, audit, auth, cubbyhole, identity

네임스페이스 관리 관련 스토리지 한도는 Vault limits and maximums 문서의 Namespace limits 섹션을 참고하세요.

관련 읽기: Vault 네임스페이스와 마운트 구조화 튜토리얼에서 네임스페이스 구조화에 대한 모범 사례와 권장 사항을 확인하세요.

하위 네임스페이스 (Child namespaces)

하위 네임스페이스(child namespace) 는 다른 네임스페이스 범위 안에 완전히 존재하는 네임스페이스입니다. 포함하는 네임스페이스를 부모 네임스페이스(parent namespace) 라고 합니다. 예를 들어 네임스페이스 경로 A/B/C가 주어지면:

  • A는 최상위 네임스페이스이며 Vault 인스턴스의 루트 네임스페이스 아래에 존재합니다.
  • BA의 하위 네임스페이스이자 C의 부모 네임스페이스입니다.
  • CB의 하위 네임스페이스이자 A의 손자 네임스페이스입니다.

하위 네임스페이스는 부모 네임스페이스의 요소를 상속할 수 있습니다. 예를 들어 하위 네임스페이스의 정책은 부모 네임스페이스의 엔티티나 그룹을 참조할 수 있습니다. 부모 네임스페이스는 하위 네임스페이스 내 ID에 정책을 적용할 수도 있습니다.

Vault 관리자는 Vault API의 group-policy-application 엔드포인트로 원하는 상속 동작을 구성할 수 있습니다.

위임 및 관리용 네임스페이스 (Delegation and administrative namespaces)

Vault 시스템 관리자는 위임된 관리자(delegate admin)에게 관리 권한을 부여해 팀이 자신의 네임스페이스를 스스로 관리하게 할 수 있습니다. 기본 관리 외에도 위임된 관리자는 하위 네임스페이스를 만들고 하위 위임 관리자에게 관리 권한을 부여할 수 있습니다.

또한 관리용 네임스페이스(administrative namespaces) 를 통해 Vault 관리자는 Vault 구성 파일의 관련 네임스페이스 매개변수를 설정하여 미리 정의된 권한 있는 엔드포인트의 하위 집합에 접근을 부여할 수 있습니다.

Vault API와 네임스페이스

사용자는 X-Vault-Namespace 헤더를 절대·상대 네임스페이스 경로로 설정해 특정 네임스페이스 아래에서 API 작업을 수행할 수 있습니다. 상대 네임스페이스 경로는 호출 네임스페이스의 하위 네임스페이스로 가정됩니다. X-Vault-Namespace 헤더 없이 절대 네임스페이스 경로를 제공할 수도 있습니다.

Vault는 호출 네임스페이스와 X-Vault 헤더를 기반으로 정규화된 네임스페이스 경로를 구성해 요청을 적절한 네임스페이스로 라우팅합니다. 예를 들어 다음 요청은 모두 ns1/ns2/secret/foo 네임스페이스로 라우팅됩니다.

  • 경로: ns1/ns2/secret/foo
  • 경로: secret/foo, 헤더: X-Vault-Namespace: ns1/ns2/
  • 경로: ns2/secret/foo, 헤더: X-Vault-Namespace: ns1/

Vault Enterprise는 네임스페이스 API를 제공합니다. /sys/namespaces API 또는 namespace CLI 명령을 사용해 네임스페이스를 관리하세요.

제한된 API 경로

Vault API에는 sys/ 경로 아래에 마운트된 시스템 백엔드 엔드포인트가 포함됩니다. 시스템 엔드포인트를 사용하면 Vault 인스턴스의 내부 기능과 상호작용할 수 있습니다.

기본적으로 Vault는 덜 민감한 시스템 백엔드 엔드포인트에 대한 비루트 호출을 허용합니다. 그러나 보안상의 이유로 일부 시스템 백엔드 엔드포인트에 대한 접근은 루트 네임스페이스에서 온 호출 또는 루트 네임스페이스에서 승격된 권한을 가진 토큰을 사용하는 호출로 제한합니다.

전체 권한 있는 sys/ 경로 접근을 부여하는 대신, Vault 관리자는 관리용 네임스페이스로 제한된 엔드포인트의 미리 정의된 하위 집합에 접근을 부여할 수도 있습니다.

API 경로 Root Admin
sys/activation-flags/secrets-sync/activate YES NO
sys/audit YES NO
sys/audit-hash YES YES
sys/config/auditing/* YES NO
sys/config/cors YES NO
sys/config/group-policy-application YES YES
sys/config/reload YES NO
sys/config/state YES NO
sys/config/ui YES NO
sys/decode-token YES NO
sys/experiments YES NO
sys/generate-recovery-token YES NO
sys/generate-root YES NO
sys/health YES NO
sys/host-info YES NO
sys/in-flight-req YES NO
sys/init YES NO
sys/internal/counters/activity YES NO
sys/internal/counters/activity/monthly YES NO
sys/internal/counters/config YES NO
sys/internal/inspect/router/* YES NO
sys/key-status YES NO
sys/loggers YES NO
sys/managed-keys/* YES NO
sys/metrics YES NO
sys/mfa/method/* YES NO
sys/monitor YES YES
sys/pprof/* YES NO
sys/quotas/config YES YES
sys/quotas/lease-count YES YES
sys/quotas/rate-limit YES YES
sys/raw YES NO
sys/rekey/* YES NO
sys/rekey-recovery-key YES NO
/sys/replication/dr/primary/* YES NO
/sys/replication/dr/secondary/* YES NO
/sys/replication/performance/primary/* YES NO
/sys/replication/performance/secondary/* YES NO
sys/replication/recover YES NO
sys/replication/reindex YES NO
sys/replication/status YES NO
sys/replication/merkle-check YES NO
sys/rotate/config YES NO
sys/rotate YES NO
sys/seal YES NO
sys/sealwrap/rewrap YES NO
sys/step-down YES NO
sys/storage YES NO
sys/sync/config YES YES
sys/unseal YES NO

공개 API 엔드포인트가 없는 권한 있는 CLI 명령:

CLI 명령 Root Admin
vault plugin runtime YES NO

더 알아보기

Vault 네임스페이스에 대해 더 알아보려면 다음 튜토리얼을 참고하세요.

  • Secure Multi-Tenancy with Namespaces
  • Secrets Management Across Namespaces without Hierarchical Relationship
  • Vault Namespace and Mount Structuring Guide
  • HCP Vault Dedicated namespace considerations
  • Using many Namespaces

더 알아보기 (Learn more)