推奨されるセキュリティ設定
API 呼び出しはバックエンドのみに限定するすべての Connect AI Embed APIリクエストをバックエンドサーバー経由でルーティングしてください。 クライアントサイドのコードから直接 CData を呼び出さないでください。また、JWT 秘密鍵やその他のシークレットをフロントエンドに公開しないでください。
REST API アクセスには有効期限の短いJWT を使用する理想的には、リクエストあたり 3 分以内とし、絶対的な上限は 1 時間とします。可能な場合はリクエストごとにトークンを再生成してください。特に機密性の高い操作では必ず行ってください。
機密情報を安全に保管するJWT 秘密鍵、API キー、およびデータソースの認証情報を、セキュアなボールト、シークレットマネージャー、または環境変数システムに保存してください。 アプリケーションコードにシークレットをハードコードしたり、ソース管理にコミットしたりしないでください。
すべての入力を検証する接続ID、ビュー名、クエリパラメータ、およびその他のユーザー入力は、 CData に送信する前に検証してください。すべての入力を信頼できないものとして扱い、特にLLMが動的にリクエストを構築するエージェント型ワークフローでは注意が必要です。
エラーをサニタイズするCData APIの生のエラーや内部スタックトレースをエンドユーザーに表示しないでください。それらをユーザーフレンドリーなメッセージに変換し、詳細な診断情報はサーバーログに記録してください。
アプリ内でのツールアクセスを制御するMCPを使用する場合は、どのフローが読み取り専用で、どのフローが書き込みを実行できるかを定義してください。オーケストレーション層でツールへのアクセスを制御し、予期しないツールの使用や異常なクエリパターンを監視してください。
導入準備チェックリスト
デプロイ前
- 接続を予定しているデータソースを文書化する。
- 各ソースの機密性を分類する。
- POC(概念実証)またはトライアルで有効にする AI 機能を定義する。
- どのワークフローに読み取り専用アクセスが必要で、どのワークフローに読み書きアクセスが必要かを決定する。
- アプリケーションの ID および認証モデルを設計する。
- ログの保存期間とレビュー手順を定義する。
JWT および API の設定
- 署名キーを安全な保管庫または環境変数に保存する。
- フロントエンドのコードやリポジトリに機密情報が公開されていないことを確認する。
- 可能な限り、目標 TTL を 3 分とする短命な JWT を使用する。
- 機密性の高いアクションについては、リクエストごと、または少数のリクエストのバッチごとに新しい JWT を生成する。
アプリケーション内のアクセス制御
- AI機能にアクセスできるユーザーを制限する。
- 各ユーザーがどの顧客またはテナントに属するかを定義する。
- 読み取りおよび書き込みアクションについて、機能ごとのルールを適用する。
- すべての接続ID、ビュー名、およびクエリパラメータを検証する。
- クライアントに返されるすべてのエラーメッセージをサニタイズする。
MCPおよびツールの使用
- MCPワークフローを読み取り専用にするか、読み取り/書き込み可能にするかを決定する。
- エージェントオーケストレーション層でツールへのアクセスを制御する。
- 実行前にプロンプトとパラメータを検証する。
- ツールの使用状況を監視し、異常や予期しない動作がないか確認する。
継続的な運用
- CData のログおよびアプリケーションのログを定期的に確認する。
- JWT署名キーやその他のシークレットをスケジュールに従ってローテーションする。
- 不要な書き込みアクセス権限を削除する。
- CData のセキュリティ更新情報およびEmbedのドキュメントを常に最新の状態に保つ。