1. Vault CLI Overview
Vault CLI は、Vault サーバーと対話するためのメインのコマンド ライン ツールです。 CLI は、他のすべてのクライアントが使用するものと同じ HTTP API を使用し、一貫性を確保します。
必要な環境変数
# Địa chỉ Vault server export VAULT_ADDR='https://vault.example.com:8200'Token xác thực
export VAULT_TOKEN='hvs.xxxxx'
Namespace (Enterprise)
export VAULT_NAMESPACE='admin/team-a'
Skip TLS verify (chỉ dev)
export VAULT_SKIP_VERIFY=true
CA Certificate
export VAULT_CACERT='/path/to/ca.pem'
基本的な CLI コマンド
# Kiểm tra trạng thái vault statusLogin với các auth methods
vault login # Token-based vault login -method=userpass username=admin vault login -method=oidc
KV operations
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
Secrets engine management
vault secrets enable -path=kv kv-v2 vault secrets list vault secrets disable kv/
Auth method management
vault auth enable userpass vault auth list vault auth disable userpass/
Policy management
vault policy write my-policy policy.hcl vault policy read my-policy vault policy list vault policy delete my-policy
Operator commands
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:
経由で実行できます。# Đọc secret
curl -s \
--header "X-Vault-Token: hvs.xxxxx" \
https://vault.example.com:8200/v1/secret/data/myapp | jq
# Ghi secret
curl -s \
--header "X-Vault-Token: hvs.xxxxx" \
--request POST \
--data '{"data": {"password": "s3cr3t", "username": "admin"}}' \
https://vault.example.com:8200/v1/secret/data/myapp
# Liệt kê secrets
curl -s \
--header "X-Vault-Token: hvs.xxxxx" \
--request LIST \
https://vault.example.com:8200/v1/secret/metadata/ | jq
# Health check
curl -s https://vault.example.com:8200/v1/sys/health | jq
3. SDK Clients
Python (hvac)
import hvacclient = hvac.Client(url='https://vault.example.com:8200', token='hvs.xxxxx')
Đọc secret
secret = client.secrets.kv.v2.read_secret_version(path='myapp') print(secret['data']['data']['password'])
Ghi secret
client.secrets.kv.v2.create_or_update_secret( path='myapp', secret=dict(password='new-password', username='admin') )
Go
import ( "github.com/hashicorp/vault-client-go" )client, _ := vault.New( vault.WithAddress("https://vault.example.com:8200"), ) client.SetToken("hvs.xxxxx")
secret, _ := client.Secrets.KvV2Read(ctx, "myapp", vault.WithMountPath("secret"))
4. Vault Web UI
Vault Web UI は、構成内の ui = true によって有効になるビジュアル インターフェイスを提供します。 https://vault.example.com:8200/ui.
Web UI サポート:
シークレット エンジンとシークレットの管理
認証方法の管理
ポリシー管理
Xem Audit Logs
Client Count Dashboard (1.21)
Secret Recovery (1.21)
5。概要
Vault は、CLI、HTTP API、Web UI という 3 つの主要な対話方法を提供します。 CLI は開発とスクリプト作成、API はアプリケーション統合、Web UI は管理者に適しています。次の記事では、シール/シール解除および自動シール解除メカニズムについて詳しく説明します。