`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") — 사용할 패치 방식을 지정해요. 유효한 값은patch와rw예요.patch방식은 HTTPPATCH요청으로 부분 업데이트를 적용해요.rw방식은 시크릿의 데이터를 가져와 메모리에서 업데이트한 뒤, 업데이트된 데이터를 작성해요.-cas(int: 0) — Check-And-Set 연산에 사용할 값을 지정해요. 이 플래그는patch방식에서만 사용돼요. 시크릿이나 엔진의 구성에서cas_required가true로 설정되어 있으면 이 플래그가 필수예요. 패치가 성공하려면-cas가 시크릿의 현재 버전과 일치해야 해요. 이 플래그는rw방식에서는 무시되며, 대신 시크릿의 현재 버전을 가져와 그 값이 도출돼요.-mount(string: "") — KV 백엔드가 마운트된 경로를 지정해요. 이 값이 있으면 그 다음 인자는 시크릿 경로로 해석돼요. 이 플래그가 없으면 그 다음 인자는 마운트 경로와 시크릿 경로가 합쳐진 것으로 해석되며, KV v2 시크릿에는/data/가 자동으로 삽입돼요.
더 알아보기 (Learn more)
vault kv put— 데이터 작성·교체vault kv get— 데이터 조회vault patch— 일반 경로 부분 업데이트