mcpField
C
cloud-retention-config

cloud-retention-config

github.com/mukul975云与 DevOps32340 次安装32 周前更新
代码仓库

关于 cloud-retention-config

面向云存储与合规团队的保留策略配置指南,覆盖 AWS S3、Microsoft Azure Blob Storage 和 Google Cloud Storage。内容包括生命周期规则、不可变存储、法律保留、跨区域同步及审计监控。

主要功能

  1. 01三种云存储保留配置
  2. 02生命周期转换与到期删除
  3. 03对象锁定与法律保留
  4. 04跨区域策略对齐
  5. 05保留配置审计与告警

适用场景

  1. 01为云端个人数据设置保留期限
  2. 02配置诉讼或监管调查所需的法律保留
  3. 03检查跨区域副本的保留策略一致性
  4. 04审计存储规则及删除执行情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/privacy-data-protection-skills --skill cloud-retention-config

安装后在 Claude Code 中输入/cloud-retention-config确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
template.md
references/
standards.md
workflows.md
scripts/
process.py

详细介绍

云存储保留配置

概述

云存储平台提供原生保留和生命周期管理功能,可在基础设施层面执行数据保留计划。正确配置可确保云环境中存储的个人数据根据保留政策自动转换存储类别、归档或删除,同时法律保留和对象锁定功能可防止过早删除受监管或诉讼要求约束的数据。本技能介绍三大云平台的配置:AWS S3、Microsoft Azure Blob Storage 和 Google Cloud Storage。

法律背景

GDPR 第 5(1)(e) 条——存储期限限制

云存储保留政策是存储期限限制原则的技术实现,可确保数据不会超出处理目的所需期限而继续保留。

GDPR 第 32 条——处理安全

保留配置必须包含适当的安全措施,包括静态加密、访问控制,以及对所有保留相关操作进行审计日志记录。

GDPR 第 25 条——通过设计和默认保护数据

云保留政策应配置为所有存储资源的默认设置,而非事后应用。

AWS S3 生命周期和保留配置

S3 生命周期规则

S3 生命周期规则可自动转换存储类别并设置对象过期:

Orion Data Vault Corp 的生命周期规则配置
规则名称前缀/标签筛选条件转换过期时间用途
customer-data-lifecycle前缀:customer-data/90 天 → S3 Glacier Instant Retrieval;365 天 → S3 Glacier Deep Archive2,190 天(6 年)客户交易记录——HMRC 保留要求
marketing-data-lifecycle标签:data-category=marketing180 天 → S3 Intelligent-Tiering730 天(2 年)营销联系人数据——基于同意的保留
analytics-data-lifecycle前缀:analytics/90 天 → S3 Glacier Instant Retrieval790 天(26 个月)网站分析数据——ICO/CNIL 建议的期限
cctv-footage-lifecycle前缀:cctv/无30 天CCTV 录像——ICO CCTV 实务准则
applicant-data-lifecycle前缀:recruitment/无180 天(6 个月)未成功应聘者的数据
financial-records-lifecycle前缀:finance/365 天 → S3 Glacier Deep Archive2,190 天(6 年)财务和税务记录——《2006 年公司法》
employee-records-lifecycle标签:data-category=employee730 天 → S3 Glacier Deep Archive由 HR 系统控制(在职期间 + 6 年)员工 HR 记录
S3 生命周期规则——JSON 配置示例
{
  "Rules": [
    {
      "ID": "customer-data-lifecycle",
      "Filter": {
        "Prefix": "customer-data/"
      },
      "Status": "Enabled",
      "Transitions": [
        {
          "Days": 90,
          "StorageClass": "GLACIER_IR"
        },
        {
          "Days": 365,
          "StorageClass": "DEEP_ARCHIVE"
        }
      ],
      "Expiration": {
        "Days": 2190
      },
      "NoncurrentVersionTransitions": [
        {
          "NoncurrentDays": 30,
          "StorageClass": "GLACIER_IR"
        }
      ],
      "NoncurrentVersionExpiration": {
        "NoncurrentDays": 2190
      }
    }
  ]
}
S3 对象锁定

S3 对象锁定可在固定保留期限内或永久防止对象被删除或覆盖。它有两种模式:

