본문으로 건너뛰기
cccskills
무료GitHub에 공개

automating-storage-limitation-controls

Automated enforcement of GDPR Article 5(1)(e) storage limitation principle. Covers TTL-based deletion, retention policy engines, archival workflows, legal hold exemptions, and lifecycle automation. Includes technical implementation patterns for automated data expiry and defensible deletion across distributed systems.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구PostgreSQL
설치 방법 보기

포함된 파일(5)

  • SKILL.md11.2 KB
  • assets/template.md4.2 KB
  • references/standards.md3.7 KB
  • references/workflows.md6.0 KB
  • scripts/process.py17.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Automating Storage Limitation Controls

Overview

Article 5(1)(e) of the GDPR requires that personal data be "kept in a form which permits identification of data subjects for no longer than is necessary for the purposes for which the personal data are processed." This is the storage limitation principle. Controllers must define retention periods for each category of personal data based on the purpose of processing (Article 13(2)(a) requires disclosure of retention periods or criteria).

Automation is critical because manual retention management at scale inevitably leads to compliance gaps. The EDPB Guidelines 4/2019 on Article 25 specifically identify automated deletion mechanisms as an example of data protection by design.

Retention Policy Framework

Retention Period Determination

Each retention period must be justified by reference to the processing purpose, legal requirements, or legitimate business need:

Data CategoryPurposeLawful BasisRetention PeriodRetention TriggerLegal Reference
Customer account dataService deliveryArt. 6(1)(b)Duration of contract + 90 daysAccount closureArt. 5(1)(e), Art. 17(1)(a)
Transaction recordsTax complianceArt. 6(1)(c)10 yearsTransaction dateSwiss CO Art. 958f, EU VAT Directive 2006/112/EC Art. 242
Support ticketsCustomer serviceArt. 6(1)(b)3 yearsTicket closureArt. 5(1)(e), limitation period
Server access logsSecurity monitoringArt. 6(1)(f)12 monthsLog creation dateArt. 5(1)(e), ENISA recommendation
Marketing consent recordsAccountabilityArt. 6(1)(c)Duration of consent + 5 yearsConsent withdrawalArt. 7(1), Art. 5(2)
Employment recordsLegal obligationArt. 6(1)(c)Duration of employment + 10 yearsEmployment endSwiss OR Art. 127-128
Cookie analyticsProduct improvementArt. 6(1)(a)13 monthsData collectionePrivacy Directive Art. 5(3), CNIL guidance
DPIA recordsAccountabilityArt. 6(1)(c)Duration of processing + 3 yearsProcessing cessationArt. 35, Art. 5(2)

TTL-Based Deletion Architecture

┌─────────────────────────────────────────────────────────────┐
│                   Retention Policy Engine                     │
│  ┌───────────────┐  ┌────────────────┐  ┌───────────────┐  │
│  │ Policy Store  │  │ TTL Calculator │  │ Legal Hold    │  │
│  │ (per category)│  │ (trigger+period)│  │ Registry      │  │
│  └───────┬───────┘  └───────┬────────┘  └──────┬────────┘  │
│          └──────────────────┼───────────────────┘           │
└─────────────────────────────┼───────────────────────────────┘
                              │
┌─────────────────────────────▼───────────────────────────────┐
│                   Lifecycle Scheduler                         │
│  ┌──────────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │ Expiry Scanner   │  │ Archive Mover│  │ Deletion     │  │
│  │ (daily cron)     │  │ (pre-delete) │  │ Executor     │  │
│  └──────────────────┘  └──────────────┘  └──────────────┘  │
└─────────────────────────────┬───────────────────────────────┘
                              │
┌─────────────────────────────▼───────────────────────────────┐
│                   Audit and Verification                     │
│  ┌──────────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │ Deletion Log     │  │ Verification │  │ Exception    │  │
│  │ (immutable)      │  │ Scanner      │  │ Reporter     │  │
│  └──────────────────┘  └──────────────┘  └──────────────┘  │
└─────────────────────────────────────────────────────────────┘

Deletion Patterns for Distributed Systems

PatternDescriptionUse CaseComplexity
TTL columnsDatabase column storing expiry timestamp; background job deletes expired rowsSingle-database systems, Redis, DynamoDBLow
Event-driven deletionLifecycle event (account closure) publishes deletion command to message queueMicroservice architecturesMedium
Tombstone + compactionMark records as deleted; background compaction physically removes dataAppend-only stores, event sourcingMedium
Cascade deletionDelete propagates across foreign key relationshipsRelational databases with referential integrityMedium
Distributed sagaCoordinated deletion across multiple services with rollback on failurePolyglot persistence, cross-service dataHigh
Crypto-shreddingDestroy the encryption key rendering the data unreadable without physical deletionSystems where physical deletion is impractical (backups, immutable logs)Medium

Legal Hold Management

Legal holds suspend automated deletion when data is subject to litigation, regulatory investigation, or audit proceedings.

Legal Hold Lifecycle:

  1. Hold initiation — Legal counsel issues a hold notice specifying the scope (data categories, date range, affected subjects) and the matter reference
  2. Hold registration — The Retention Policy Engine registers the hold, creating an exemption that overrides TTL-based deletion for matching records
  3. Hold monitoring — Monthly review by legal counsel to confirm the hold remains necessary
  4. Hold release — Legal counsel issues a release notice; the Retention Policy Engine removes the exemption and resumes normal retention processing
  5. Catch-up deletion — Records that would have been deleted during the hold period are now evaluated against current retention policies and deleted if expired

