AWS S3存储桶StringLike条件配置UserAgent匹配Home或House的OR规则
解决方案
你之前配置的*Home*,*House*写法不生效,是因为AWS IAM策略的StringLike条件会将拼接的字符串视为单个匹配规则,只有UserAgent同时包含Home,House连续字符时才会匹配,自然不符合预期。
在AWS IAM策略中,同一个条件键下传入多个值时,默认采用OR逻辑,只要匹配任意一个值即可满足条件,你只需将aws:UserAgent的匹配值改为数组格式即可,调整后的完整策略如下:
{ "Version": "2012-10-17", "Id": "Policy150267299", "Statement": [ { "Sid": "Stmt102603643", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::someurl/*", "Condition": { "StringLike": { "aws:UserAgent": ["*Home*", "*House*"] } } } ] }
注:顺便修正了原策略中错误的版本号,AWS IAM策略当前仅支持2012-10-17和已废弃的2008-10-17两个版本,原填写的2011-11-15为无效版本号,可能会导致策略加载异常
内容的提问来源于stack exchange,提问作者birdcage
相关产品推荐
相关产品推荐

