View a markdown version of this page

使用针对目录存储桶的 S3 生命周期 - Amazon Simple Storage Service

使用针对目录存储桶的 S3 生命周期

S3 生命周期通过代表您删除已过期对象,助力您以更具成本效益的方式在目录存储桶中的 S3 Express One Zone 内存储对象。要管理对象的生命周期,请为目录存储桶创建 S3 生命周期配置。S3 生命周期配置 是一组规则,用于定义 Amazon S3 对一组对象应用的操作。您可以使用 AWS 命令行界面(AWS CLI)、AWS SDK、Amazon S3 REST API 和 AWS CloudFormation,在目录存储桶上设置 Amazon S3 生命周期配置。

在生命周期配置中,您可以使用规则来定义希望 Amazon S3 在对象上执行的操作。对于存储在目录存储桶中的对象,您可以创建生命周期规则,以便随着对象存在时间的增长而使其过期。您还可以创建生命周期规则,以每天一次的频率删除目录存储桶中未完成的分段上传。

当您向存储桶添加生命周期配置时,配置规则将应用到现有对象以及您在以后添加的对象。例如,如果您在今天添加带有过期操作的生命周期配置规则,而该规则使带有特定前缀的对象在创建 30 天后过期,S3 会将任何超过 30 天且具有指定前缀的现有对象加入移除队列。

目录存储桶的 S3 生命周期有何不同

对于目录存储桶中的对象,您可以创建生命周期规则,使对象过期并删除未完成的分段上传。但是,目录存储桶的 S3 生命周期不支持存储类之间的转换操作。目录存储桶的 S3 生命周期要求您向 S3 生命周期服务主体授予显式权限。

S3 生命周期权限

S3 生命周期使用 DeleteObjectDeleteObjectsAbortMultipartUpload API 操作来使目录存储桶中的对象过期。为了调用这些操作,S3 生命周期使用 CreateSession API 来获取临时安全凭证。您必须向 S3 生命周期服务主体 (lifecycle.s3.amazonaws.com) 授予 ReadWrite 会话模式下的 s3express:CreateSession 权限。如果您不授予此权限,或者如果活动的策略显式拒绝向 S3 生命周期服务主体授予删除权限,则 S3 生命周期将无法使目录存储桶中的对象过期。有关 CreateSession 的更多信息,请参阅《Amazon S3 API 参考》中的 CreateSession

使用存储桶策略向 S3 生命周期服务主体授予权限

以下存储桶策略向 S3 生命周期服务主体授予创建会话以执行 DeleteObjectDeleteObjects 等操作的权限。如果未在 CreateSession 请求中指定会话模式,则会使用权限(先尝试 ReadWrite,如果不允许 ReadWrite,则再尝试 ReadOnly)所支持的最大权限创建会话。但是,对于修改或删除对象的生命周期操作,ReadOnly 会话是不够的。因此,此示例使用 s3express:SessionMode 条件键明确要求使用 ReadWrite 会话模式。

例存储桶策略,支持使用显式 ReadWrite 会话模式进行 CreateSession 以执行生命周期操作
{ "Version":"2008-10-17", "Statement":[ { "Effect":"Allow", "Principal": { "Service":"lifecycle.s3.amazonaws.com" }, "Action":"s3express:CreateSession", "Condition": { "StringEquals": { "s3express:SessionMode": "ReadWrite" } }, "Resource":"arn:aws:s3express:us-east-2:412345678921:bucket/amzn-s3-demo-bucket--use2-az2--x-s3" } ] }

监控生命周期规则

对于存储在目录存储桶中的对象,S3 生命周期会生成 AWS CloudTrail 管理和数据事件日志。有关更多信息,请参阅 S3 Express One Zone 的 CloudTrail 日志文件示例

有关创建生命周期配置以及排查 S3 生命周期相关问题的更多信息,请参阅以下主题:

主题