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

レッスン 3: Vault CLI、API、および Web UI

Vault CLI (vault read、write、list、delete、kv、auth、secrets、policy、operator)、環境変数 (VAULT_ADDR、VAULT_TOKEN、VAULT_NAMESPACE)、Vault HTTP RESTful API、cURL、および SDK クライアント (Go、Python、Java、Node.js) について理解します。 Vault Web UI の概要、インターフェイスを介したシークレットのナビゲーションおよび管理。

🔒 D​​evSecOps — レッスン 3 レッスン 3: Vault CLI、API、Web UI

HashiCorp Vault の基本から上級まで

パート 1: HashiCorp Vault プラットフォーム

xdev.asia

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 status

Login 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 hvac

client = 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 は管理者に適しています。次の記事では、シール/シール解除および自動シール解除メカニズムについて詳しく説明します。