シークレットマネージャー統合
DuoKey は、新しいシークレットマネージャーの採用を強制するのではなく、 すでに運用しているシークレットマネージャーに接続する ように設計されています。 シークレットはハードコードされず、Git にコミットされず、クラスターディスクにも 書き込まれません。必要に応じてオンデマンドで取得され、メモリ内にのみ保持されます。
独自のシークレットマネージャーを持ち込む
組織がすでに HashiCorp Vault、CyberArk、またはネットワーク HSM で標準化している場合、 DuoKey はそこからシークレットを直接消費します。バンドルされている OpenBao インスタンスは 新規サイト向けのデフォルトであり、完全に省略できます。
サポートされるシークレットマネージャー
| シークレットマネージャー | 統合経路 | ステータス |
|---|---|---|
| OpenBao(デフォルト) | External Secrets Operator(Kubernetes 認証) | 推奨デフォルト |
| HashiCorp Vault | External Secrets Operator / Vault Agent Injector | 完全サポート |
| CyberArk(Conjur / AAM / CCP) | External Secrets Operator(Conjur プロバイダー) | 完全サポート |
| Azure Key Vault | External Secrets Operator / CSI Secrets Store | サポート(接続サイト) |
| AWS Secrets Manager / GCP Secret Manager | External Secrets Operator | サポート(接続サイト) |
| DuoKey MPC | ネイティブ(分散キーシェア) | 主要なトラストアンカー — HSM 不要 |
| Securosys HSM | PKCS#11、KMIP | サポート(ハードウェアトラストアンカー) |
| Kubernetes Secrets(暗号化された etcd) | ネイティブ | フォールバック / ラボ専用 |
インジェクションの仕組み
DuoKey は External Secrets Operator(ESO) をベンダー中立のブローカーとして使用します。 シークレットマネージャーは単一の信頼できる情報源のままであり、ESO はポッドが必要とする 特定の値のみをオンデマンドで同期します。
- ポッドが Kubernetes ServiceAccount トークン を提示します。
- ESO はそのアイデンティティを使用してシークレットマネージャーに認証します (静的な資格情報は使用しません)。
- 必要なシークレットのみが取得され、メモリ内(
tmpfs)の Kubernetes Secret として 実体化され、ポッドにマウントされます。 - ポッドが終了すると、シークレットは消滅します。ディスクには何も残りません。
例: HashiCorp Vault の SecretStore
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: vault
namespace: duokey
spec:
provider:
vault:
server: "https://vault.corp.example.local:8200"
path: "duokey"
version: "v2"
auth:
kubernetes:
mountPath: "kubernetes"
role: "duokey"
serviceAccountRef:
name: "duokey"
例: CyberArk Conjur の SecretStore
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: conjur
namespace: duokey
spec:
provider:
conjur:
url: "https://conjur.corp.example.local"
auth:
jwt:
account: "myConjurAccount"
serviceID: "openshift"
serviceAccountRef:
name: "duokey"
キーの保管: MPC ファースト
DuoKey の中核となる差別化要素 — そして 主要なトラストアンカー — は マルチパーティ計算(MPC) です。鍵素材は独立したシェアに分割され、 単一のノードも単一の管理者も完全な鍵を保持することは決してありません。これにより、 専用の HSM ハードウェアを一切必要とせずに HSM グレードの鍵保護を実現し、 オンプレミスおよびエアギャップのデプロイに最適です。
- シークレットマネージャーは 接続シークレットと資格情報 を保護します。
- DuoKey MPC は 暗号鍵自体 を、分散保管により単一障害点なしで保護します。
オプション: Securosys HSM
ハードウェア のトラストアンカーが(ポリシーや認証などにより)義務付けられている場合、 DuoKey は Securosys HSM と統合されます。
- ベンダー: Securosys(Primus HSM / Securosys Cloud HSM)。
- インターフェース: PKCS#11 および KMIP。
- 使用方法: シークレットエンジン(OpenBao/Vault)が Securosys HSM に対して シール/アンシールを行うため、マスターキー素材が HSM 境界の外部で平文として存在することは ありません。MPC と HSM を組み合わせて多層防御を実現できます。
- ネットワーク: HSM を専用のハードニングされた VLAN に配置します (ネットワークセキュリティ を参照)。
ベストプラクティス
- シークレットマネージャーがサポートしている場合は、静的な資格情報よりも 動的で短命な 資格情報を優先します。
- 各
SecretStore/ロールを必要な 最小権限 にスコープします。 - シークレットマネージャーの認証ロールをローテーションし、アクセスを定期的に監査します (コンプライアンスと監査 を参照)。
- エアギャップサイトでは、シークレットマネージャーと HSM を完全にオンプレミスに保持します。 アウトバウンド接続は不要です。