コンテンツにスキップ

Vault

シークレット管理、暗号化、機密データへの安全なアクセスのための包括的な HashiCorp Vault コマンドとワークフロー。

インストールとセットアップ

コマンド説明
vault versionVault バージョンを表示
vault server -dev開発サーバーを起動
vault server -config=config.hcl設定ファイルから始める
vault statusサーバーステータスを確認

認証とログイン

基本認証

コマンド説明
vault auth -method=userpass username=myuserユーザー名/パスワードでログイン
vault auth -method=ldap username=myuserLDAPでログイン
vault auth -method=github token=mytokenGitHub でログイン
vault auth -method=awsAWS IAMでログイン
vault auth -method=kubernetesKubernetesでログイン

トークン管理

コマンド説明
vault token create新しいトークンを作成
vault token create -ttl=1hTTLでトークンを作成
vault token lookup現在のトークンを検索
vault token renew現在のトークンを更新
vault token revoke TOKEN特定のトークンを取り消す

シークレット管理

キーバリューシークレット (v2)

コマンド説明
vault kv put secret/myapp username=admin password=secretシークレットを保存
vault kv get secret/myappシークレットを取得
vault kv get -field=password secret/myapp特定のフィールドを取得
vault kv delete secret/myappシークレットを削除
vault kv list secret/シークレットをリスト
vault kv metadata get secret/myappメタデータを取得

シークレットバージョン

コマンド説明
vault kv put secret/myapp @data.jsonJSONファイルから読み込む
vault kv get -version=2 secret/myapp特定のバージョンを取得
vault kv rollback -version=1 secret/myappバージョンにロールバック
vault kv destroy -versions=2,3 secret/myappバージョンを破棄
vault kv undelete -versions=2 secret/myapp削除の取り消しバージョン

データベースシークレットエンジン

データベース設定

コマンド説明
vault secrets enable databaseデータベースエンジンを有効にする
vault write database/config/my-mysql-database plugin_name=mysql-database-plugin connection_url="\\{\\{username\\}\\}:\\{\\{password\\}\\}@tcp(localhost:3306)/" allowed_roles="my-role" username="vaultuser" password="vaultpass"MySQLを設定する
vault write database/roles/my-role db_name=my-mysql-database creation_statements="CREATE USER '\\{\\{name\\}\\}'@'%' IDENTIFIED BY '\\{\\{password\\}\\}';GRANT SELECT ON *.* TO '\\{\\{name\\}\\}'@'%';" default_ttl="1h" max_ttl="24h"ロールを作成

動的認証情報

コマンド説明
vault read database/creds/my-roleデータベース認証情報を生成
vault write database/rotate-root/my-mysql-databaseルート認証情報を回転

PKI(公開鍵インフラストラクチャ)

PKI セットアップ

コマンド説明
vault secrets enable pkiPKIエンジンを有効化
vault secrets tune -max-lease-ttl=87600h pki最大 TTL を設定
vault write pki/root/generate/internal common_name=example.com ttl=87600hルートCA を生成
vault write pki/config/urls issuing_certificates="http://vault.example.com:8200/v1/pki/ca" crl_distribution_points="http://vault.example.com:8200/v1/pki/crl"URLを設定

証明書管理

コマンド説明
vault write pki/roles/example-dot-com allowed_domains=example.com allow_subdomains=true max_ttl=72hロールを作成
vault write pki/issue/example-dot-com common_name=test.example.com証明書を発行する
vault write pki/revoke serial_number=39:dd:2e:90:b7:23:1f:8d:d3:7d:31:c5:1b:da:84:d0:5b:65:31:58証明書を取り消す

AWSシークレットエンジン

AWS設定

コマンド説明
vault secrets enable awsAWS エンジンを有効にする
vault write aws/config/root access_key=AKIAI... secret_key=R4nm...rootの認証情報を設定
vault write aws/roles/my-role credential_type=iam_user policy_document=-<<EOF \\{...\\} EOFIAMロールを作成

AWS認証情報