Prism Data Systems AG Implementation:

Hold ParameterValue
Hold scope formatJSON document specifying data_categories, date_range_start, date_range_end, subject_identifiers, matter_reference
Hold registryPostgreSQL table with immutable audit trail
Review cadenceMonthly by legal counsel, quarterly by DPO
Maximum hold duration without renewal12 months
Hold release approvalDual approval: legal counsel + DPO

Archival Policies

Three-Tier Storage Lifecycle

TierStorage TypeAccess PatternEncryptionRetention Phase
HotPrimary database (PostgreSQL)Real-time read/writeAES-256-GCM field-levelActive processing
WarmObject storage (S3-compatible, Glacier Instant Retrieval class)Occasional read, no writeAES-256-GCM object-levelPost-purpose, pre-deletion (legal/audit)
ColdOffline archive (tape/vault)Restore on request (24-48h)AES-256-GCM + envelope encryptionStatutory retention only

Transition Rules for Prism Data Systems AG:

TransitionTriggerAutomation
Hot → WarmPurpose fulfilled (e.g., account closed) + 90 daysDaily lifecycle job
Warm → ColdWarm retention period expires, statutory retention still appliesMonthly lifecycle job
Cold → DeletionStatutory retention period expires, no legal hold activeQuarterly lifecycle job with DPO approval gate
Any → Legal HoldLegal hold registered for matching scopeImmediate suspension

Implementation Workflow

  1. Inventory data stores — Catalog every system that stores personal data, including primary databases, caches, message queues, logs, backups, and third-party integrations.

  2. Map retention requirements — For each data category and processing purpose, determine the retention period based on purpose necessity, legal obligations, and limitation periods.

  3. Implement TTL metadata — Add retention-related columns or metadata to each data store: created_at, retention_trigger_event, retention_trigger_date, ttl_expiry_date, legal_hold_id.

  4. Deploy lifecycle scheduler — Implement a background service that scans for expired records daily, checks for active legal holds, and executes deletion or archival transitions.

  5. Implement deletion verification — After each deletion cycle, run a verification scan to confirm that all targeted records have been removed from primary stores, replicas, and caches.

  6. Configure backup rotation — Ensure that backup retention aligns with the longest applicable retention period. Implement crypto-shredding for backup media where granular deletion is impractical.

  7. Deploy monitoring and alerting — Monitor deletion job success rates, flag records that exceed their TTL by more than 7 days, and alert on legal hold expirations.

Key Regulatory References

  • GDPR Article 5(1)(e) — Storage limitation principle
  • GDPR Article 13(2)(a) — Retention period disclosure requirement
  • GDPR Article 17(1)(a) — Right to erasure when data no longer necessary
  • GDPR Article 25(1) — Data protection by design
  • GDPR Recital 39 — Storage limitation guidance
  • EDPB Guidelines 4/2019 on Article 25 Data Protection by Design and by Default
  • Swiss Code of Obligations Art. 958f — 10-year retention for business records
  • EU VAT Directive 2006/112/EC Art. 242 — Invoice retention requirements

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Implements 42 CFR Part 2 protections for substance use disorder patient records. Covers written consent requirements stricter than HIPAA, re-disclosure prohibition, court order procedures, qualified service organization agreements, and 2024 amendments aligning Part 2 with HIPAA. Keywords: 42 CFR Part 2, substance use disorder, SUD records, re-disclosure, consent, Part 2 amendments.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mukul975/Privacy-Data-Protection-Skills3162026년 3월 17일 업데이트

Guides assessment of third-country adequacy decisions under GDPR Article 45 for international data transfers. Covers the current EC adequacy decisions list, adequacy assessment criteria, partial adequacy handling, and monitoring of adequacy decision reviews. Keywords: adequacy decision, Article 45, third country, adequate protection, EC adequacy list.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mukul975/Privacy-Data-Protection-Skills3162026년 3월 17일 업데이트

Implements age-gating mechanisms for online services to restrict access based on user age. Covers hard gates versus soft gates, neutral age prompts, re-verification triggers, circumvention prevention, and regulatory requirements under GDPR, COPPA, UK Online Safety Act, and DSA. Keywords: age gate, age restriction, neutral prompt, children, online services, access control.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mukul975/Privacy-Data-Protection-Skills3162026년 3월 17일 업데이트

Evaluates and implements age estimation and verification technologies for online services. Covers facial age estimation, digital ID verification, self-declaration with risk assessment, AI-based age estimation, and the accuracy versus privacy tradeoff. Includes ICO guidance and euCONSENT framework. Keywords: age verification, age estimation, facial analysis, digital ID, children, online safety.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mukul975/Privacy-Data-Protection-Skills3162026년 3월 17일 업데이트

Preparing EU AI Act compliance documentation for high-risk AI systems. Covers Annex III classification, technical documentation under Art. 11, conformity assessment, risk management systems, and CE marking requirements. Keywords: EU AI Act, high-risk AI, Annex III, conformity assessment, CE marking.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mukul975/Privacy-Data-Protection-Skills3162026년 3월 17일 업데이트

Implements GDPR Art. 22 automated decision-making and AI Act Art. 14 human oversight requirements for AI systems. Covers identification of solely automated decisions, meaningful human intervention design, logic explanation mechanisms, and contestation procedures. Keywords: Art. 22, automated decision, human oversight, AI Act, profiling, contestation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mukul975/Privacy-Data-Protection-Skills3162026년 3월 17일 업데이트

mukul975의 스킬 모두 보기

이 스킬의 문제 신고