如何限制S3 Glacier的Expedited检索,仅允许restore-priority=bulk?
限制S3 Glacier Expedited检索/仅允许Bulk恢复优先级的方法
可以通过IAM策略或S3桶策略实现这个需求,具体方式如下:
方法1:使用IAM策略限制恢复优先级
创建IAM策略,拒绝所有使用Expedited检索层级的恢复请求,同时允许Bulk层级的请求。示例策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3:RestoreObject", "Resource": "arn:aws:s3:::your-bucket-name/*", "Condition": { "StringEquals": { "s3:RestoreExpeditedTier": "true" } } }, { "Effect": "Allow", "Action": "s3:RestoreObject", "Resource": "arn:aws:s3:::your-bucket-name/*", "Condition": { "StringEquals": { "s3:RestoreBulkTier": "true" } } } ] }
将策略附加到需要限制的IAM用户或角色上,就能强制他们只能使用Bulk优先级发起恢复请求。
方法2:使用S3桶策略限制
如果要对整个桶的所有请求生效,可以用桶策略实现同样的限制:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:RestoreObject", "Resource": "arn:aws:s3:::your-bucket-name/*", "Condition": { "StringEquals": { "s3:RestoreExpeditedTier": "true" } } } ] }
这个策略会拒绝所有针对该桶的Expedited层级恢复请求,用户只能选择Bulk或Standard层级(如果需要完全只允许Bulk,可以再添加允许Bulk的条件并拒绝Standard)。
注意事项
- 策略中的
your-bucket-name需要替换为实际的桶名称 - 测试策略时,确保不会影响正常的业务流程,比如某些必要的恢复操作是否被意外限制
- 这些策略仅控制通过API/控制台发起的恢复请求,无法阻止通过其他AWS服务间接触发的恢复操作(如果有的话)
内容的提问来源于stack exchange,提问作者manwithplan
相关产品推荐
相关产品推荐

