`operator init` — 서버 초기화하기

operator init — 서버 초기화하기

vault operator init은 Vault 서버를 초기화하는 명령어예요. 초기화는 Vault의 스토리지 백엔드가 데이터를 받을 준비를 하는 과정이에요. HA 모드에서는 Vault 서버들이 같은 스토리지 백엔드를 공유하므로, 스토리지 백엔드를 초기화하려면 Vault 하나만 초기화하면 돼요. 이 명령어는 이미 초기화된 Vault 클러스터에 대해서는 실행할 수 없어요.

초기화 중에 Vault는 루트 키(root key)를 생성하며, 이 키는 다른 모든 Vault 데이터와 함께 스토리지 백엔드에 저장돼요. 루트 키 자체는 암호화되어 있으며, 해독하려면 언실 키(unseal key)가 필요해요.

기본 Vault 구성은 샤미르의 비밀 공유(Shamir's Secret Sharing)를 사용해 루트 키를 설정된 수의 샤드(shard, 키 공유 또는 언실 키라고도 함)로 나눠요. 루트 키를 재구성하려면 일정 임계값의 샤드가 필요한데, 재구성된 루트 키는 Vault의 암호화 키를 해독하는 데 사용돼요.

자세한 내용은 Seal/Unseal 문서를 참고하세요.

출처: 문서

본문

예시 (Examples)

기본 옵션으로 초기화를 시작해요:

$ vault operator init

초기화하되, pgp 키로 언실 키를 암호화해요:

$ vault operator init \
    -key-shares=3 \
    -key-threshold=2 \
    -pgp-keys="keybase:hashicorp,keybase:jefferai,keybase:sethvargo"

비기본 임계값과 회복 키(recovery key) 수로 Auto Unseal을 초기화하고, 회복 키를 pgp 키로 암호화해요:

$ vault operator init \
    -recovery-shares=7 \
    -recovery-threshold=4 \
    -recovery-pgp-keys="keybase:jeff,keybase:chris,keybase:brian,keybase:calvin,keybase:matthew,keybase:vishal,keybase:nick"

초기 루트 토큰을 pgp 키로 암호화해요:

$ vault operator init -root-token-pgp-key="keybase:hashicorp"

사용법 (Usage)

모든 명령어에 기본으로 포함된 표준 플래그 외에 다음 플래그들을 추가로 사용할 수 있어요.

출력 옵션 (Output options)

  • -format (string: "") — 출력 형식을 지정해요. 유효한 값은 "table", "json", "yaml"이에요. 기본값은 table이에요. VAULT_FORMAT 환경 변수로도 지정할 수 있어요.

공통 옵션 (Common options)

  • -key-shares (int: 5) — 생성된 마스터 키를 나눌 키 공유 수. 생성할 "언실 키"의 수예요. -n으로도 별칭 사용 가능해요.
  • -key-threshold (int: 3) — 루트 키를 재구성하는 데 필요한 키 공유 수. -key-shares보다 작거나 같아야 해요. -t로도 별칭 사용 가능해요.
  • -pgp-keys (string: "...") — 공개 PGP 키를 담은 디스크 파일 경로의 쉼표 구분 목록 또는 keybase:<username> 형식의 Keybase 사용자 이름 쉼표 구분 목록. 제공하면 생성된 언실 키들이 이 목록에 지정된 순서대로 암호화되고 base64 인코딩돼요. 항목 수는 -stored-shares를 사용하지 않는 한 -key-shares와 일치해야 해요.
  • -root-token-pgp-key (string: "") — 바이너리 또는 base64 인코딩 공개 PGP 키를 담은 디스크 파일 경로. keybase:<username> 형식의 Keybase 사용자 이름으로도 지정할 수 있어요. 제공하면 생성된 루트 토큰이 주어진 공개 키로 암호화되고 base64 인코딩돼요.
  • -status (bool: false) — 현재 초기화 상태를 출력해요. 종료 코드 0은 Vault가 이미 초기화됨, 1은 오류 발생, 2는 Vault가 초기화되지 않았음을 뜻해요.

Consul 옵션 (Consul options)

  • -consul-auto (bool: false) — HA 모드에서 Consul을 사용해 자동 서비스 검색을 수행해요. Vault HA 클러스터의 모든 노드가 Consul에 등록되어 있으면, 이 옵션을 켜면 제공된 -consul-service 값을 기반으로 자동 서비스 검색이 트리거돼요. Consul이 Vault의 HA 백엔드일 때는 이 기능이 자동으로 활성화돼요. 적절한 Consul 환경 변수(CONSUL_HTTP_ADDR 등)를 설정하세요. Vault 서버가 하나만 발견되면 자동으로 초기화돼요. 둘 이상 발견되면 각각 선택을 위해 출력돼요. 기본값은 false예요.
  • -consul-service (string: "vault") — Vault 서버들이 등록된 Consul의 서비스 이름.

HSM 및 KMS 옵션 (HSM and KMS options)

  • -recovery-pgp-keys (string: "...") — -pgp-keys처럼 동작하되 회복 키 공유용이에요. Auto Unseal 실(HSM, KMS, Transit)에서만 사용할 수 있어요.
  • -recovery-shares (int: 5) — 회복 키를 나눌 키 공유 수. Auto Unseal 실(HSM, KMS, Transit)에서만 사용할 수 있어요.
  • -recovery-threshold (int: 3) — 회복 키를 재구성하는 데 필요한 키 공유 수. Auto Unseal 실(HSM, KMS, Transit)에서만 사용할 수 있어요.
  • -stored-shares (int: 0) — HSM에 저장할 언실 키 수. -key-shares와 같아야 해요.

회복 키: 회복 키에 대해 더 알아보려면 Seal/Unseal 문서를 참고하세요.

더 알아보기 (Learn more)

  • vault operator unseal — 서버 언실
  • vault operator seal — 서버 실링
  • Seal/Unseal 문서