πVault
1. Starting the server
Vault hoαΊ‘t Δα»ng nhΖ° mα»t α»©ng dα»₯ng client-server
Starting Dev server
Sα» dα»₯ng cα»
-helpΔα» liα»t kΓͺ cΓ‘c tΓΉy chα»n cΓ³ sαΊ΅n chovault server

Khα»i Δα»ng Vault server trong chαΊΏ Δα» development (dev server). Dev server lΓ mα»t mΓ‘y chα»§ tΓch hợp, Δược cαΊ₯u hΓ¬nh sαΊ΅n, khΓ΄ng an toΓ n nhΖ°ng hα»―u Γch khi thao tΓ‘c vα»i local Vault.


Set environment variables
ChαΊ‘y mα»t cα»a sα» terminal mα»i
ChαΊ‘y lα»nh sau Δα» cαΊ₯u hΓ¬nh mΓ‘y Vault client giao tiαΊΏp vα»i mΓ‘y Dev . Vault CLI xΓ‘c Δinh Vault server nΓ o sαΊ½ gα»i yΓͺu cΓ u bαΊ±ng cΓ‘ch sα» dα»₯ng biαΊΏn mΓ΄i trΖ°α»ng VAULT_ADDR
export VAULT_ADDR='http://127.0.0.1:8200
ΔαΊ·t giΓ‘ trα» biαΊΏn mΓ΄i trΖ°α»ng VAULT_TOKEN thΓ nh Root Token ΔΓ£ Δược tαΊ‘o trong bΖ°α»c Khα»i Δα»ng Dev server.
export VAULT_TOKEN="hvs.XHApczAxj0bqP115hfdxx3eM"
Verify the Server is Running
XΓ‘c minh mΓ‘y chα»§ Δang chαΊ‘y bαΊ±ng cΓ‘ch chαΊ‘y dΖ°α»i ΔΓ’y . NαΊΏu lα»nh thΓ nh cΓ΄ng, ΔαΊ§u ra sαΊ½ nhΖ° sau:

2. Your first secret
Key/Value secrets engine
Khi vault chαΊ‘y α» Dev mode, Key/Value V2 secret engine Δược bαΊt tαΊ‘i ΔΖ°α»ng dαΊ«n secret/ . Key/Value secret engine lΓ mα»t kho lΖ°u trα»― khΓ³a vΓ giΓ‘ trα» chung Δược sα» dα»₯ng Δα» lΖ°u trα»― cΓ‘c bΓ mαΊt tΓΉy Γ½ trong bα»t lΖ°u trα»― vαΊt lΓ ΔΓ£ Δược cαΊ₯u hΓ¬nh cho Vault. CΓ‘c bΓ mαΊt Δược ghi vΓ o Vault Δược mΓ£ hΓ³a vΓ sau ΔΓ³ Δược ghi vΓ o Storage Backend. Do ΔΓ³, cΖ‘ chαΊΏ backend storastorage khΓ΄ng bao giα» nhΓ¬n thαΊ₯y giΓ‘ trα» khΓ΄ng Δược mΓ£ hΓ³a.
Get command help
BαΊ‘n cΓ³ thα» tΖ°Ζ‘ng tΓ‘c vα»i cΓ΄ng cα»₯ bΓ mαΊt key/value bαΊ±ng cΓ‘ch sα» dα»₯ng lα»nh vault kv

Write secret
BΓ’y giα» viαΊΏt bΓ mαΊt key-value vΓ o ΔΖ°α»ng dαΊ«n hello vα»i khΓ³a lΓ foo vΓ giΓ‘ trα» lΓ world. Sα» dα»₯ng lαΊΉnh vault kv put Δα»i vα»i ΔΖ°α»ng dαΊ«n mount secret, ΔΓ’y lΓ nΖ‘i cΓ΄ng cα»₯ bΓ mαΊt KV v2 Δược gαΊ―n kαΊΏt. Lα»nh nΓ y tαΊ‘o mα»t phiΓͺn bαΊ£n mα»i cα»§a cΓ‘c bΓ mαΊt vΓ thay thαΊΏ mα»i dα»― liα»u ΔΓ£ tα»n tαΊ‘i trΖ°α»c ΔΓ³ tαΊ‘i ΔΖ°α»ng dαΊ«n nΓ y nαΊΏu cΓ³.

