compliance-testing について
ソフトウェアチーム向けの規制コンプライアンステストスキルです。GDPR、HIPAA、PCI-DSS などに関するデータ権利、暗号化、ログ、監査証跡の検証を扱います。
主な機能
- 01規制要件をテスト可能な統制に対応付け
- 02データのアクセス、消去、移植性をテスト
- 03暗号化とアクセスログを確認
- 04監査対応レポートを生成
- 05エージェントによるコンプライアンス検証を調整
活用シーン
- 01セキュリティ監査の準備
- 02PII、PHI、決済データの取り扱いを検証
- 03新市場への参入前に適合性を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ proffesor-for-testing/ agentic-qe --skill compliance-testingインストール後、Claude Code で/compliance-testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
config.jsonevals/compliance-testing.yamlschemas/output.jsonscripts/validate-config.json詳細
コンプライアンステスト
<default_to_action> 規制への準拠を検証する際は、次の手順に従います。
- 適用される規制(GDPR、HIPAA、PCI-DSS など)を特定する
- 要件をテスト可能なコントロールに対応付ける
- データ主体の権利(アクセス、消去、ポータビリティ)をテストする
- 暗号化とアクセスログを検証する
- 証拠を含む監査対応レポートを作成する
コンプライアンスのクイックチェックリスト:
- データ主体の権利が機能する(アクセス、削除、エクスポート)
- PII が保存時および転送中に暗号化されている
- 機密データへのアクセスが記録されている
- 同意がタイムスタンプ付きで追跡されている
- 決済カードデータを保存していない(トークン化のみ)
重要な成功要因:
- コンプライアンス違反には、最大2,000万ユーロまたは売上高の4%の制裁金が科される(GDPR)
- すべてを監査証跡に残す
- 監査前だけでなく、継続的にテストする </default_to_action>
クイックリファレンスカード
使用する場面
- 法令遵守の要件がある場合
- セキュリティ監査の前
- PII/PHI/PCI データを扱う場合
- 新しい市場(EU、CA、医療)に参入する場合
主な規制
| 規制 | 適用範囲 | 主な焦点 |
|---|---|---|
| GDPR | EU のデータ | プライバシーの権利、同意 |
| CCPA | カリフォルニア州 | 消費者のデータ権利 |
| HIPAA | 医療 | PHI の保護 |
| PCI-DSS | 決済 | カードデータのセキュリティ |
| SOC2 | SaaS | セキュリティコントロール |
制裁金
| 規制 | 最高額 |
|---|---|
| GDPR | 2,000万ユーロまたは売上高の4% |
| HIPAA | 違反1件あたり150万ドル |
| PCI-DSS | 月額10万ドル |
| CCPA | 違反1件あたり7,500ドル |
GDPR コンプライアンステスト
// Test data subject rights
test('user can request their data', async () => {
const response = await api.post('/data-export', { userId });
expect(response.status).toBe(200);
expect(response.data.downloadUrl).toBeDefined();
const data = await downloadFile(response.data.downloadUrl);
expect(data).toHaveProperty('profile');
expect(data).toHaveProperty('orders');
});
test('user can delete their account', async () => {
await api.delete(`/users/${userId}`);
// All personal data deleted
expect(await db.users.findOne({ id: userId })).toBeNull();
expect(await db.orders.find({ userId })).toHaveLength(0);
// Audit log retained (legal requirement)
expect(await db.auditLogs.find({ userId })).toBeDefined();
});
test('consent is tracked', async () => {
await api.post('/consent', {
userId, type: 'marketing', granted: true,
timestamp: new Date(), ipAddress: '192.168.1.1'
});
const consent = await db.consents.findOne({ userId, type: 'marketing' });
expect(consent.timestamp).toBeDefined();
expect(consent.ipAddress).toBeDefined();
});
HIPAA コンプライアンステスト
// Test PHI security
test('PHI is encrypted at rest', async () => {
const patient = await db.patients.create({
ssn: '123-45-6789',
medicalHistory: 'Diabetes'
});
const raw = await db.raw('SELECT * FROM patients WHERE id = ?', patient.id);
expect(raw.ssn).not.toBe('123-45-6789'); // Should be encrypted
});
test('access to PHI is logged', async () => {
await api.get('/patients/123', {
headers: { 'User-Id': 'doctor456' }
});
const auditLog = await db.auditLogs.findOne({
resourceType: 'patient',
resourceId: '123',
userId: 'doctor456'
});
expect(auditLog.action).toBe('read');
expect(auditLog.timestamp).toBeDefined();
});
PCI-DSS コンプライアンステスト
// Test payment card handling
test('credit card numbers not stored', async () => {
await api.post('/payment', {
cardNumber: '4242424242424242',
expiry: '12/25', cvv: '123'
});
const payment = await db.payments.findOne({ /* ... */ });
expect(payment.cardNumber).toBeUndefined();
expect(payment.last4).toBe('4242'); // Only last 4
expect(payment.tokenId).toBeDefined(); // Token from gateway
});
test('CVV never stored', async () => {
const payments = await db.raw('SELECT * FROM payments');
const hasCVV = payments.some(p =>
JSON.stringify(p).toLowerCase().includes('cvv')
);
expect(hasCVV).toBe(false);
});
エージェント主導のコンプライアンス
// Comprehensive compliance validation
await Task("Compliance Validation", {
regulations: ['GDPR', 'PCI-DSS'],
scope: 'full-application',
generateAuditReport: true
}, "qe-security-scanner");
// Returns:
// {
// gdpr: { compliant: true, controls: 12, passed: 12 },
// pciDss: { compliant: false, controls: 8, passed: 7 },
// violations: [{ control: 'card-storage', severity: 'critical' }],
// auditReport: 'compliance-audit-2025-12-02.pdf'
// }
エージェント連携のヒント
メモリの名前空間
aqe/compliance-testing/
├── regulations/* - Regulation requirements
├── controls/* - Control test results
├── audit-reports/* - Generated audit reports
└── violations/* - Compliance violations
フリート連携
const complianceFleet = await FleetManager.coordinate({
strategy: 'compliance-validation',
agents: [
'qe-security-scanner', // Scan for vulnerabilities
'qe-test-executor', // Execute compliance tests
'qe-quality-gate' // Block non-compliant releases
],
topology: 'sequential'
});
関連スキル
- security-testing - セキュリティの脆弱性
- test-data-management - PII の取り扱い
- accessibility-testing - 法的要件
覚えておくこと
コンプライアンスは必須であり、任意ではありません。 制裁金は高額で、GDPR では最大2,000万ユーロまたは売上高の4%、HIPAA では違反1件あたり最大150万ドルです。しかし、制裁金にとどまらず、コンプライアンス違反は評判とユーザーの信頼を損ないます。
すべてを監査証跡に残します。 機密データへのアクセス、同意、削除はすべて、タイムスタンプとユーザー ID とともに記録する必要があります。
エージェントを活用する場合: エージェントはコンプライアンス要件を継続的に検証し、違反を早期に検出して、監査対応レポートを作成します。監査時ではなく、開発中にコンプライアンス上の問題を発見しましょう。
注意点
- エージェントが GDPR の同意フローを確認しても、データ保持を見落とすことがあります。削除や匿名化が実際に機能することを必ず確認してください
- 「100%準拠」とするコンプライアンスレポートには注意が必要です。完全に準拠した実システムは存在しないため、主張を1つずつ検証してください
- エージェントは米国の規制しかテストしない場合があります。適切な要件を確認できるよう、管轄地域(EU、CA など)を明示してください
- テストデータに PII を含めること自体がコンプライアンス違反です。本番の PII は決して使用せず、合成データ生成ツールを使用してください
- 監査証跡の欠落は監査時まで気づかれないことがあります。書き込みだけでなく、あらゆるデータアクセスに対するログがあることを確認してください
コメント
Markdown 対応