server

server

vault server 명령은 API 요청에 응답하는 Vault 서버를 시작합니다. 기본적으로 Vault는 "sealed"(봉인된) 상태로 시작합니다. Vault 클러스터는 사용 전에 보통 vault operator init 명령으로 초기화해야 합니다. 각 Vault 서버도 서버가 요청에 응답하기 전에 vault operator unseal 명령이나 API로 봉인 해제(unseal)해야 합니다.

출처: 문서

본문

자세한 내용은 다음을 참고하세요:

  • operator init 명령 — Vault 서버 초기화에 대한 정보.
  • operator unseal 명령 — 봉인 해제 키 제공에 대한 정보.
  • Vault configuration — Vault 서버의 문법과 다양한 구성 옵션.

예제 (Examples)

구성 파일로 서버를 시작합니다:

$ vault server -config=/etc/vault/config.hcl

사용자 지정 초기 root 토큰으로 "dev" 모드로 실행합니다:

$ vault server -dev -dev-root-token-id="root"

사용법 (Usage)

모든 명령에 포함되는 표준 플래그 세트 외에 다음 플래그를 사용할 수 있습니다.

명령 옵션 (Command options)

  • -config (string: "") — 구성 파일 또는 구성 파일 디렉터리의 경로입니다. 이 플래그는 여러 번 지정해 여러 구성을 로드할 수 있습니다. 경로가 디렉터리이면 .hcl 또는 .json 으로 끝나는 모든 파일을 로드합니다.
  • -log-level (string: "info") — 로그 상세도 수준입니다. 지원되는 값(상세도가 높은 순)은 trace, debug, info, warn, error 입니다. VAULT_LOG_LEVEL 환경 변수로도 지정할 수 있습니다.
  • -log-format (string: "standard") — 로그 형식입니다. 지원되는 값은 standardjson 입니다. VAULT_LOG_FORMAT 환경 변수로도 지정할 수 있습니다.
  • -log-file — journald/stdout 같은 기존 출력 외에 Vault가 로그 메시지를 저장해야 하는 절대 경로입니다. 경로 구분자로 끝나는 경로는 기본 파일 이름인 vault.log 를 사용합니다. 파일 확장자로 끝나지 않는 경로는 기본 .log 확장자를 사용합니다. 로그 파일이 로테이션되면 Vault는 로테이션 시점에 현재 타임스탬프를 파일 이름에 추가합니다. 예:
log-file 전체 로그 파일 로테이션된 로그 파일
/var/log/ /var/log/vault.log /var/log/vault-{timestamp}.log
/var/log/my-diary /var/log/my-diary.log /var/log/my-diary-{timestamp}.log
/var/log/my-diary.txt /var/log/my-diary.txt /var/log/my-diary-{timestamp}.txt
  • -log-rotate-bytes — 로그를 로테이션하기 전에 파일에 기록해야 하는 바이트 수를 지정합니다. 지정하지 않으면 로그 파일에 기록할 수 있는 바이트 수에 제한이 없습니다.
  • -log-rotate-duration — 로그를 로테이션하기 전에 기록해야 하는 최대 기간을 지정합니다. 30s 같은 duration 값이어야 합니다. 기본값은 24h입니다.
  • -log-rotate-max-files — 보관할 이전 로그 파일 아카이브의 최대 개수를 지정합니다. 기본값은 0(파일은 절대 삭제되지 않음)입니다. 새 파일이 생성될 때 이전 로그 파일을 버리려면 -1로 설정하세요.
  • -experiment (string array: []) — 이 노드에 대해 활성화할 실험(experiment)의 이름입니다. 이 플래그는 여러 번 지정해 여러 실험을 활성화할 수 있습니다. 실험은 프로덕션에서 사용하면 안 되며, 관련 API는 릴리스 간에 하위 호환이 깨질 수 있습니다. 추가 실험은 VAULT_EXPERIMENTS 환경 변수(쉼표로 구분되 목록)나 experiments 구성 키로도 지정할 수 있습니다.
  • -pprof-dump-dir (string: "") — 생성된 프로파일이 만들어지는 디렉터리입니다. pprof-dump-dir 가 설정되지 않으면 Vault는 프로파일을 생성하지 않습니다. pprof-dump-dir 는 디버깅 세션 중에 임시로만 사용하고, 일반 프로덕션 프로세스에서는 사용하지 마세요.
  • VAULT_ALLOW_PENDING_REMOVAL_MOUNTS (bool: false) — (환경 변수) Pending Removal deprecation 상태를 가진 내장 엔진으로 Vault를 시작할 수 있게 합니다. 이는 업그레이드를 수행하고 이 엔진들을 비활성화하기 위한 임시 중간 조치입니다. 이 엔진들이 Removed 로 표시되면(Vault의 다음 주요 릴리스에서) 이 환경 변수는 더 이상 작동하지 않으며, 문제가 되는 엔진을 제거하려면 다운그레이드를 수행해야 합니다. 자세한 내용은 deprecation notices를 참고하세요.
  • VAULT_STACKTRACE_WRITE_TO_FILE (non-empty string) — (환경 변수) Vault가 SIGUSR2 신호를 받을 때 goroutine 덤프 파일 작성을 활성화합니다. 임의의 비어 있지 않은 값으로 설정하고 Vault가 SIGUSR2를 받으면, Vault는 goroutine 스택을 로그에 기록하는 것 외에 goroutine 이라는 이름의 파일도 작성합니다. VAULT_STACKTRACE_WRITE_TO_FILE 값은 자동 종료 덤프에는 영향을 주지 않습니다. Vault가 시작하기 전에 이 변수를 설정해야 하며, Vault 실행 중에는 다시 로드할 수 없습니다.
  • VAULT_STACKTRACE_FILE_PATH (directory path) — (환경 변수) goroutine 덤프 파일의 출력 디렉터리를 재정의합니다. stacktrace 경로는 SIGUSR2 덤프(VAULT_STACKTRACE_WRITE_TO_FILE 이 설정된 경우)와 자동 종료 덤프 모두에 적용됩니다. 경로는 존재하는 디렉터리를 가리켜야 합니다. 경로가 유효하지 않거나 디렉터리가 존재하지 않으면 Vault는 경고를 기록하고 덤프를 건너뜁니다. 설정하지 않으면 Vault는 각 덤프에 대해 os.TempDir() 안에 임의 이름의 임시 디렉터리를 생성합니다. 또한 SIGUSR2는 전체 pprof 번들(goroutine, heap, allocs, threadcreate, CPU 프로파일)을 $TMPDIR/vault-pprof/ 에 무조건 기록합니다. Vault는 번들 데이터를 쓸 위치를 결정하는 데 VAULT_STACKTRACE_FILE_PATHVAULT_STACKTRACE_WRITE_TO_FILE 을 사용하지 않습니다.

개발 모드 옵션 (Dev options)

  • -dev (bool: false) — 개발 모드를 활성화합니다. 이 모드에서 Vault는 메모리 내(in-memory)에서 실행되며 봉인 해제된 상태로 시작합니다. 이름 그대로 "dev" 모드를 프로덕션에서 실행하지 마세요.
  • -dev-tls (bool: false) — TLS 개발 모드를 활성화합니다. 이 모드에서 Vault는 메모리 내에서 실행되며, 생성된 TLS CA, 인증서, 키로 봉인 해제된 상태로 시작합니다. 역시 "dev" 모드를 프로덕션에서 실행하지 마세요.
  • -dev-tls-cert-dir (string: "")-dev-tls 지정 시 생성된 TLS 파일이 만들어지는 디렉터리입니다. 설정하지 않으면 임시 디렉터리에 파일이 생성됩니다.
  • -dev-listen-address (string: "127.0.0.1:8200") — "dev" 모드에서 바인딩할 주소입니다. VAULT_DEV_LISTEN_ADDRESS 환경 변수로도 지정할 수 있습니다.
  • -dev-root-token-id (string: "") — 초기 root 토큰입니다. "dev" 모드에서 실행할 때만 적용됩니다. VAULT_DEV_ROOT_TOKEN_ID 환경 변수로도 지정할 수 있습니다.
    • 참고: 토큰 ID는 s. 접두사로 시작하면 안 됩니다.
  • -dev-no-store-token (string: "") — dev root 토큰을 이후 요청에 사용하기 위해 토큰 헬퍼(보통 로컬 파일시스템)에 영속화하지 않습니다. 토큰은 명령 출력에만 표시됩니다.
  • -dev-plugin-dir (string: "") — 플러그인을 로드할 수 있는 디렉터리입니다. "dev" 모드에서만 적용되며, 제공된 디렉터리의 모든 플러그인을 자동으로 등록합니다.

더 알아보기 (Learn more)