<矩形寬度=“1200”高度=“340”rx=“12”填滿=“url(#bg-9016)”/>
<矩形x =“60”y =“50”寬度=“4”高度=“60”rx =“2”填滿=“#38bdf8”/>
<矩形x =“80”y =“50”寬度=“121”高度=“28”rx =“14”填滿=“#38bdf8”不透明度=“0.15”/>
1. SSH 秘密引擎概述
SSH Secrets Engine解決企業中管理SSH存取的問題。 Vault 提供了兩種機制,而不是手動分發 SSH 金鑰(且永不撤銷):
<表> <標題>
模式運作方式建議 <正文> 簽章憑證 (CA)Vault 簽章 SSH 公鑰 → 短期憑證✅ 建議 OTPVault 產生 SSH 的一次性密碼舊版,需要Vault-ssh-helper2. SSH CA模式(簽章憑證)
架構
┌──────────┐ 1. 簽署我的金鑰 ┌────────────┐
│ 使用者 │ ──────────────────▶ │ 保險庫 │
│ │ │ SSH CA │
│ │ 2.SSH憑證 │ │
│ │ ◀────────────────── │ │
│ │ └────────────┘
│ │
│ │ 3.附憑證的SSH
│ │ ────────────────▶ ┌────────────┐
│ │ │ 伺服器 │
│ │ 4. 驗證憑證 │ (信任 CA) │
│ │ 針對CA │ │
└──────────┘ └──────────────┘
設定 SSH CA
# 啟用 SSH 機密引擎
vault secrets enable -path=ssh-client-signer ssh
# Sinh CA 金鑰對(hoặc 導入現有)
vault write ssh-client-signer/config/ca generate_signing_key=true
# Lấy CA 公鑰
vault read -field=public_key ssh-client-signer/config/ca > /etc/ssh/trusted-user-ca-keys.pem
將 SSH 伺服器設定為信任 Vault CA
# Trên mỗi SSH 伺服器 — 類似 /etc/ssh/sshd_config
TrustedUserCAKeys /etc/ssh/trusted-user-ca-keys.pem
# 重新啟動sshd
sudo systemctl 重新啟動 sshd
創造角色
# 開發人員角色 — SSH vào 開發伺服器 vault write ssh-client-signer/roles/dev-ssh \ key_type=ca \ default_user=開發人員\ allowed_users =「開發人員,部署」\ allowed_extensions =「允許pty,允許連接埠轉送」\ default_extensions='{"permit-pty": ""}' \ 生存時間=8小時\ 最大生存時間=24小時 \ allow_user_certificates=true \ 演算法簽署者=rsa-sha2-256角色 cho admin — SSH vào mọi 伺服器
vault write ssh-client-signer/roles/admin-ssh
key_type=ca
預設使用者=管理員
allowed_users =「管理者,root,ubuntu」
allowed_extensions =「允許pty,允許連接埠轉發,允許代理轉發」
default_extensions='{"permit-pty": ""}'
生存時間=2小時
最大生存時間=8小時
允許使用者憑證=true
簽署 SSH 金鑰
# Sinh SSH 金鑰對 nếu chưa có
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
# 簽署公鑰
vault write -field=signed_key ssh-client-signer/sign/dev-ssh \
public_key=@$HOME/.ssh/id_ed25519.pub \
valid_principals="開發人員" \
ttl=8h > ~/.ssh/id_ed25519-cert.pub
#Kiểm tra 證書
ssh-keygen -L -f ~/.ssh/id_ed25519-cert.pub
# SSH với 證書
ssh -i ~/.ssh/[email protected]
主機金鑰簽章
# 啟用 SSH 引擎 cho 主機金鑰
vault secrets enable -path=ssh-host-signer ssh
# Sinh 主機 CA
vault write ssh-host-signer/config/ca generate_signing_key=true
# Tạo 主持人角色
vault write ssh-host-signer/roles/host-cert \
key_type=ca \
ttl=87600h \
allow_host_certificates=true \
allowed_domains="company.com,internal.company.com" \
允許子域=true
# 簽署主機金鑰
vault write -field=signed_key ssh-host-signer/sign/host-cert \
cert_type=主機\
public_key=@/etc/ssh/ssh_host_ed25519_key.pub \
valid_principals="server1.company.com" \
> /etc/ssh/ssh_host_ed25519_key-cert.pub
# Cấu hình 伺服器 sử dụng 主機證書
# /etc/ssh/sshd_config
# HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub
3. SSH OTP 模式
# 啟用
vault secrets enable -path=ssh-otp ssh
#陶角色
vault write ssh-otp/roles/otp-role \
key_type=otp \
預設使用者=ubuntu \
cidr_list="10.0.0.0/8"
# 辛赫 OTP
vault write ssh-otp/creds/otp-role \
ip=10.0.1.50 \
使用者名稱=ubuntu
# 金鑰:1a2b3c4d-5e6f-7g8h
# SSH 和 OTP
ssh [email protected]
# 密碼:1a2b3c4d-5e6f-7g8h(一次性使用)
注意: OTP 模式需要在目標伺服器上安裝 vault-ssh-helper 才能使用 Vault 驗證 OTP。 CA模式不需要在伺服器上進行任何額外的設定。
4. TOTP秘密引擎
TOTP 秘密引擎允許 Vault 根據 RFC 6238 產生和驗證 TOTP(基於時間的一次性密碼)代碼。
TOTP 生成器模式
# 啟用 TOTP
vault secrets enable totp
# Tạo key từ URL(khi 設定 2FA cho 服務)
vault write totp/keys/github \
url="otpauth://totp/GitHub:john.doe?secret=JBSWY3DPEHPK3PXP&issuer=GitHub"
# Hoặc tạo key thủ công
vault write totp/keys/aws-console \
生成=真\
發行人=“AWS”\
account_name="[email protected]" \
週期=30 \
數字=6 \
算法=SHA1
# 辛赫 TOTP 代碼
vault read totp/code/github
# 代碼:123456
# 驗證程式碼
vault write totp/code/github code=123456
# 有效:正確
使用案例:集中式 2FA 管理
不必讓每位員工在各自的手機上管理 2FA 代碼,Vault 可以成為 TOTP 金鑰的中央儲存位置 - 允許團隊輪換,並且在更換手機時不會遺失代碼。
5. LDAP 秘密引擎
LDAP 秘密引擎(與 LDAP 驗證方法不同)產生動態 LDAP 憑證 - 自動建立和管理 LDAP 服務帳戶。
# 啟用 LDAP 機密引擎
vault secrets enable ldap
# Cấu hình kết nối
vault write ldap/config \
binddn =“cn = admin,dc =公司,dc = com”\
綁定密碼=“管理員密碼”\
url =“ldaps://ldap.company.com”\
架構=“openldap”
#Tạo動態角色
vault write ldap/role/dynamic-svc \
[email protected] \
刪除[email protected] \
[email protected] \
default_ttl=1h \
最大生存時間=24小時
# Tạo 靜態角色(密碼輪換)
vault write ldap/static-role/svc-account \
dn="cn=svc-app,ou=服務,dc=公司,dc=com" \
使用者名稱=“svc-app”\
旋轉週期=24小時
# Lấy 動態憑證
vault read ldap/creds/dynamic-svc
RACF 密碼支援 (Vault 1.21)
Vault 1.21 在大型主機環境中新增了對 RACF 密碼短語的支援 - 允許密碼短語長於傳統的 8 個字元:
vault 寫入 ldap/config \
模式=“racf”\
密碼原則=“racf-密碼原則”
6。摘要
SSH CA 模式 — 建議的短期簽章證書,伺服器上無需代理
SSH OTP 模式 — 一次性密碼,需要Vault-ssh-helper
TOTP 引擎 — sinh/驗證 TOTP 代碼,集中式 2FA 管理
LDAP Secrets Engine — 動態 LDAP 憑證、靜態角色輪替
RACF 密碼 (1.21) — 大型主機環境支援
下一篇文章將探討轉換和標記化 - PCI DSS、PII 和合規性要求的資料保護。