cloud-retention-config について
クラウドストレージとコンプライアンス担当者向けの保持設定ガイドです。AWS S3、Microsoft Azure Blob Storage、Google Cloud Storage を対象に、ライフサイクルルール、不変設定、リーガルホールド、リージョン間の整合性、監査を扱います。
主な機能
- 013 つのクラウドの保持設定
- 02ライフサイクル移行と期限切れ削除
- 03オブジェクトロックとリーガルホールド
- 04リージョン間のポリシー整合
- 05保持設定の監査とアラート
活用シーン
- 01クラウド上の個人データの保持期間設定
- 02訴訟や規制調査に伴うリーガルホールドの適用
- 03リージョン間レプリカの保持設定の確認
- 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.mdreferences/standards.mdworkflows.mdscripts/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-lifecycle | prefix: customer-data/ | 90日 → S3 Glacier Instant Retrieval;365日 → S3 Glacier Deep Archive | 2,190日(6年) | 顧客取引記録 — HMRC の保持要件 |
| marketing-data-lifecycle | tag: data-category=marketing | 180日 → S3 Intelligent-Tiering | 730日(2年) | マーケティング連絡先データ — 同意に基づく保持 |
| analytics-data-lifecycle | prefix: analytics/ | 90日 → S3 Glacier Instant Retrieval | 790日(26か月) | ウェブサイト分析 — ICO/CNIL 推奨期間 |
| cctv-footage-lifecycle | prefix: cctv/ | なし | 30日 | CCTV 映像 — ICO CCTV 実務規範 |
| applicant-data-lifecycle | prefix: recruitment/ | なし | 180日(6か月) | 不採用となった求職者のデータ |
| financial-records-lifecycle | prefix: finance/ | 365日 → S3 Glacier Deep Archive | 2,190日(6年) | 財務記録および税務記録 — Companies Act 2006 |
| employee-records-lifecycle | tag: data-category=employee | 730日 → 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,000 | CCTV 映像 |
| 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/"]
}
}
]
}
}
クロスリージョンレプリケーションにおける保持設定の整合
可用性または災害復旧のためにリージョン間でデータをレプリケートする場合、保持ポリシーの整合を取る必要があります。
保持要件
- 保持期間の一致:宛先リージョンに複製されたデータの保持期間は、ソースと同じである必要があります。
- ライフサイクルルールの同期:ライフサイクルの移行と有効期限は、ソースと宛先のバケット/コンテナで同一に設定する必要があります。
- リーガルホールドの伝播:ソースに適用されたリーガルホールドは、宛先にも適用する必要があります。自動伝播を設定してください。
- 削除の伝播:ソースでオブジェクトの有効期限が切れるか削除された場合、レプリカも削除する必要があります。削除マーカーを処理するようにレプリケーションを設定してください。
- 法域に関する考慮事項:宛先リージョンが別の法域にある場合、その法域で適用される保持要件がソースの保持期間と矛盾しないことを確認してください。
クロスリージョン設定チェックリスト
| 確認項目 | AWS | Azure | GCP |
|---|---|---|---|
| ライフサイクルルールがソースと一致 | 宛先バケットに同一の S3 ライフサイクルルールを適用します | 宛先コンテナに同一のライフサイクル管理ポリシーを適用します | 宛先バケットに同一のライフサイクルルールを適用します |
| 保持/ロック設定が一致 | 宛先で同一の Object Lock 設定を行います | 宛先に同一の不変性ポリシーを適用します | 宛先に同一の保持ポリシーを適用します |
| 削除マーカーのレプリケーション | レプリケーション設定で DeleteMarkerReplication を有効にします | blob change feed を有効にし、削除を処理します | 削除イベント用のバケット通知を設定します |
| リーガルホールドの同期 | CloudTrail をトリガーとする Lambda を使用してリーガルホールドを伝播します | Event Grid + Azure Function を使用してリーガルホールドを伝播します | 監査ログをトリガーとする Cloud Functions を使用してホールドを伝播します |
| 監視 | レプリケーション遅延に関する CloudWatch メトリクス | Azure Monitor のレプリケーションメトリクス | Cloud Monitoring のレプリケーションメトリクス |
コンプライアンスの監視
毎月のクラウド保持監査
- ポリシーのずれの検出:有効なライフサイクルルールと保持ポリシーを、承認済みの保持スケジュールと比較します。不一致があればフラグを付けます。
- 適用範囲の確認:個人データを保持するすべてのストレージバケット/コンテナに、該当する保持ポリシーが適用されていることを確認します。
- リーガルホールドの一覧確認:すべてのクラウドプラットフォームにわたる有効なリーガルホールドを一覧表示します。訴訟ホールド台帳と照合し、解除すべきホールドを特定します。
- 有効期限切れの確認:最近有効期限が切れたオブジェクトをサンプリングし、実際に削除されたこと(単に移行またはソフト削除されたのではないこと)を確認します。
- クロスリージョンの一貫性:複製されたバケット/コンテナで、保持設定が同一に維持されていることを確認します。
アラートの設定
| アラート | 条件 | アクション |
|---|---|---|
| ポリシーの削除 | 規制対象のバケットから保持ポリシーまたはライフサイクルルールが削除された | Cloud Security + DPO に即時アラート |
| オブジェクトロックのバイパス | s3:BypassGovernanceRetention が使用された | DPO にアラートを送信し、削除が承認済みか確認 |
| リーガルホールドの変更 | リーガルホールドが適用または解除された | 訴訟ホールド台帳に記録し、Legal にアラートを送信 |
| 保持ポリシーのロック解除の試行 | ロックされた保持ポリシーを変更しようとした | Cloud Security にアラートを送信(失敗するはずです。調査してください) |
| レプリケーション遅延が 24h を超過 | クロスリージョンレプリケーションが 24 時間を超えて遅延している | IT Operations にアラートを送信 — DR リージョンで保持に空白が生じる可能性があります |