AWS S3 INTELLIGENT_TIERING存储类阈值策略问题及修改咨询
问题解答
1. 上传小文件的行为
当前策略会直接触发错误阻止上传。S3不会自动将小于128KB的文件切换到标准存储类,只要上传请求没有显式指定INTELLIGENT_TIERING存储类,不管文件大小,都会命中策略里的StringNotEquals条件,触发Deny效果。
2. 修改策略的方案
要让策略仅对大于等于128KB(即131072字节)的文件生效,需在Condition中添加文件大小判断,结合And逻辑同时满足两个条件:文件大小≥128KB,且存储类不是INTELLIGENT_TIERING。修改后的策略如下:
{ "Sid": "EnforceIntelligentTieringForLargeObjects", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::foo/*", "Condition": { "And": [ { "NumericGreaterThanEquals": { "s3:content-length": "131072" } }, { "StringNotEquals": { "s3:x-amz-storage-class": "INTELLIGENT_TIERING" } } ] } }
关键说明:
s3:content-length用于获取上传文件的字节大小,128KB换算为字节是131072And条件确保只有同时满足「文件≥128KB」和「未指定INTELLIGENT_TIERING存储类」时,才会触发Deny- 小于128KB的文件即使不指定存储类,也不会被阻止,会默认使用S3标准存储类
内容的提问来源于stack exchange,提问作者Alex Reynolds
相关产品推荐
相关产品推荐