-mount=string: chα» Δα»nh ΔΖ°α»ng dαΊ«n mΓ KV backend Δược mounted. NαΊΏu Δược chα» Δα»nh, Δα»i sα» tiαΊΏp theo sαΊ½ Δược hieeur lΓ ΔΖ°α»ng dαΊ«n bΓ mαΊt. NαΊΏu cα» nΓ y khΓ΄ng Δược chα» Δα»nh, Δα»i sα» tiαΊΏp theo sαΊ½ Δược hiα»u lΓ ΔΖ°α»ng dαΊ«n gαΊ―n kαΊΏt vΓ ΔΖ°α»ng dαΊ«n bΓ mαΊt kαΊΏt hợp vα»i /data/ Δược tα»± Δα»ng Δược thΓͺm vΓ o giα»― bΓ mαΊt KV v2
Read a secret
CΓ‘c bΓ mαΊt cΓ³ thα» Δược truy xuαΊ₯t bαΊ±ng vault kv get

Δα» chα» in giΓ‘ trα» cα»§a mα»t trΖ°α»ng duy nhαΊ₯t Δα»nh, hΓ£y sα» dα»₯ng cα»: -field=<key_name>

Delete a secret
Sα» dα»₯ng lα»nh vault kv delete

ChΓΊ Γ½: tham sα» destroyed cΓ³ giΓ‘ trα» false nghΔ©a lΓ cΓ³ thα» khΓ΄i phα»₯c dα»― liα»u ΔΓ£ xΓ³a nαΊΏu viα»c xΓ³a lΓ khΓ΄ng cΓ³ chα»§ Γ½.

3. Secret engines
Δα»nh nghΔ©a: Secret engine lΓ thΓ nh phαΊ§n cα»§a Vault lΖ°u trα»―, tαΊ‘o hoαΊ·c mΓ£ hΓ³a bΓ mαΊt.
Enable a secret engine
Δα» bαΊ―t ΔαΊ§u, bαΊt secret engine KV mα»i tαΊ‘i path kv. Mα»i path hoΓ n toΓ n bα» cΓ΄ lαΊp vΓ khΓ΄ng thα» talk vα»i nhα»―ng path khΓ‘c. VΓ dα»₯: secret engine KV Δược tαΊ‘o tαΊ‘i foo khΓ΄ng cΓ³ khαΊ£ nΔng giao tiαΊΏp vα»i secret engine KV tαΊ‘i bar

KαΊΏt quαΊ£ cho thαΊ₯y cΓ³ 5 secret engines Δược kΓch hoαΊ‘t trΓͺn mΓ‘y chα»§ nΓ y.
Δα» tαΊ‘o bΓ mαΊt, sα» dα»₯ng lα»nh kv put:

Δα» Δα»c cΓ‘c bΓ mαΊt Δược lΖ°u trα»― rong ΔΖ°α»ng dαΊ«n kv/hello, sα» dα»₯ng lα»nh kv get:

TαΊ‘o bΓ mαΊt tαΊ‘i ΔΖ°α»ng dαΊ«n: kv/my-secret

Δα»c nhα»―ng bΓ mαΊt tαΊ‘i ΔΖ°α»ng dαΊ«n: kv/my-secβret

