Chuyển đến nội dung chính

第 3 課:Vault CLI、API 和 Web UI

熟悉 Vault CLI(Vault 讀取、寫入、列出、刪除、kv、驗證、機密、政策、運算子)、環境變數(VAULT_ADDR、VAULT_TOKEN、VAULT_NAMESPACE)、Vault HTTP RESTful API、cURL 和 SDK 客戶端(GoNode、Python、Java、jsjs)。 Vault Web UI 概述、透過介面導航和管理機密。

<定義> <線性漸變 id="bg-8461" x1="0%" y1="0%" x2="100%" y2="100%">

<矩形寬度=“1200”高度=“340”rx=“12”填滿=“url(#bg-8461)”/>

<圓cx =“1030”cy =“190”r =“23”填入=“#fb923c”不透明度=“0.05”/> <圓cx =“750”cy =“80”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“750”cy =“108”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“750”cy =“136”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“750”cy =“164”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“778”cy =“80”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“778”cy =“108”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“778”cy =“136”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“778”cy =“164”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“806”cy =“80”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“806”cy =“108”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“806”cy =“136”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“806”cy =“164”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“834”cy =“80”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“834”cy =“108”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“834”cy =“136”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“834”cy =“164”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“862”cy =“80”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“862”cy =“108”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“862”cy =“136”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“862”cy =“164”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“890”cy =“80”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“890”cy =“108”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“890”cy =“136”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <圓cx =“890”cy =“164”r =“1.5”填入=“#fb923c”不透明度=“0.15”/> <多邊形點=「1070.9807621135333,230 1070.9807621135333,260 1045,275 1019.0192378864668,260 1019.01968,01968,20196 1045,215”填滿=“無”描邊=“#fb923c”描邊寬度=“1”不透明度=“0.12”/>

<矩形x =“60”y =“50”寬度=“4”高度=“60”rx =“2”填滿=“#fb923c”/> <矩形x =“80”y =“50”寬度=“121”高度=“28”rx =“14”填滿=“#fb923c”不透明度=“0.15”/> 🔒 DevSecOps — 第 3 課

第 3 課:Vault CLI、API 與 Web UI

HashiCorp Vault 從基礎到進階

第 1 部分:HashiCorp Vault 平台

xdev.asia

1. Vault CLI 概述

Vault CLI 是用於與 Vault 伺服器互動的主要命令列工具。 CLI 使用與其他所有客戶端相同的 HTTP API,以確保一致性。

需要環境變數

# Vault 伺服器
匯出 VAULT_ADDR='https://vault.example.com:8200'

代幣 xác thực

導出 VAULT_TOKEN='hvs.xxxxx'

命名空間(企業)

導出 VAULT_NAMESPACE='admin/team-a'

跳過 TLS 驗證 (chỉ dev)

導出 VAULT_SKIP_VERIFY=true

CA憑證

導出 VAULT_CACERT='/path/to/ca.pem'

基本 CLI 指令

# Kiểm tra trạng thái
vault status

登入với các auth方法

vault login # Token-based vault login -method=userpass username=admin vault login -method=oidc

KV操作

vault kv put secret/myapp password="s3cr3t" vault kv get secret/myapp vault kv get -field=password secret/myapp vault kv list secret/ vault kv delete secret/myapp

秘密引擎管理

vault secrets enable -path=kv kv-v2 vault secrets list vault secrets disable kv/

認證方法管理

vault auth enable userpass vault auth list vault auth disable userpass/

策略管理

vault policy write my-policy policy.hcl vault policy read my-policy vault policy list vault policy delete my-policy

操作員命令

vault operator seal vault operator unseal vault operator raft list-peers vault operator raft snapshot save backup.snap

2. Vault HTTP API

Vault 提供完整的 RESTful API。所有操作都可以透過API執行:

# 秘密
curl -s \
  --header "X-Vault-Token: hvs.xxxxx" \
  https://vault.example.com:8200/v1/secret/data/myapp |傑克

#吉的秘密
curl -s \
  --header "X-Vault-Token: hvs.xxxxx" \
  --請求貼文\
  --data '{"資料": {"密碼": "s3cr3t", "使用者名稱": "admin"}}' \
  https://vault.example.com:8200/v1/secret/data/myapp

# Liệt kê 秘密
curl -s \
  --header "X-Vault-Token: hvs.xxxxx" \
  --請求清單\
  https://vault.example.com:8200/v1/secret/metadata/ |傑克

# 健康檢查
curl -s https://vault.example.com:8200/v1/sys/health | jq

3. SDK客戶端

Python(暖通空調)

導入暖通空調

客戶端 = hvac.Client(url='https://vault.example.com:8200', token='hvs.xxxxx')

秘密

秘密 = client.secrets.kv.v2.read_secret_version(path='myapp') print(秘密['資料']['資料']['密碼'])#吉的秘密 client.secrets.kv.v2.create_or_update_secret( 路徑='myapp', 秘密=字典(密碼='新密碼',使用者名稱='管理員') )

去

導入 (
    “github.com/hashicorp/vault-client-go”
)

客戶端, _ :=Vault.New( vault.WithAddress("https://vault.example.com:8200"), ) client.SetToken("hvs.xxxxx")

秘密, _ := client.Secrets.KvV2Read(ctx, "myapp", vault.WithMountPath("secret"))

4.保險箱網頁使用者介面

Vault Web UI 提供了由配置中的 ui = true 啟用的視覺化介面。訪問 https://vault.example.com:8200/ui.

網路使用者介面支援:

  • 管理機密引擎和機密

  • 管理身分驗證方法

  • 政策管理

  • Xem 審核日誌

  • 客戶計數儀表板 (1.21)

  • 秘密恢復(1.21)

5。摘要

Vault 提供三種主要的互動方式:CLI、HTTP API 和 Web UI。 CLI 適用於開發和腳本編寫,API 適用於應用程式集成,Web UI 適用於管理員。下一篇文章將深入探討密封/解封和自動解封機制。