AWS IAM策略中s3:PutObject*与s3:PutObject的权限差异是什么?
AWS IAM权限策略Action字段通配符匹配规则差异
通用匹配规则
- 不带通配符的Action:采用完全精确匹配规则,仅对应名称完全一致的AWS服务操作,不会覆盖任何带后缀的同前缀操作。
- 末尾带
*通配符的Action:采用前缀匹配规则,*可以匹配任意长度的任意字符,所有前缀和*前面的字符串完全一致的操作都会被包含在内。
你举例的两个S3操作权限的范围差异
s3:PutObject覆盖范围
仅匹配S3的标准单文件上传操作本身,仅允许普通PUT请求上传对象的操作,不包含任何衍生的后缀操作。
s3:PutObject*覆盖范围
包含所有以s3:PutObject为前缀的S3操作,除了基础的s3:PutObject之外,还会覆盖这些常见操作:
s3:PutObjectAcl:修改对象访问控制列表s3:PutObjectTagging:为对象添加/修改标签s3:PutObjectLegalHold:设置对象法律保留状态s3:PutObjectRetention:配置对象保留周期s3:PutObjectVersionAcl:修改指定版本对象的访问控制列表s3:PutObjectVersionTagging:为指定版本对象添加/修改标签- 其他所有以
s3:PutObject开头的S3操作
注意事项
AWS IAM的Action名称大小写敏感,通配符匹配也严格遵循大小写规则,比如小写的s3:putobject*不会匹配任何大写开头的s3:PutObject相关操作。
从最小权限原则出发,非必要场景不建议随意在Action末尾添加通配符,避免出现过度赋权的安全风险。
内容的提问来源于stack exchange,提问作者bigruno
相关产品推荐
相关产品推荐

