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. 013 つのクラウドの保持設定
  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

詳細

クラウドストレージの保持設定

概要

クラウドストレージプラットフォームには、インフラストラクチャーレベルでデータ保持スケジュールを適用できる、ネイティブの保持機能とライフサイクル管理機能が備わっています。適切に設定すると、クラウド環境に保存された個人データを、保持ポリシーに従って自動的に移行、アーカイブ、または削除できます。また、リーガルホールド機能とオブジェクトロック機能により、規制上または訴訟上の要件の対象となるデータが早期に削除されるのを防ぎます。このスキルでは、主要な3つのクラウドプラットフォーム、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-lifecycleprefix: customer-data/90日 → S3 Glacier Instant Retrieval;365日 → S3 Glacier Deep Archive2,190日(6年)顧客取引記録 — HMRC の保持要件
marketing-data-lifecycletag: data-category=marketing180日 → S3 Intelligent-Tiering730日(2年)マーケティング連絡先データ — 同意に基づく保持
analytics-data-lifecycleprefix: analytics/90日 → S3 Glacier Instant Retrieval790日(26か月)ウェブサイト分析 — ICO/CNIL 推奨期間
cctv-footage-lifecycleprefix: cctv/なし30日CCTV 映像 — ICO CCTV 実務規範
applicant-data-lifecycleprefix: recruitment/なし180日(6か月)不採用となった求職者のデータ
financial-records-lifecycleprefix: finance/365日 → S3 Glacier Deep Archive2,190日(6年)財務記録および税務記録 — Companies Act 2006
employee-records-lifecycletag: data-category=employee730日 → S3 Glacier Deep Archive人事システムで管理(雇用期間+6年)従業員の人事記録
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 オブジェクトロックは、一定の保持期間中、または無期限にわたり、オブジェクトの削除や上書きを防ぎます。次の2つのモードで動作します。

モード動作Orion Data Vault Corp での用途
ガバナンスモード大半のユーザーによる削除を防止します。s3:BypassGovernanceRetention 権限を持つユーザーは上書きできます標準的な保持の適用 — 有効な第17条の請求について、DPO が承認した早期削除を許可します
コンプライアンスモード保持期間全体にわたり、ルートアカウントを含むすべてのユーザーによる削除を防止します期限前の削除が法律で禁止されている規制対象記録(例: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 change feed を有効にし、削除を処理します削除イベント用のバケット通知を設定します
リーガルホールドの同期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 にアラートを送信 — DR リージョンで保持に空白が生じる可能性があります

コメント