4. Dynamic secrets
KhΓ΄ng giα»ng nhΖ° cΓ‘c bΓ mαΊt kv (dα»― liα»u phαΊ£i tα»± ΔΖ°a vΓ o store) cΓ‘c bΓ mαΊt Δα»ng Δược tαΊ‘o khi chΓΊng Δược truy cαΊp.
BΓ mαΊt Δα»ng khΓ΄ng tα»n tαΊ‘i cho ΔαΊΏn khi chΓΊng Δược Δα»c, vΓ¬ vαΊy khΓ΄ng cΓ³ nguy cΖ‘ ai ΔΓ³ ΔΓ‘nh cαΊ―p chΓΊng hoαΊ·c khΓ‘ch hΓ ng khΓ‘c sα» dα»₯ng cΓΉng bΓ mαΊt. VΓ¬ Vault cΓ³ cΓ‘c cΖ‘ chαΊΏ thu hα»i tΓch hợp, cΓ‘c bΓ mαΊt Δα»ng cΓ³ thα» Δược thu hα»i ngay sau khi sα» dα»₯ng, Δiα»u nΓ y giαΊ£m thiα»u thα»i gian bΓ mαΊt tα»n tαΊ‘i.
Enable the AWS secrets engine
KhΓ΄ng giα»ng nhΖ° kv lΓ Δược bαΊt theo mαΊ·c , AWS secrets engine phαΊ£i Δược bαΊt trΖ°α»c khi sα» dα»₯ng. BΖ°α»c nΓ y thΖ°α»ng Δược thα»±c hiα»n thΓ΄ng qua mα»t hα» thα»ng quαΊ£n lΓ cαΊ₯u hΓ¬nh.

Configure the AWS secrets engine
Δang cαΊp nhαΊt
5. Authentication
Token authentication
MΓ£ xΓ‘c thα»±c token Δược bαΊt tα»± Δα»ng. Khi khα»i Δα»ng Dev , ΔαΊ§u ra hiα»n thα» root . Vault CLI Δα»c root token tα»« biαΊΏn mΓ΄i trΖ°α»ng $VAULT_TOKEN. Root token nΓ y cΓ³ thα» thα»±c hiα»n bαΊ₯t kΓ¬ hoαΊ‘t Δα»ng nΓ o trong Vault vΓ¬ nΓ³ Δược chα» Δα»nh root policy.
Create a new token

Token ΔΓ£ tαΊ‘o Δược hiα»n thα» dΖ°α»i dαΊ‘ng: hvs.Ve8Iqi6JvD5gswYqMh55LadG
MΓ£ thΓ΄ng bΓ‘o nΓ y lΓ mΓ£ con cα»§a root token vΓ theo mαΊ·c Δα»nh, mΓ£ nΓ y kαΊΏ thα»«a cΓ‘c chΓnh sΓ‘ch tα»« mΓ£ gα»c cα»§a .
Token lΓ phΖ°Ζ‘ng thα»©c xΓ‘c thα»±c cα»t lΓ΅i. CΓ³ thα» sα» dα»₯ng mΓ£ thΓ΄ng bΓ‘o ΔΓ£ tαΊ‘o Δα» ΔΔng nhαΊp Vault bαΊ±ng cΓ‘ch sao chΓ©p vΓ dΓ‘n token khi Δược nhαΊ―c

ChΓΊ Γ½: Mα»i token Vault lΓ duy nhαΊ₯t. Khi mα»t mΓ£ token khΓ΄ng cΓ²n cαΊ§n thiαΊΏt, nΓ³ cΓ³ thα» bα» thu hα»i. VΓ dα»₯:

MΓ£ token bα» thu hα»i vΓ khΓ΄ng cΓ²n giΓ‘ trα» sα» dα»₯ng.
6. Policies
Δα» xΓ‘c thα»±c, Vault cΓ³ nhiα»u tΓΉy chα»n hoαΊ·c phΖ°Ζ‘ng phΓ‘p cΓ³ thα» Δược kΓch hoαΊ‘t vΓ sα» dα»₯ng. Vault luΓ΄n sα» dα»₯ng cΓΉng mα»t Δα»nh dαΊ‘ng cho cαΊ£ α»§y quyα»n vΓ chΓnh sΓ‘ch. TαΊ₯t cαΊ£ cΓ‘c phΖ°Ζ‘ng thα»©c xΓ‘c thα»±c Γ‘nh xαΊ‘ danh tΓnh return cΓ‘c chΓnh sΓ‘ch cα»t lΓ΅i Δược Δα»nh cαΊ₯u hΓ¬nh vα»i Vault.
Policy format
CΓ‘c chΓnh sΓ‘ch Δược viαΊΏt bαΊ±ng HCL nhΖ°ng tΖ°Ζ‘ng thΓch vα»i JSON. VΓ dα»₯:

