AWS S3跨地域PutObject Access Denied问题排查求助
S3跨地域上传权限问题解答
1. 桶策略是否需要添加s3:PutObject操作?
是的,当前你的桶策略仅允许读取类操作(s3:GetObject、s3:GetObjectAcl、s3:ListBucket),完全未包含上传所需的s3:PutObject权限(若需设置对象ACL,还需添加s3:PutObjectAcl)。
你和美国东海岸同事能上传的原因,大概率是你们使用的IAM凭证对应的身份(如IAM用户)本身被附加了允许s3:PutObject的IAM权限策略,此时IAM权限优先级覆盖了桶策略的限制;但欧洲同事出现报错,说明还有时间同步或区域配置这类叠加因素影响。
2. 地域差异是否会导致HMAC认证令牌的时间戳问题?
会。AWS HMAC签名验证要求请求的时间戳与AWS服务器的UTC时间偏差不得超过15分钟。如果欧洲同事的本地系统时间未同步到标准UTC时间(比如时区设置错误、系统时钟偏移过大),就会触发签名验证失败,返回Access Denied错误——这种情况在跨时区办公场景中非常常见。
3. 如何配置让合法凭证用户不受地域/时区限制上传?
按以下步骤调整:
- 补充桶策略权限:在桶策略的
Action数组中添加s3:PutObject(及s3:PutObjectAcl,若需设置对象权限),确保桶层面明确允许上传操作。修改后的桶策略示例:{ "Version": "2012-10-17", "Id": "Policy12345", "Statement": [ { "Sid": "Stmt6789", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:ListBucket", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*" ] } ] } - 强制时间同步:要求所有用户的客户端系统同步到NTP服务器,确保本地时间与UTC时间偏差在15分钟内。Linux/macOS可使用
chrony或ntpd服务,Windows可开启系统自动时间同步功能。 - 确认区域配置:让欧洲同事检查AWS CLI的区域配置,确保指向桶所在的
us-west-2区域。可运行aws configure get region确认,或在上传命令中显式指定--region us-west-2参数。 - 验证IAM权限一致性:确认你们使用的IAM凭证对应的权限策略包含
s3:PutObject及相关操作,避免仅依赖桶策略的权限控制,确保所有使用该凭证的用户都能获得上传权限。
内容的提问来源于stack exchange,提问作者Alex Reynolds
相关产品推荐
相关产品推荐

