文件库锁定策略 - Amazon S3 Glacier
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

如果您不熟悉 Amazon Simple Storage Service (Amazon S3) 中的归档存储功能,建议您先详细了解 Amazon S3 中的 S3 Glacier 存储类、S3 Glacier 即时检索S3 Glacier 灵活检索S3 Glacier 深度归档。有关更多信息,请参阅 Amazon S3 用户指南中的 S3 Glacier 存储类和用于存档对象的存储类。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

文件库锁定策略

可以为 Amazon S3 Glacier (S3 Glacier) 文件库附加一个基于资源的文件库访问策略和一个文件库锁定策略。文件库锁定策略 是您可以锁定的文件库访问策略。使用文件库锁定策略可以帮助您强制执行监管和合规性要求。Amazon S3 Glacier 提供了一组用于管理文件库锁策略的 API 操作,请参阅使用 S3 Glacier API 锁定文件库

我们举例来说明文件库锁定策略,假设您需要先将存档保留一年,然后才能删除存档。要实施此要求,您可以创建一个文件库锁定策略,以便在存档保留时间达到 1 年之前拒绝用户删除存档的权限。在锁定一个策略之前,可以先测试该策略。锁定策略后,策略将是不可变的。有关锁定过程的更多信息,请参阅 文件库锁定策略。如果您要管理可更改的其他用户权限,可以使用文件库访问策略(请参阅 库访问策略)。

可以使用 S3 Glacier API、Amazon SDK、Amazon CLI 或 S3 Glacier 控制台来创建和管理文件库锁定策略。有关基于文件库资源的策略所允许的 S3 Glacier 操作的列表,请参阅API 权限参考

示例 1:拒绝针对保留时间不到 365 天的存档的删除权限

假定您需要符合法规要求,只能删除保留时间达到 1 年的存档。可通过实施以下文件库锁定策略来实施此要求。如果要删除的存档的保留时间不到 1 年,则该策略将拒绝对 examplevault 文件库执行 glacier:DeleteArchive 操作。该策略使用特定于 S3 Glacier 的条件键 ArchiveAgeInDays 来实施 1 年保留要求。

{ "Version":"2012-10-17", "Statement":[ { "Sid": "deny-based-on-archive-age", "Principal": "*", "Effect": "Deny", "Action": "glacier:DeleteArchive", "Resource": [ "arn:aws:glacier:us-west-2:123456789012:vaults/examplevault" ], "Condition": { "NumericLessThan" : { "glacier:ArchiveAgeInDays" : "365" } } } ] }

假定您实施了一个基于时间的保留规则,即允许在存档保留时间不到 1 年的情况下删除存档。同时,假定您需要对您的存档实施法定保留策略,以在法律调查期间无限期地禁止删除或修改操作。在这种情况下,法定保留优先于文件库锁定策略中指定的基于时间的保留规则。

为了实施这两个规则,以下示例策略包含两条语句:

  • 第一条语句拒绝任何人删除存档(锁定文件库)。可通过使用 LegalHold 标签执行此锁定。

  • 第二条语句授予在存档保留时间不到 365 天的情况下删除存档的权限。但是,如果满足第一条语句中的条件,即使在存档保留时间不到 365 天的情况下,任何人也无法删除存档。

{ "Version":"2012-10-17", "Statement":[ { "Sid": "lock-vault", "Principal": "*", "Effect": "Deny", "Action": [ "glacier:DeleteArchive" ], "Resource": [ "arn:aws:glacier:us-west-2:123456789012:vaults/examplevault" ], "Condition": { "StringLike": { "glacier:ResourceTag/LegalHold": [ "true", "" ] } } }, { "Sid": "you-can-delete-archive-less-than-1-year-old", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Effect": "Allow", "Action": [ "glacier:DeleteArchive" ], "Resource": [ "arn:aws:glacier:us-west-2:123456789012:vaults/examplevault" ], "Condition": { "NumericLessThan": { "glacier:ArchiveAgeInDays": "365" } } } ] }