このレシピでは、個人データをマスクする PII ポリシーを作成し、Guardian に割り当て、実際の呼び出しで検証します。モデルについては Guard Policy を参照してください。
1. ポリシーを作成して割り当てる
対象の Guardian を開き、Policies → Input Policies の Add → Create & Assign Policy を選択します。名前を付け(例:PII Masking Policy)、Policy Type = PII を設定して作成します。v0.1.0 から始まり、エディターで開かれます。
2. ルールを追加する
エディターの Add を使って、種類を選びながらルールを 1 つずつ追加します。
| ルール | 定義する内容 | policy_type によるアクション |
|---|
| NER Entity | 名前、マスクワード、± サンプル | MASKING または BLOCKING |
| Regular Expression | regex + rule_id | MASKING / BLOCKING / PASSING |
| Keyword | 完全一致する単語 | MASKING / BLOCKING / PASSING |
マスキングの場合は、policy_type: MASKING とマスクワード(例:PHONE_NUMBER)を設定します。一致した箇所は [PHONE_NUMBER_1] になります。
より速く:JSON を読み込む
JSON を選択すると、ポリシー全体を一度に貼り付けられます。許可されるトップレベルキーは ner、regex、keyword です。
{
"ner": [
{ "id": 0, "name": "Phone number", "policy_type": "MASKING", "mask_word": "PHONE_NUMBER",
"alert_message": "Phone number detected", "positive_examples": ["010-1234-5678"] }
],
"regex": [
{ "id": 1, "rule_id": "email", "regex": "(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b",
"policy_type": "MASKING", "mask_word": "EMAIL", "description": "email", "alert_message": "Email detected" }
],
"keyword": []
}
エディターは保存前に検証を行います。Save で新しいバージョンが作成されます。
3. 新しいバージョンを適用する
保存によって新しいバージョンが作成されました(番号はこのポリシー内で一意でありさえすればよく、直前のものより大きい必要はありません)。保存しただけでは適用されません — Guardian を新しいバージョンに再度ポイント(ピン留め)しないと、変更は反映されません。ポリシー更新のバージョン管理と適用を参照してください。
4. 検証する
PII を含むテスト呼び出しを送信し、マスクされることを確認します。
curl -X POST "https://bastion-guardian-api.starfort.io/v1/guard/api" \
-H "Content-Type: application/json" -H "X-Starfort-Guard-Api-Key: sf_your_key" \
-d '{"messages":[{"role":"user","content":"My number is 010-2543-2513."}],"processType":"input"}'
マスクされたレスポンス("action":"MASK"、[PHONE_NUMBER_1] を含む processed_content)が、正しく動作していることを示します。Opticon で確認してください。
Starfort には包括的なデフォルト PII ポリシー(韓国の電話番号、住民登録番号、パスポート、カード、メールなど)が付属しています。JSON エディターで読み込むのが最も速い出発点です。その後、必要なものだけに絞り込んでください。