如何配置S3存储桶策略仅允许指定Lambda服务角色执行PutObjects操作
S3存储桶策略正确写法
你需要的完整存储桶策略如下,替换对应占位符后直接配置即可生效:
{ "Version":"2012-10-17", "Statement":[ { "Sid":"RestrictPutObjectToLambdaOnly", "Effect": "Deny", "Action":["s3:PutObject"], "Resource": ["arn:aws:s3:::my-bucket/*"], "Condition": { "StringNotEquals": { "aws:PrincipalArn": "<替换为你的Lambda服务角色的完整ARN>" } } } ] }
配置说明
- 占位符
<替换为你的Lambda服务角色的完整ARN>的格式参考:arn:aws:iam::你的AWS账户ID:role/你的Lambda角色名,可在IAM控制台的角色详情页复制完整ARN - 策略逻辑:这条拒绝规则会拦截所有针对
my-bucket内对象的上传请求,只有发起请求的主体是你指定的Lambda角色时才会跳过该拒绝规则,完全匹配你要的权限限制需求 - 该规则仅限制
s3:PutObject上传操作,所有用户的下载、删除对象权限不会受到任何影响
注意事项
- 请确认你的Lambda角色本身已经拥有
s3:PutObject的允许权限(你提到已经配置过即可正常生效) - 原示例中多余的
arn:aws:s3:::my-bucket*资源配置已删除,避免误匹配到其他名称类似的存储桶
内容的提问来源于stack exchange,提问作者smallbirds
相关产品推荐
相关产品推荐

