データ保護(匿名化・暗号化)の考え方
データ保護
匿名化
暗号化
プライバシー
この記事の対象
レシートローラーから取得したデータを自社で保管・処理する開発者・運用担当者向けです。
レシートローラーから取得したデータを自社で保管・処理する開発者・運用担当者向けです。
レシートローラーから取得するデータには、店舗の売上情報や消費者の購買履歴といった機微な情報が含まれます。「レシートローラー側が暗号化しているから安心」ではなく、受け取った後の自社環境でも適切に保護するのが連携アプリ開発者の責任です。
3層の保護
| 層 | 対策 |
|---|---|
| 通信 | TLS 1.2以上、HTTPS強制、HSTS |
| 保管 | DB暗号化(AES-256)、ディスク暗号化、バックアップも暗号化 |
| 処理 | アクセス制御、ログマスキング、最小権限 |
取得データの最小化
必要なデータのみ取得します。receipt.* 全部取れるからといって全項目を保存する必要はありません。例えば集計用途なら金額・日時・店舗IDだけ保存し、明細は不要なら捨てる、という判断ができます。
匿名化・仮名化のテクニック
仮名化(pseudonymization)
顧客IDを自社内で別IDに置き換えて保管。元IDとの対応表は別管理し、分析環境からは元IDが見えないようにする。
// レシートローラーの cus_xxx → 自社の internal_user_yyy // 対応表は別DB・別アクセス権限で管理
ハッシュ化
メールアドレスや電話番号など、突き合わせには使うが平文を持つ必要がない情報はSHA-256等でハッシュ化して保管。
差分プライバシー
集計値を出すだけなら、ノイズを加えて個人特定不可能にする。学術的・大規模データ向け。
暗号化の使い分け
| 用途 | 手法 |
|---|---|
| DB全体 | TDE(Transparent Data Encryption) |
| 特定列(メアド等) | アプリ層で AES-256-GCM |
| バックアップ | クラウドストレージのSSE-KMS |
| 転送ファイル | PGP / age |
鍵はシークレット管理サービスで別管理。コードと同じリポジトリに置かない。
ログのマスキング
運用ログ・エラーログに個人情報が混入しないよう、出力時にマスキング処理を入れます。
// メアドのマスキング "user@example.com" → "u***@example.com" // IDの一部マスク "cus_abc123def456" → "cus_abc***456"
削除ポリシー
- 用途を終えたら削除:分析が終わった集計データ、退会済みユーザー
- 削除依頼への対応:30日以内に物理削除(バックアップは別途ポリシー)
- 自動TTL:DBレコードに有効期限を設定し、過ぎたら自動削除
- 監査:削除ログを残し、削除完了を記録
関連ガイド
公開日: 2026-04-27
更新日: 2026-04-27
カテゴリ
タグ
API (8)
Webhook (8)
api (6)
oauth (5)
トラブル (5)
OAuth (4)
getting-started (4)
アプリ登録 (4)
app-registration (3)
webhook (3)