Files
Anthropic-Cybersecurity-Skills/skills/conducting-gdpr-compliance-assessment/references/api-reference.md
T
dakshverma23 1934e73b7c Add GDPR compliance assessment skill
Adds comprehensive GDPR compliance assessment skill covering Article 30 records,
lawful basis validation, data subject rights, DPIAs, breach notification,
international transfers, and technical/organizational measures.

Features:
- 295-line skill body (under 500-line cap)
- 1008-char description with negative triggers (under 1024 limit)
- 9 files total, all within skill directory
- 3 production scripts: article30_parser.py, article30_validator.py, generate_ropa_report.py
- Detailed workflow, templates, and references

Negative triggers direct users to:
- implementing-gdpr-data-protection-controls for Article 32 technical controls
- implementing-gdpr-data-subject-access-request for DSAR automation

Legal basis: EU Regulation 2016/679, UK GDPR as amended by Data Protection Act 2018
and Data (Use and Access) Act 2025. Effective date: August 2026.

Validation: validate-skill.py PASS, lint-descriptions.py PASS
2026-08-24 16:05:44 +05:30

211 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# API Reference: GDPR Compliance Tools and Commands
## Python GDPR Compliance Helper Commands
### Article 30 Parser
```bash
# Parse DPAs and privacy policies for Article 30 fields
python scripts/article30_parser.py --input contracts/processors/ --output ropa.json
# Validate completeness against mandatory fields
python scripts/article30_validator.py --ropa ropa.json --check-retention --check-transfers
# Generate Article 30 register in supervisory authority format
python scripts/generate_ropa_report.py --input ropa.json --output Article30_Register.pdf
```
## Data Subject Access Request (DSAR) Automation
### Open Data Rights (ODR)
```bash
# Initialize ODR project
npm install @opendatarights/odr-core
# Submit DSAR programmatically
node scripts/submit_dsar.js --email user@example.com --company "Acme Corp"
# Check DSAR status
node scripts/check_dsar_status.js --request-id abc123
```
## GDPR Compliance Scanning Tools
### BigID Data Discovery
```bash
# Scan for personal data across data sources
bigid-cli scan --source "s3://company-bucket" --classification PII
# Generate data inventory report
bigid-cli report --format json --output data_inventory.json
```
### OneTrust Cookie Consent API
```bash
# Verify cookie consent compliance
curl -H "Authorization: Bearer $TOKEN" \
"https://api.onetrust.com/v1/consent/categories" | jq
# Check GDPR consent records
curl -H "Authorization: Bearer $TOKEN" \
"https://api.onetrust.com/v1/consent/receipts?user=john@example.com"
```
## Standard Contractual Clauses (SCCs) Templates
| SCC Module | Use Case | Download |
|------------|----------|----------|
| Module One | Controller to Controller | https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en |
| Module Two | Controller to Processor | Same link (2021 version) |
| Module Three | Processor to Processor | Same link |
| Module Four | Processor to Controller | Same link |
## Data Processing Agreement (DPA) Checklist
| Article 28 Requirement | DPA Clause Reference |
|------------------------|----------------------|
| Subject matter and duration | § 1.1 |
| Nature and purpose | § 1.2 |
| Type of personal data | § 1.3, Annex A |
| Categories of data subjects | § 1.4, Annex A |
| Controller obligations and rights | § 2 |
| Processor obligations | § 3-8 |
| Sub-processor approval | § 9 |
| Data subject rights assistance | § 10 |
| Security measures | § 11, Annex B |
| Breach notification | § 12 |
| Deletion/return of data | § 13 |
| Audits | § 14 |
| Liability and indemnity | § 15-16 |
## DPIA (Data Protection Impact Assessment) Template Structure
```yaml
# DPIA for [Processing Activity Name]
date: 2026-03-15
version: 1.0
assessor: [Name, Role]
1. Description of Processing:
- purpose:
- categories_of_data:
- categories_of_subjects:
- retention_period:
- recipients:
2. Necessity and Proportionality:
- necessity_justification:
- proportionality_assessment:
3. Risks to Data Subject Rights:
- risk_1:
description:
likelihood: [low/medium/high]
severity: [low/medium/high]
risk_level: [likelihood × severity]
- risk_2: ...
4. Mitigation Measures:
- measure_1:
description:
effectiveness: [reduces risk to ...]
responsibility: [who implements]
- measure_2: ...
5. Residual Risk:
- residual_risk_assessment:
- supervisory_authority_consultation: [yes/no, if yes why]
6. Sign-off:
- dpo_review_date:
- dpo_approval:
- controller_approval:
```
## Breach Notification API (Supervisory Authority)
### ICO Data Security Incident Reporting Tool
```bash
# UK: Report breach to ICO
# https://ico.org.uk/for-organisations/report-a-breach/
# EU Member State: Check your supervisory authority
# https://edpb.europa.eu/about-edpb/about-edpb/members_en
```
### Breach Register Template
```json
{
"breach_id": "BR-2026-001",
"discovered_date": "2026-03-10T14:30:00Z",
"notification_date_authority": "2026-03-12T10:00:00Z",
"72_hour_deadline": "2026-03-13T14:30:00Z",
"within_deadline": true,
"affected_data_subjects": 1500,
"categories_of_data": ["email", "name", "payment_card_last4"],
"likely_consequences": "Risk of phishing targeting affected users",
"measures_taken": "Mandatory password reset, notification sent to all users, MFA enforced",
"supervisory_authority": "ICO",
"notification_reference": "ICO-BR-2026-12345"
}
```
## GDPR-Compliant Logging Commands
### Audit Log Retention Check
```bash
# Verify retention periods align with Article 30 documented periods
grep -r "retention" Article30_Register.json | jq
# Check if logs contain personal data (must be protected under Article 32)
grep -iE "(email|name|ip_address)" /var/log/app/*.log
```
### Pseudonymization Example (Python)
```python
import hashlib
import hmac
def pseudonymize(email, secret_key):
"""Pseudonymize email using HMAC-SHA256"""
return hmac.new(
secret_key.encode(),
email.encode(),
hashlib.sha256
).hexdigest()
# Usage
secret = "your-secret-key-store-securely"
pseudonym = pseudonymize("user@example.com", secret)
# Output: 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
```
## Data Subject Rights Verification
| Right | Verification Check | Command/Tool |
|-------|-------------------|--------------|
| Right to Access (Art 15) | Can org deliver all data within 1 month? | Test DSAR workflow end-to-end |
| Right to Erasure (Art 17) | Can org delete across all systems? | `python scripts/test_deletion.py --user-id 12345` |
| Right to Portability (Art 20) | Can org export in machine-readable format? | Verify CSV/JSON export functionality |
| Right to Object (Art 21) | Can org stop direct marketing? | Test unsubscribe mechanism |
## International Transfer Checklist
```bash
# Identify all non-EU/EEA data flows
grep -r "transfer_destination" Article30_Register.json | grep -v "EU\|EEA"
# Verify safeguards for each transfer
for dest in $(jq -r '.transfers[].destination_country' Article30_Register.json); do
echo "Transfer to: $dest"
echo "Safeguard: $(jq -r ".transfers[] | select(.destination_country==\"$dest\") | .safeguard" Article30_Register.json)"
done
```
## References
- **ICO Self-Assessment Tool**: https://ico.org.uk/for-organisations/sme-web-hub/checklists/self-assessment/
- **EDPB Interactive Tool**: https://ec.europa.eu/info/law/law-topic/data-protection/reform/rights-citizens/how-my-personal-data-protected_en
- **GDPR.eu Compliance Checklist**: https://gdpr.eu/checklist/
- **NIST Privacy Framework**: https://www.nist.gov/privacy-framework