GiαΊ£i thΓch: vα»i chΓnh sΓ‘ch nΓ y, ngΖ°α»i dΓΉng cΓ³ thα» ghi bαΊ₯t kΓ¬ bΓ mαΊt nΓ o vΓ o secret/data/, ngoαΊ‘i trα»« vΓ o secret/data/foo (chα» cho phΓ©p Δα»c). CΓ‘c chΓnh sΓ‘ch mαΊ·c Δα»nh lΓ tα»« chα»i, vΓ¬ vαΊy mα»i quyα»n truy cαΊp vΓ o mα»t ΔΖ°α»ng dαΊ«n khΓ΄ng xΓ‘c Δα»nh Δα»u khΓ΄ng Δược phΓ©p.
TαΊ₯t cαΊ£ mα»i thα»© trong Vault phαΊ£i Δược truy cαΊp thΓ΄ng qua API, Δiα»u nΓ y mang lαΊ‘i quyα»n kiα»m soΓ‘t chαΊ·t chαΊ½ Δα»i vα»i mα»i khΓa cαΊ‘nh cα»§a Vault (bαΊt cΓ΄ng cα»₯ bΓ mαΊt, bαΊt phΖ°Ζ‘ng thα»©c xΓ‘c thα»±c, quyα»n truy cαΊp bΓ mαΊt....)
CΓ³ mα»t sα» chΓnh sΓ‘ch tΓch hợp khΓ΄ng thα» xΓ³a Δược. VΓ dα»₯ nhΖ° chΓnh sΓ‘ch root, vΓ default lΓ cΓ‘c chΓnh sΓ‘ch bαΊ―t buα»c vΓ khΓ΄ng thα» xΓ³a Δược. ChΓnh sΓ‘ch default cung cαΊ₯p mα»t tαΊp hợp cΓ‘c quyα»n chung vΓ Δược bao gα»m trΓͺn tαΊ₯t cαΊ£ cΓ‘c token mαΊ·c Δα»nh. ChΓnh sΓ‘ch root cung cαΊ₯p cho ngΖ°α»i dΓΉng mΓ£ token vα»i quyα»n siΓͺu quαΊ£n trα» viΓͺn.
Write a Policy
Sα» dα»₯ng lα»nh vault policy write Δα» viαΊΏt mα»t chΓnh sΓ‘ch.
TαΊ‘o mα»t policy cΓ³ tΓͺn lΓ my-policy vα»i nα»i dα»₯ng tα»« stdin:

Liα»t kΓͺ nhα»―ng chΓnh sΓ‘ch hiα»n cΓ³:

Test the Policy
TαΊ‘o token, thΓͺm chΓnh sΓ‘ch my-policy vΓ ΔαΊ·t ID mΓ£ token lΓ m giΓ‘ trα» cα»§a biαΊΏn mΓ΄i trΖ°α»ng VAULT_TOKEN Δα» sα» dα»₯ng sau nΓ y.

ChΓnh sΓ‘ch nΓ y cho phΓ©p tαΊ‘o vΓ cαΊp nhαΊt cho mα»i ΔΖ°α»ng dαΊ«n trong secret/ ngoΓ i trα»« mα»t ΔΖ°α»ng dαΊ«n.
ViαΊΏt bΓ mαΊt cho ΔΖ°α»ng dαΊ«n secret/data/creds

ChΓnh sΓ‘ch chα» cho phΓ©p cho ΔΖ°α»ng dαΊ«n secret/data/foo. Mα»i nα» lα»±c ghi vΓ o ΔΖ°α»ng dαΊ«n nΓ y Δα»u bα» tα»« chα»i.

Associate Policies to Auth Methods
Δang cαΊp nhαΊt
7. Deploy Vault
Configuring Vault
Vault Δược Δα»nh cαΊ₯u hΓ¬nh bαΊ±ng tα»p HCL. TαΊ‘o cαΊ₯u hΓ¬nh Vault trong tα»p config.hcl

