ストーリー
高
高橋アーキテクト
技術的な対策は分かったと思う。でも、セキュリティにはもう1つ重要な側面がある
高
高橋アーキテクト
法規制だ。GDPR違反で数百億円の罰金を受けた企業もある。技術だけでなく、法的な要件も設計に組み込む必要がある
あなた
え、エンジニアが法律のことも考えるんですか?
あ
高
高橋アーキテクト
全てを理解する必要はない。ただ、どんな規制があって、設計にどう影響するかは知っておくべきだ
主要な規制・標準
個人情報保護
| 規制 | 対象地域 | 概要 | 設計への影響 |
|---|
| GDPR | EU | EU市民の個人データ保護 | 同意管理、データ削除権、DPO設置 |
| 個人情報保護法 | 日本 | 個人情報の適正な取り扱い | 利用目的の明示、安全管理措置 |
| CCPA/CPRA | 米カリフォルニア | 消費者のプライバシー権 | オプトアウト機能、データ開示 |
業界固有の規制
| 規制 | 業界 | 概要 |
|---|
| PCI DSS | 金融・決済 | クレジットカード情報の保護基準 |
| HIPAA | 医療 | 医療情報の保護 |
| SOX | 上場企業 | 財務報告の内部統制 |
| FISC安全対策基準 | 金融(日本) | 金融機関のシステム安全対策 |
設計に影響する法的要件
// GDPR対応の設計例
// 1. 同意管理
interface UserConsent {
userId: string;
purposes: {
essential: boolean; // 必須(常にtrue)
analytics: boolean; // 分析目的
marketing: boolean; // マーケティング目的
};
consentedAt: Date;
ipAddress: string;
}
// 2. データ削除権(忘れられる権利)
const deleteUserData = async (userId: string): Promise<void> => {
// 関連する全データを削除
await userRepo.delete(userId);
await orderRepo.anonymize(userId); // 会計上必要なデータは匿名化
await auditLog.record({ action: "data_deletion", userId });
};
// 3. データポータビリティ
const exportUserData = async (userId: string): Promise<UserDataExport> => {
const userData = await userRepo.findById(userId);
const orders = await orderRepo.findByUserId(userId);
return {
format: "JSON",
data: { user: userData, orders },
exportedAt: new Date(),
};
};
コンプライアンス対応のチェックポイント
| 要件 | 設計での対策 |
|---|
| データ最小化 | 必要最小限のデータのみ収集 |
| 保存期間制限 | 自動削除・匿名化の仕組み |
| 暗号化義務 | 保存時・通信時の暗号化 |
| アクセスログ | 監査可能なログの保存 |
| インシデント通知 | 72時間以内の通知体制(GDPR) |
| 越境データ転送 | データの保存場所の管理 |
まとめ
| ポイント | 内容 |
|---|
| GDPR | EU市民のデータ保護、違反時に巨額の罰金 |
| PCI DSS | 決済データの保護基準 |
| 設計への影響 | 同意管理、削除権、暗号化が必須 |
| エンジニアの役割 | 規制の設計への影響を理解する |
チェックリスト
次のステップへ
Step 1の理解度チェックに進みましょう。ここまでの内容をクイズで確認します。
推定読了時間: 15分