Amazon Glacier
开发人员指南 (API 版本 2012-06-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用文件库锁定策略的 Amazon Glacier 访问控制

可以为 Amazon Glacier 文件库附加一个基于资源的文件库访问策略和一个文件库锁定策略。文件库锁定策略 是您可以锁定的文件库访问策略。通过使用文件库锁定策略,可帮助您实施法规和合规性要求。Amazon Glacier 提供了一组用于管理文件库锁定策略的 API 操作,具体请参阅通过使用 Amazon Glacier API 锁定文件库

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

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

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

假定您需要符合法规要求,只能删除保留时间达到 1 年的存档。可通过实施以下文件库锁定策略来实施此要求。如果要删除的存档的保留时间不到 1 年,则该策略将拒绝对 examplevault 文件库执行 glacier:DeleteArchive 操作。该策略使用特定于 Amazon 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": "no-one-can-delete-any-archive-from-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": "*", "Effect": "Allow", "Action": [ "glacier:DeleteArchive" ], "Resource": [ "arn:aws:glacier:us-west-2:123456789012:vaults/examplevault" ], "Condition": { "NumericLessThan": { "glacier:ArchiveAgeInDays": "365" } } } ] }