得られるもの
- LLM、HTTP 呼び出し、MCP、RAG の設定で使える
${vault:keyName}参照 - テナントごとのデータキーを用いた AES-256-GCM エンベロープ暗号化
- エージェントごとのグラント: どのエージェントがどのシークレットを使えるか
- 設定のエクスポートからはシークレットが除去され、ログではマスキングされる
EDDIでの仕組み
- ボルトのマスターキー(
EDDI_VAULT_MASTER_KEY)を設定します。インストーラーが自動的に生成します。キーがない場合、ボルトは無効になります。 PUT /secretstore/secrets/{tenantId}/{keyName}または Manager からシークレットを保存します。- 設定内で
${vault:keyName}として参照します。 - EDDIは実行時に参照を解決します。平文は会話メモリには保存されません。
allowedAgentsを、そのシークレットが必要なエージェントだけに絞り込みます。このチェックはエージェントのデプロイ時に実行されます。
設定
EDDIのドキュメントに基づいています。your-agent-id のようなプレースホルダーは、ご自身の値に置き換えてください。
curl -X PUT http://localhost:7070/secretstore/secrets/default/openai-key \
-H "Content-Type: application/json" \
-d '{"value":"sk-your-key","description":"OpenAI key"}'{
"tasks": [{
"actions": ["send_message"],
"id": "simpleChat",
"type": "openai",
"description": "Simple chat",
"parameters": {
"apiKey": "${vault:openai-key}",
"modelName": "your-model-id",
"systemMessage": "You are a helpful assistant",
"addToOutput": "true"
}
}]
}curl -X PUT "$EDDI/secretstore/secrets/default/openai-key/grant" \
-H 'Content-Type: application/json' \
-d '{"allowedAgents": ["0123456789abcdef01234567", "89abcdef0123456789abcdef"]}'ガバナンス
- グラントはデフォルトでデプロイ時に強制されます。許可されていないシークレットを参照するエージェントはデプロイされません。
- ユーザー入力やモデルの返信など、会話データ経由で届いたボルト参照は、解決されずに拒否されます。
- 平文は、リクエストの記録、承認プレビュー、リクエストのログ行でマスキングされます。
- 認証が有効な場合、ボルトのエンドポイントは
eddi-adminロールで保護されます。
知っておくべきこと
- EDDIには、HashiCorp Vault、AWS、Azure のネイティブクライアントはありません。Kubernetes では、External Secrets Operator により、
eddi-secretsKubernetes Secret(ボルトのマスターキーを保持)を HashiCorp Vault、AWS Secrets Manager、Azure Key Vault から同期できます。個々のシークレット自体は引き続きEDDIのボルトに保存されます。 - マスターキーを紛失すると、暗号化されたシークレットは復元できません。バックアップを取ってください。
関連するインテグレーション
このページの設定と動作は、2026-10-14に確認したEDDIのドキュメントに基づいています。フィールド名やデフォルト値はリリースによって変わることがあるため、お使いのバージョンのドキュメントで確認してください。