セキュリティ
OutcomeGuard は自動化プラットフォームを読み、保存する量をできるだけ少なくしています。その「できるだけ少なく」が具体的に何を指すのかを、裏づけのない主張を混ぜずに書きます。
instance へのアクセス
- アクセスは読み取り専用です。n8n の public REST API で workflow と execution を取得するだけです。
- workflow の作成、編集、有効化、無効化は行わず、n8n に保存された credential の読み取りや変更も行いません。
- 使うのはお客様が入力した API key で、その key が見られる範囲を超えません。プラットフォームやホストへのアクセスは求めません。
- 最小権限は内部でも適用します。各コンポーネントには、その役割に必要な範囲だけを与えています。
API key の扱い
- API key は AES-256-GCM で保存時に暗号化します。
- 暗号鍵は実行環境にのみ置きます。ソースコード、git、ログには入れません。
- 鍵のローテーションに対応します。ローテーション中は、前の鍵で書かれたデータも復号できます。
- 無料スキャンで使った key は、スキャン終了時に破棄します。保存するのは instance をアカウントへ連携した場合だけです。
保存するもの、保存しないもの
- 保存するのは execution の要約です。status、開始と終了の時刻、所要時間、件数、最後に実行された node 名、workflow 定義のハッシュ、秘密情報を除去したエラーメッセージ。
- execution の payload は保存しません。workflow が運んでいるレコード(顧客データ、書類、メッセージ本文、添付)を OutcomeGuard 側へ複製することはありません。
- エラーメッセージは保存前に除去処理を通します。エラー文に混ざったトークン、key、credential がデータベースや通知に残ることはありません。
- 通知に載るのも同じ要約レベルの根拠で、業務データは載りません。
通信
- 通信はすべて TLS です。お客様と OutcomeGuard の間も、OutcomeGuard と instance の間も同じです。
- 課金の webhook は署名を検証してから処理します。
- プライベートネットワーク上のアドレスはスキャン対象にせず、接続を試さずに拒否します。
保持と削除
- execution の要約は 90 日保持します。
- 無料スキャンのレポートは 7 日後に削除します。
- 連携を解除すると、その連携の credential と execution 要約を削除します。
- アカウントを削除すると、workspace とそれに属するデータを削除します。
分離と記録
- テナントの分離は、すべてのクエリを workspace 単位に限定することで担保します。Agency プランで、あるクライアントのデータが別のクライアントの画面に出ないのはこの仕組みによるものです。
- 管理操作とセキュリティに関わる操作は監査ログに記録します。
- レート制限を設けています。当社のサービスと、読み取り先の instance の双方を守るためです。
自動で行う操作
- 自動復旧の範囲は意図的に狭くしています。当社側のチェックの再試行、失敗した通知の再送、検証のやり直しだけです。
- workflow の書き換え、credential の変更、課金や設定の代行は行いません。
- instance に到達できない場合は UNKNOWN にします。沈黙から健康を推測しません。