write

write

vault write 명령은 주어진 경로에서 Vault에 데이터를 씁니다(HTTP PUT 또는 POST의 래퍼 명령). 데이터는 자격 증명, 시크릿, 구성, 또는 임의 데이터일 수 있습니다. write 명령의 구체적인 동작은 해당 경로에 마운트된 것에 의해 결정됩니다.

출처: 문서

본문

데이터는 명령줄에서 "key=value" 쌍으로 지정합니다. 값이 "@" 로 시작하면 파일에서 로드합니다. 키의 값이 "-" 이면 Vault는 명령줄 대신 stdin에서 값을 읽습니다.

일부 API 필드는 맵(map) 같은 더 고급 구조를 요구합니다. 이것들은 명령줄에 직접 표현할 수 없습니다. 그러나 유일한 데이터 인자로 - 를 사용하면 요청 파라미터를 직접 제어할 수 있습니다. 이렇게 하면 vault write가 stdin에서 모든 요청 파라미터를 포함한 JSON blob을 읽습니다. 이 인자는 "key=value" 쌍과 함께 사용하면 무시됩니다.

전체 예제와 경로 목록은 사용 중인 시크릿 엔진에 해당하는 문서를 참고하세요.

예제 (Examples)

토큰의 cubbyhole에 임의의 시크릿을 저장합니다:

$ vault write cubbyhole/git-credentials username="student01" password="p@$$w0rd"

transit 시크릿 엔진에 새 암호화 키를 생성합니다. -force 플래그는 입력 데이터 없이 write 작업을 허용합니다(명령 옵션 참고):

$ vault write -force transit/keys/my-key

디스크의 파일에서 AWS IAM 정책을 업로드합니다:

$ vault write aws/roles/ops [email protected]

접근 토큰을 제공해 Consul에 대한 접근을 구성합니다:

$ echo $MY_TOKEN | vault write consul/config/access token=-

alice 라는 사용자에 대한 역할 수준 TTL 값을 설정해, 생성된 임대가 기본 TTL 8시간(28800초)과 최대 TTL 12시간(43200초)을 갖도록 합니다:

$ VAULT_TOKEN=$VAULT_TOKEN vault write /auth/userpass/users/alice \
    token_ttl="8h" token_max_ttl="12h"

API 대 CLI (API versus CLI)

TTL을 8시간으로 설정하고, 3회 사용으로 제한하며, admin과 secops 정책을 연결해 토큰을 생성합니다:

$ vault write auth/token/create policies="admin" policies="secops" ttl=8h num_uses=3

이 작업의 동등한 cURL 명령:

$ tee request_payload.json -<<EOF
{
   "policies": ["admin", "secops"],
   "ttl": "8h",
   "num_uses": 3
}
EOF

$ curl --header "X-Vault-Token: $VAULT_TOKEN" \
    --request POST \
    --data @request_payload.json \
    $VAULT_ADDR/v1/auth/token/create

vault write 명령은 API 호출을 단순화합니다. 토큰 관리는 흔한 작업이므로 Vault CLI는 create 하위 명령이 있는 token 명령을 제공합니다. CLI 명령이 토큰 생성을 단순화합니다. vault token create 명령을 옵션과 함께 사용해 토큰 TTL, 정책, 사용 제한을 설정하세요.

문법: 명령 옵션은 - 로 시작하는 반면(예: -ttl) API 경로 파라미터는 그렇지 않습니다(예: ttl). API 파라미터는 항상 호출하는 경로 뒤에 설정합니다.

사용법 (Usage)

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

출력 옵션 (Output options)

  • -field (string: "")-format 지시문에 지정된 형식으로 주어진 이름의 필드만 인쇄합니다. 출력 끝에 줄바꿈이 없어서 다른 프로세스로 파이프하기에 좋습니다.
  • -format (string: "table") — 출력을 주어진 형식으로 인쇄합니다. 유효한 형식은 "table", "json", "yaml" 입니다. VAULT_FORMAT 환경 변수로도 지정할 수 있습니다.

명령 옵션 (Command options)

  • -force (bool: false) — key=value 쌍 없이도 작업을 계속하도록 허용합니다. 이렇게 하면 데이터가 필요하지 않거나 기대하지 않는 키에 쓸 수 있습니다. -f 로도 별칭이 지정됩니다.

더 알아보기 (Learn more)