دليل شامل لأوامر وسير عمل HashiCorp Vault لإدارة الأسرار والتشفير والوصول الآمن إلى البيانات الحساسة.
التثبيت والإعداد
| أمر | وصف |
|---|
vault version | أظهر إصدار Vault |
vault server -dev | ابدأ خادم التطوير |
vault server -config=config.hcl | ابدأ بملف التكوين |
vault status | تحقق من حالة الخادم |
المصادقة وتسجيل الدخول
المصادقة الأساسية
| أمر | وصف |
|---|
vault auth -method=userpass username=myuser | تسجيل الدخول باستخدام اسم المستخدم/كلمة المرور |
vault auth -method=ldap username=myuser | تسجيل الدخول باستخدام LDAP |
vault auth -method=github token=mytoken | تسجيل الدخول باستخدام GitHub |
vault auth -method=aws | تسجيل الدخول باستخدام AWS IAM |
vault auth -method=kubernetes | تسجيل الدخول باستخدام Kubernetes |
إدارة الرموز المميزة
| أمر | وصف |
|---|
vault token create | إنشاء رمز جديد |
vault token create -ttl=1h | إنشاء رمز مع وقت انتهاء صلاحية (TTL) |
vault token lookup | ابحث عن الرمز الحالي |
vault token renew | تجديد الرمز الحالي |
vault token revoke TOKEN | إلغاء رمز محدد |
إدارة الأسرار
أسرار القيمة المفتاحية (الإصدار 2)
| أمر | وصف |
|---|
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.json | تخزين من ملف JSON |
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 pki | تمكين محرك PKI |
vault secrets tune -max-lease-ttl=87600h pki | حدد الحد الأقصى لـ TTL |
vault write pki/root/generate/internal common_name=example.com ttl=87600h | إنشاء شهادة الجذر الرئيسية (Root 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 aws | تمكين محرك AWS |
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 \\{...\\} EOF | إنشاء دور IAM |
بيانات اعتماد AWS
| أمر | وصف |
|---|
vault read aws/creds/my-role | إنشاء بيانات اعتماد AWS |
vault write aws/sts/my-role ttl=15m | إنشاء اعتمادات STS |
محرك أسرار التشفير
إعداد التشفير
| أمر | وصف |
|---|
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 ldap | تمكين LDAP |
vault auth enable github | تفعيل GitHub |
vault auth enable aws | تمكين AWS IAM |
vault auth enable kubernetes | قم بتمكين Kubernetes |
إعداد طرق المصادقة
| أمر | وصف |
|---|
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=myorg | قم بتكوين GitHub |
التسجيل المراجعي
تفعيل أجهزة المراجعة
| أمر | وصف |
|---|
vault audit enable file file_path=/vault/logs/audit.log | تمكين تدقيق الملفات |
vault audit enable syslog | تمكين سجل النظام للتدقيق |
vault audit list | قائمة أجهزة التدقيق |
vault audit disable file/ | تعطيل جهاز التدقيق |
التوافر العالي والتجميع
عمليات التجميع
| أمر | وصف |
|---|
vault operator init | تهيئة عنقود Vault |
vault operator unseal | فتح خزنة Vault |
vault operator seal | خزنة الختم |
vault operator step-down | تنازل عن القيادة |
vault operator raft list-peers | قائمة نظراء Raft |
| أمر | وصف |
|---|
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` | ملف المفتاح الخاص للعميل |## المتغيرات البيئية
## أفضل الممارسات
### الأمان