コマンド説明
vault read aws/creds/my-roleAWS認証情報を生成
vault write aws/sts/my-role ttl=15mSTS 認証情報を生成

トランジットシークレットエンジン

暗号化セットアップ

コマンド説明
vault secrets enable transitトランジットエンジンを有効にする
vault write transit/keys/my-key type=aes256-gcm96暗号化キーを作成
vault write transit/encrypt/my-key plaintext=$(base64 <<< "my secret data")データを暗号化
vault write transit/decrypt/my-key ciphertext=vault:v1:8SDd3WHDOjf7mq69CyCqYjBXAiQQAVZRkFM13ok481zoCmHnSeDX9vyf7w==データを復号化する

キー管理

コマンド説明
vault write transit/keys/my-key/rotate暗号化キーを回転
vault read transit/keys/my-key重要な情報を読む
vault write transit/rewrap/my-key ciphertext=vault:v1:...最新のキーで再ラップ

ポリシー

ポリシー管理

コマンド説明
vault policy write my-policy policy.hclポリシーの作成/更新
vault policy read my-policyポリシーを読む
vault policy listすべてのポリシーを一覧表示
vault policy delete my-policy削除ポリシー

ポリシーの例

# Read operation on the k/v secrets
path "secret/data/*" \\\\{
  capabilities = ["read"]
\\\\}

# Write operation on the k/v secrets
path "secret/data/myapp/*" \\\\{
  capabilities = ["create", "update"]
\\\\}

# Deny all access to secret/admin
path "secret/data/admin" \\\\{
  capabilities = ["deny"]
\\\\}

認証方式

認証方式の有効化

コマンド説明
vault auth enable userpassユーザー名/パスワードを有効にする
vault auth enable ldapLDAP を有効にする
vault auth enable githubGitHub を有効にする
vault auth enable awsAWS IAMを有効にする
vault auth enable kubernetesKubernetes を有効にする

認証方式の設定

コマンド説明
vault write auth/userpass/users/myuser password=mypass policies=my-policyユーザーを作成
vault write auth/ldap/config url="ldap://ldap.example.com" userdn="ou=Users,dc=example,dc=com"LDAPを設定する
vault write auth/github/config organization=myorgGitHub を設定する

監査ログ

監査デバイスの有効化

コマンド説明
vault audit enable file file_path=/vault/logs/audit.logファイル監査を有効にする
vault audit enable syslogsyslogの監査を有効にする
vault audit list監査デバイスを一覧表示
vault audit disable file/監査デバイスを無効にする

高可用性とクラスタリング

クラスタ操作

Would you like me to continue with the remaining translations?

コマンド説明
vault operator initVault クラスターを初期化
vault operator unsealVault を解放
vault operator sealシール・ボールト
vault operator step-downリーダーを辞任する
vault operator raft list-peersRaftピアをリスト
コマンド説明
vault operator raft snapshot save backup.snapスナップショットを作成
vault operator raft snapshot restore backup.snapスナップショットを復元

サーバー設定

storage "consul" \\\\{
  address = "127.0.0.1:8500"
  path    = "vault/"
\\\\}

listener "tcp" \\\\{
  address     = "0.0.0.0:8200"
  tls_disable = 1
\\\\}

api_addr = "http://127.0.0.1:8200"
cluster_addr = "https://127.0.0.1:8201"
ui = true
seal "awskms" \\\\{
  region     = "us-east-1"
  kms_key_id = "12345678-1234-1234-1234-123456789012"
\\\\}
```### AWS KMSによる自動アンシール

| 変数 | 説明 |
|----------|-------------|
| `VAULT_ADDR` | Vault サーバーアドレス |
| `VAULT_TOKEN` | 認証トークン |
| `VAULT_NAMESPACE` | Vault 名前空間(Enterprise) |
| `VAULT_CACERT` | CAルート証明書ファイル |
| `VAULT_CLIENT_CERT` | クライアント証明書ファイル |
| `VAULT_CLIENT_KEY` | クライアントプライベートキーファイル |## 環境変数