Trong tα»p cαΊ₯u hΓ¬nh nΓ y cΓ³ 2 cαΊ₯u hΓ¬nh chΓnh:
storage: lΓ physical backend mΓ Vault sα» dα»₯ng Δα» lΖ°u trα»―. Cho ΔαΊΏn thα»i Δiα»m nΓ y, Dev server ΔΓ£ sα» dα»₯ng "inmem".listener: mα»t hoαΊ·c nhiα»u trΓ¬nh lαΊ―ng nghe xΓ‘c Δα»nh cΓ‘ch Vault lαΊ―ng nghe cΓ‘c yΓͺu cαΊ§u API. VΓ dα»₯ trΓͺn lαΊ―ng nghe trΓͺn cα»ng 8200 cα»§a mΓ‘y chα»§ cα»₯c bα» khΓ΄ng cΓ³ TLS.api_addr: chα» Δα»nh Δα»a chα» Δα» thΓ΄ng bΓ‘o cho route yΓͺu cαΊ§u cα»§a khΓ‘ch hΓ ng.cluster_addr: cho biαΊΏt Δα»a chα» vΓ cα»ng sαΊ½ Δược sα» dα»₯ng Δα» liΓͺn lαΊ‘c giα»―a cΓ‘c node Vault trong 1 cα»₯m.
Starting the Server
ThThe ./vault/data directory that raft storage backend uses must exist.
ΔαΊ·t cα» -config Δα» trα» ΔαΊΏn dΖ°α»ng dαΊ«n mΓ ΔΓ£ lΖ°u cαΊ₯u hΓ¬nh config.hcl trΖ°α»c ΔΓ³:

Vault xuαΊ₯t thΓ΄ng tin chi tiαΊΏt vα» cαΊ₯u hΓ¬nh cα»§a nΓ³, sau ΔΓ³ block
Initializing the Vault
Mα» phiΓͺn lΓ m viα»c mα»i vΓ chαΊ‘y lα»nh sau:
export VAULT_ADDR='http://127.0.0.1:8200'
Δα» khα»i tαΊ‘o Vault, sα» dα»₯ng vault operator init. ΔΓ’y lΓ yΓͺu cαΊ§u chΖ°a Δược xΓ‘c thα»±c, nhΖ°ng nΓ³ chα» hoαΊ‘t Δα»ng trΓͺn cΓ‘c Vault hoΓ n toΓ n mα»i mΓ khΓ΄ng cΓ³ dα»― liα»u hiα»n cΓ³:

GiαΊ£i thΓch: QuΓ‘ trΓ¬nh khα»i tαΊ‘o cho 2 thΓ΄ng tin quan trα»ng: unseal key vΓ root token. Tuy nhiΓͺn ΔΓ’y lΓ lαΊ§n duy nhαΊ₯t mΓ Vault cho cΓ‘c unseal key gαΊ§n nhau ΔαΊΏn vαΊy. NhΖ°ng trong thα»±c tαΊΏ, khΓ΄ng lΖ°u tαΊp trung cΓ‘c khΓ³a nΓ y cΓΉng nhau. Thay vΓ o ΔΓ³ cΓ³ thα» sα» dα»₯ng PGP vΓ Keybase.io cα»§a Vault Δα» mΓ£ hΓ³a tα»«ng khΓ³a nΓ y bαΊ±ng khΓ³a PGP cα»§a ngΖ°α»i .
Seal/Unseal
Mα»i mΓ‘y chα»§ Vault khα»i chαΊ‘y Δα»u bαΊ―t ΔαΊ§u α» trαΊ‘ng thΓ‘i SEAL. Tα»« cαΊ₯u hΓ¬nh, Vault cΓ³ thα» truy cαΊp physical storage nhΖ°ng khΓ΄ng thα» Δα»c bαΊ₯t kΓ¬ bα» nhα» nΓ o vΓ¬ khΓ΄ng biαΊΏt cΓ‘ch giαΊ£i mΓ£. QuΓ‘ trΓ¬nh hΖ°α»ng dαΊ«n Vault cΓ‘ch giαΊ£i mΓ£ dα»― liα»u Δược gα»i lΓ unseal
Viα»c unseal phαΊ£i diα» n ra mα»i khi Vault khα»i Δα»ng. NΓ³ cΓ³ thα» Δược thα»±c hiα»n thΓ΄ng qua API vΓ thΓ΄ng qua dΓ²ng lα»nh. Δα» unseal Vault, phαΊ£i cΓ³ sα» lượng unseal key ΔαΊ‘t ngΖ°α»‘ng Δα»ng thuαΊn. VΓ dα»₯ trong cαΊ₯u hΓ¬nh trΓͺn, phαΊ£i cΓ³ 3/5 khΓ³a unseal thΓ¬ mα»i hα»§y "niΓͺm phong" Vault Δược.
Mα» "niΓͺm phong" Vault:

GiΓ‘ trα» sealed trα» thΓ nh false. Vault Δược mα» niΓͺm phong.
XΓ‘c thα»±c vα»i root key:

LΓ mα»t ngΖ°α»i dΓΉng root cΓ³ thα» niΓͺm phong lαΊ‘i Vault bαΊ±ng lα»nh: vault operator seal.
8. Using the HTTP APIs with authentication
Accessing Secrets via the REST APIs
CΓ‘c mΓ‘y cαΊ§n quyα»n truy cαΊp vΓ o thΓ΄ng tin Δược lΖ°u trong Vault rαΊ₯t cΓ³ thα» sαΊ½ truy cαΊp thΓ΄ng qua REST API cα»§a nΓ³.
VΓ dα»₯: nαΊΏu mα»t mΓ‘y Δang sα» dα»₯ng AppRole Δα» xΓ‘c thα»±c, trΖ°α»c tiΓͺn, α»©ng dα»₯ng sαΊ½ xΓ‘c thα»±c vα»i Vault, α»©ng dα»₯ng nΓ y trαΊ£ vα» Vault API token. Ứng dα»₯ng sαΊ½ sα» dα»₯ng token ΔΓ³ Δα» liΓͺn lαΊ‘c vα»i vault trong tΖ°Ζ‘ng lai.
TαΊ‘o cαΊ₯u hΓ¬nh mΓ‘y chα»§: config.hcl

TLS bα» tαΊ―t α» ΔΓ’y vα»i mα»₯c ΔΓch vΓ dα»₯.
BαΊ―t ΔαΊ§u phiΓͺn lΓ m viα»c Vault mα»i:

Khα»i chαΊ‘y Vault bαΊ±ng API:

Sα» dα»₯ng khΓ³a unseal α» trΓͺn, cΓ³ thα» hα»§y niΓͺm phong Vault thΓ΄ng qua API HTTP

Gα»i API Vault Δα» xΓ‘c thα»±c trαΊ‘ng thΓ‘i khα»i tαΊ‘o:

Giα» ΔΓ’y, bαΊ₯t kΓ¬ phΖ°Ζ‘ng thα»©c xΓ‘c thα»±c cΓ³ sαΊ΅n nΓ o cΕ©ng cΓ³ thα» Δược bαΊt vΓ Δα»nh cαΊ₯u hΓ¬nh.
BαΊt phΖ°Ζ‘ng thα»©c xΓ‘c thα»±c AppRole bαΊ±ng cΓ‘ch gα»i API Vault

TαΊ‘o chΓnh sΓ‘ch thΓ΄ng qua API Vault:

BαΊt cΓ΄ng cα»₯ bΓ mαΊt KV v2 khi sα» dα»₯ng API secret/

Lα»nh dΖ°α»i dΓ’y chα» Δα»nh rαΊ±ng cΓ‘c mΓ£ token dược phΓ‘t hΓ nh trong AppRole my-role phαΊ£i Δược liΓͺn kαΊΏt vα»i my-policy

PhΖ°Ζ‘ng thα»©c xΓ‘c thα»±c AppRole yΓͺu cαΊ§u mα»t RoleID vΓ SecretID lΓ m ΔαΊ§u vΓ o. RoleID tΖ°Ζ‘ng tα»± nhΖ° tΓͺn ngΖ°α»i dΓΉng vΓ SecretID cΓ³ thα» Δược coi lΓ mαΊt khαΊ©u cα»§a RoleID
Lα»nh dΖ°α»i ΔΓ’y Δα» lαΊ₯y RoleID cα»§a role name my-role:

TαΊ‘o mα»t SecretID mα»i:

Hai thΓ΄ng tin RoleID vΓ SecretID cΓ³ thα» Δược cung cαΊ₯p cho Δiα»m cuα»i ΔΔng nhαΊp Δα» tΓ¬m nαΊ‘p token Vault mα»i.

Last updated