مقدمه
HashiCorp Vault ابزار مدیریت secrets است که ذخیرهسازی امن و کنترل دسترسی برای دادههای حساس مثل کلیدهای API، رمزهای عبور و گواهیها را فراهم میکند.
نصب و راهاندازی
BASH
# راهاندازی Docker
docker run -d --name vault --cap-add IPC_LOCK -p 8200:8200 -v vault-data:/vault/data hashicorp/vault:latest server
# مقداردهی اولیه (یکبار)
export VAULT_ADDR='http://localhost:8200'
vault operator init -key-shares=5 -key-threshold=3
# Unseal با ۳ کلید
vault operator unseal <key1>
vault operator unseal <key2>
vault operator unseal <key3>ذخیره و بازیابی Secrets
BASH
# فعالسازی KV engine
vault secrets enable -path=secret kv-v2
# ذخیره secret
vault kv put secret/myapp/database username=appuser password=Str0ngP@ss!
# خواندن secret
vault kv get secret/myapp/database
# دریافت فیلد خاص
vault kv get -field=password secret/myapp/databaseSecrets دیتابیس پویا
BASH
# Vault اعتبارنامههای موقت ایجاد میکند که خودکار منقضی میشوند
vault secrets enable database
vault write database/roles/myapp-role db_name=myapp-db default_ttl="1h" max_ttl="24h" creation_statements="CREATE ROLE '{{name}}' WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}';"
# هر درخواست اعتبارنامه منحصربهفرد ایجاد میکند
vault read database/creds/myapp-roleیکپارچهسازی با Python
PYTHON
import hvac
vault = hvac.Client(url='http://vault:8200')
vault.auth.approle.login(role_id=role_id, secret_id=secret_id)
secret = vault.secrets.kv.v2.read_secret_version(path='myapp/config')
api_key = secret['data']['data']['api_key']Vault مدیریت secrets را از یک رویه پراکنده و ناامن به یک سیستم متمرکز و ممیزیشده تبدیل میکند.