模式行为在 Orion Data Vault Corp 的用途
治理模式防止大多数用户删除对象;拥有 s3:BypassGovernanceRetention 权限的用户可以绕过限制标准保留执行机制——允许 DPO 批准对有效的第 17 条请求提前删除
合规模式在整个保留期限内防止所有用户(包括根账户)删除对象法律禁止在期限届满前删除的监管记录(例如,依据 MLR 2017 保留的 AML 记录)
对象锁定配置
{
  "ObjectLockConfiguration": {
    "ObjectLockEnabled": "Enabled",
    "Rule": {
      "DefaultRetention": {
        "Mode": "GOVERNANCE",
        "Days": 2190
      }
    }
  }
}

GDPR 擦除的重要注意事项:如果使用合规模式,则必须等到保留期限届满后,才能处理依据第 17 条提出的数据主体擦除请求。对于可能出现擦除请求的数据类别,应使用治理模式;合规模式仅适用于依法必须保留、且依据第 17(3)(b) 条凌驾于擦除权之上的数据。

S3 法律保留

法律保留是一种独立的开关标记,无论保留设置如何,都会阻止对象删除:

aws s3api put-object-legal-hold \
  --bucket orion-data-vault-regulated \
  --key customer-data/2024/transaction-batch-0142.parquet \
  --legal-hold Status=ON

法律保留必须:

  • 收到诉讼保留通知后立即应用
  • 记录在诉讼保留管理登记册中(交叉参考:litigation-hold-mgmt 技能)
  • 仅在收到法律顾问的书面授权后移除
  • 可审计——所有法律保留变更均通过 CloudTrail 记录

Microsoft Azure Blob Storage 保留

不可变性策略

Azure Blob Storage 支持在容器级别设置不可变性策略:

策略类型行为配置
基于时间的保留在指定时间段内禁止修改和删除设置以天为单位的保留期限;可以锁定(不可逆)或解锁
法律保留在清除所有法律保留标记之前,禁止修改和删除应用命名的法律保留标记;可以同时存在多个保留
基于时间的保留策略配置
{
  "properties": {
    "immutabilityPeriodSinceCreationInDays": 2190,
    "allowProtectedAppendWrites": true,
    "allowProtectedAppendWritesAll": false
  }
}
Azure 生命周期管理规则
{
  "rules": [
    {
      "enabled": true,
      "name": "customer-data-retention",
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": ["blockBlob"],
          "prefixMatch": ["customer-data/"]
        },
        "actions": {
          "baseBlob": {
            "tierToCool": {
              "daysAfterModificationGreaterThan": 90
            },
            "tierToArchive": {
              "daysAfterModificationGreaterThan": 365
            },
            "delete": {
              "daysAfterModificationGreaterThan": 2190
            }
          },
          "snapshot": {
            "delete": {
              "daysAfterCreationGreaterThan": 2190
            }
          }
        }
      }
    },
    {
      "enabled": true,
      "name": "analytics-data-retention",
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": ["blockBlob"],
          "prefixMatch": ["analytics/"]
        },
        "actions": {
          "baseBlob": {
            "tierToCool": {
              "daysAfterModificationGreaterThan": 90
            },
            "delete": {
              "daysAfterModificationGreaterThan": 790
            }
          }
        }
      }
    }
  ]
}
Azure 法律保留
az storage container legal-hold set \
  --account-name oriondatavault \
  --container-name regulated-data \
  --tags "litigation-2026-001" "regulatory-investigation-2026-003"
Azure 版本控制与软删除的交互

配置保留时,请考虑 Azure 的软删除和版本控制功能:

功能对保留的影响建议设置
Blob 软删除已删除的 Blob 会在恢复期限内保留设置为 14 天 — 确保在软删除期限过后才实际删除
容器软删除已删除的容器会保留以供恢复设置为 14 天
Blob 版本控制保留以前的版本对版本应用生命周期规则;确保删除已过期的版本

Google Cloud Storage 保留

存储桶级保留策略

GCP 在存储桶级别应用保留策略。在保留期限届满之前,无法删除或覆盖对象:

{
  "retentionPolicy": {
    "retentionPeriod": "189216000",
    "isLocked": false
  }
}

retentionPeriod 以秒为单位指定。常见值:

保留期限秒数使用场景
30 天2,592,000CCTV 录像
6 个月15,552,000未成功申请人的数据
26 个月68,256,000分析数据
2 年63,072,000营销数据
6 年189,216,000财务/税务记录
7 年220,752,000审计记录
锁定保留策略
gcloud storage buckets update gs://orion-regulated-finance \
  --lock-retention-policy

