`kv patch` — 기존 키/값 데이터 부분 업데이트하기

kv patch — 기존 키/값 데이터 부분 업데이트하기

참고: 이 명령어는 KV 버전 2 시크릿 엔진 전용이며, 버전 1에서는 사용할 수 없어요.

vault kv patch는 KV v2 시크릿 엔진의 지정한 경로에 데이터를 작성하는 명령어예요. 데이터는 어떤 타입이든 될 수 있어요. kv put 명령어와 달리, patch 명령어는 기존 데이터를 교체하는 게 아니라 변경 사항을 기존 데이터와 결합해요. 그래서 기존 데이터에 부분 업데이트를 하기 매우 쉽게 해줘요.

출처: 문서

본문

예시 (Examples)

"creds" 키의 기존 데이터에 추가 키-값(ttl=48h)을 더하고 싶다면 이렇게 해요:

$ vault kv patch -mount=secret creds ttl=48h
== Secret Path ==
secret/data/creds

======= Metadata =======
Key              Value
---              -----
created_time     2019-06-06T16:46:22.090654Z
deletion_time    n/a
destroyed        false
version          6

참고: 같은 결과를 얻으려면 kv put 명령어는 기존 데이터와 추가할 데이터를 모두 요구해요.

$ vault kv put -mount=secret creds ttl=48h passcode=my-long-passcode

데이터는 @ 기호를 앞에 붙여 디스크의 파일에서 읽을 수도 있어요. 예:

$ vault kv patch -mount=secret creds @data.json

또는 - 기호를 사용해 표준 입력(stdin)에서 읽을 수 있어요:

$ echo "abcd1234" | vault kv patch -mount=secret foo bar=-

사용법 (Usage)

출력 옵션 (Output options)

  • -field (string: "") — 주어진 이름의 필드만 출력해요. 이 옵션을 지정하면 다른 서식 지시자보다 우선해요. 결과 끝에 줄바꿈이 붙지 않아 다른 프로세스로 파이프하기에 좋아요.
  • -format (string: "table") — 출력 형식을 지정해요. 유효한 값은 "table", "json", "yaml"이에요. VAULT_FORMAT 환경 변수로도 지정할 수 있어요.

커맨드 옵션 (Command options)

  • -method (string: "patch") — 사용할 패치 방식을 지정해요. 유효한 값은 patchrw예요. patch 방식은 HTTP PATCH 요청으로 부분 업데이트를 적용해요. rw 방식은 시크릿의 데이터를 가져와 메모리에서 업데이트한 뒤, 업데이트된 데이터를 작성해요.
  • -cas (int: 0) — Check-And-Set 연산에 사용할 값을 지정해요. 이 플래그는 patch 방식에서만 사용돼요. 시크릿이나 엔진의 구성에서 cas_requiredtrue로 설정되어 있으면 이 플래그가 필수예요. 패치가 성공하려면 -cas가 시크릿의 현재 버전과 일치해야 해요. 이 플래그는 rw 방식에서는 무시되며, 대신 시크릿의 현재 버전을 가져와 그 값이 도출돼요.
  • -mount (string: "") — KV 백엔드가 마운트된 경로를 지정해요. 이 값이 있으면 그 다음 인자는 시크릿 경로로 해석돼요. 이 플래그가 없으면 그 다음 인자는 마운트 경로와 시크릿 경로가 합쳐진 것으로 해석되며, KV v2 시크릿에는 /data/가 자동으로 삽입돼요.

더 알아보기 (Learn more)

  • vault kv put — 데이터 작성·교체
  • vault kv get — 데이터 조회
  • vault patch — 일반 경로 부분 업데이트