警告:锁定保留策略不可逆。一旦锁定,就无法缩短或移除保留期限。在其中所有对象均达到保留期限之前,无法删除存储桶。仅对绝对法定保留要求优先于第 17 条权利的数据类别锁定策略。

GCP 对象保留
保留类型行为使用场景
临时保留阻止删除;可随时移除暂停第 17 条请求(评估期);临时保存
基于事件的保留在解除保留之前阻止删除;保留期限从解除保留时开始计算保留期限从未来事件开始计算的数据(例如,合同终止)
gcloud storage objects update gs://orion-regulated-data/customer-data/batch-0142.parquet \
  --temporary-hold
GCP 生命周期规则
{
  "lifecycle": {
    "rule": [
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "NEARLINE"
        },
        "condition": {
          "age": 90,
          "matchesPrefix": ["customer-data/"]
        }
      },
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "ARCHIVE"
        },
        "condition": {
          "age": 365,
          "matchesPrefix": ["customer-data/"]
        }
      },
      {
        "action": {
          "type": "Delete"
        },
        "condition": {
          "age": 2190,
          "matchesPrefix": ["customer-data/"]
        }
      }
    ]
  }
}

跨区域复制的保留策略对齐

当数据跨区域复制以确保可用性或用于灾难恢复时,必须对齐保留策略:

对齐要求
  1. 保留期限一致:目标区域中的复制数据必须与源数据具有相同的保留期限。
  2. 生命周期规则同步:必须在源存储桶/容器和目标存储桶/容器上配置完全相同的生命周期转换和过期规则。
  3. 法律保留传播:在源数据上应用的法律保留也必须应用到目标数据。请配置自动传播。
  4. 删除传播:源数据中的对象过期或被删除时,副本也必须删除。请将复制配置为处理删除标记。
  5. 司法管辖区考量:如果目标区域属于不同司法管辖区,请确认该管辖区的适用保留要求与源数据的保留期限不冲突。
跨区域配置检查清单
检查项AWSAzureGCP
生命周期规则与源数据一致对目标存储桶应用与源数据完全相同的 S3 生命周期规则对目标容器应用与源数据完全相同的生命周期管理策略对目标存储桶应用与源数据完全相同的生命周期规则
保留/锁定设置一致对目标存储桶配置与源数据完全相同的 Object Lock 设置对目标存储桶应用与源数据完全相同的不可变策略对目标存储桶应用与源数据完全相同的保留策略
删除标记复制在复制配置中启用 DeleteMarkerReplication启用 blob 更改源并处理删除操作配置存储桶通知以接收删除事件
法律保留同步使用由 CloudTrail 触发的 Lambda 传播法律保留使用 Event Grid + Azure Function 传播法律保留使用由审核日志触发的 Cloud Functions 传播法律保留
监控使用 CloudWatch 监控复制延迟指标使用 Azure Monitor 监控复制指标使用 Cloud Monitoring 监控复制指标

合规性监控

每月云保留审计
  1. 策略漂移检测:将有效的生命周期规则和保留策略与已批准的保留计划进行比较。标记所有差异。
  2. 覆盖范围验证:确认所有存储个人数据的存储桶/容器都已应用适用的保留策略。
  3. 法律保留清单:列出所有云平台上的有效法律保留,并与诉讼保留登记册交叉核对,以找出应已解除的保留。
  4. 过期情况验证:抽查近期过期的对象,确认它们确实已删除(而不只是转换存储层或软删除)。
  5. 跨区域一致性:验证复制的存储桶/容器是否保持相同的保留配置。
警报配置
警报条件操作
策略已移除从受监管的存储桶中删除保留策略或生命周期规则立即向 Cloud Security + DPO 发出警报
绕过对象锁定使用了 s3:BypassGovernanceRetention向 DPO 发出警报;核实删除是否经过授权
法律保留变更应用了法律保留或移除了法律保留记录到诉讼保留登记册;向 Legal 发出警报
尝试解锁保留策略尝试修改已锁定的保留策略向 Cloud Security 发出警报(操作应失败——请调查)
复制延迟 > 24h跨区域复制延迟超过 24 小时向 IT Operations 发出警报——灾难恢复区域可能存在保留缺口

评论

支持 Markdown