S3使用rest API进行签名文件上传出现403问题

问题

在使用s3的rest api进行签名请求头文件上传的时候,代理服务器出现了403问题

原因

必须将指定的所有签名请求头,都带给aws的s3服务器才能正常返回200响应。
如下为请求头信息:

POST /86/1792/19-012-0100.mp4?uploads= HTTP/1.1
Host: xxxx.s3-ap-southeast-1.amazonaws.com
Accept: */*
Authorization: AWS4-HMAC-SHA256 Credential=ASIAX3AQ4GJKKWVJVDVU/20210903/ap-southeast-1/s3/aws4_request, SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date;x-amz-security-token, Signature=10db1255b5ed2f60f1e78225f2695cf48126636c8329800271d116bab4e9fc9c
X-Amz-Date: 20210903T063022Z
X-Amz-Security-Token: IQoJb3JpZ2luX2VjEN///wEaDmFwLXNvdXRoZWFzdC0xIkYwRAIgK/iu+O2gEqEHc5qNR0AgK3dQZK1oCd1D25SsrtGrpEYCIGuodZx7cxPy5j0qWbMd3X0U3UZmeUNn6C2OYQKBq+fRKu4CCCgQARoMNTM5MDUzNzk3OTcyIgyY3sF0l16O08Tg5+sqywIK45HJxpyarfBqkZtOTFFQOX/3FS1SOHKfYznBOJ+H/2pdCnNbfuBXQG99TEWJe6jvBfrjijts7WDpRuOUKFrVtqvz59x+DMVfZoJHc0hLuX6X+KyRZwHwZggVIu1PDYcm3SoMlbt14W9k6HU9yc9ctAwEivVNN5EPgf4iLDtF3aYCniM21MeIdTMYf8wUDw5LUMYxlG+qCLrCvg95cgx96e8B0Y7Psai4hu+OPKbwt8ASF3oRng61qbIb7qtVbq2y/3cfij9cS9z+kBusLgGXJC0KTO1qzvP+X0i9M/VOJgA5Y0WcneGe+n+AaWtE/FC0Z8r4dhjJlYL9zI8ODAEHOWBI1HSEN07fSb2+AVQqzI6sDoWejy0to5j7Rr601UwelMTfXDnK/pleAeO9TZZ0K4ZUx7SvnGwWiwrTY8IISVSjRAGVuXXXHAS0MOWBx4kGOp4Bzabd4lnAw81D9G9bUnHfTQOGRTtLBdY5CrYpsTiy5Ofp0rkMewpzPnfac8KwGEp96gvs0oFBFNGGS1jtPUi6TYPFraAMaofjCKt61oxG4LiV23lixS6zCKm+BfS7n7nGH4qtY46WhN7tBhzbe7yUQaeWHAmIUfMOLbBQ+Up77Zd9lvIQDQnBvWtAXY0QnWHNup5uehF2rXwlXKPc/T4=
Accept-Encoding: gzip, deflate, br
Content-Type: application/octet-stream
Accept-Language: zh-cn
Content-Length: 0
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
User-Agent: aws-sdk-macos/2.13.0 Syncsolution/1 zh_CN transfer-utility
Connection: keep-alive

注意:Authorization请求头中的SignedHeaders数据,即
SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date;x-amz-security-token
这里就表示需要aws的服务器验证的请求头,也就意味着代理服务器必须将这些请求头都原封不动的带给s3服务器进行验证。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
s3 403权限问题是指在访问S3存储桶时出现了权限不足的错误。为了解决这个问题,您可以按照以下步骤进行操作: 1. 进入存储桶,点击权限,找到“阻止公有访问(存储桶设置)”选项,并确保全部不勾选。 2. 定位到“存储桶策略”,编辑策略内容,将权限设置为允许公开访问。您可以使用如下格式的策略: ``` { "Version": "2008-10-17", "Id": "Policy1380877762691", "Statement": [ { "Sid": "Stmt1380877761162", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::存储桶名称/*" } ] } ``` 注意替换其中的"存储桶名称"为您的实际存储桶名称。 如果以上方法不适用,您还可以尝试使用以下格式的存储桶策略: ``` { "Version": "2012-10-17", "Statement": [ { "Sid": "DelegateS3Access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::账号id:user/s3tos3" }, "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::存储桶名称/*", "arn:aws:s3:::存储桶名称" ] } ] } ``` 或者使用以下格式的存储桶策略: ``` { "Version": "2012-10-17", "Statement": [ { "Sid": "DelegateS3Access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::角色自己定义:user/s3tos3" }, "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::存储桶名称/*", "arn:aws:s3:::存储桶名称" ] } ] } ``` 请注意,这些策略中的"账号id"和"角色自己定义"需要替换为您的实际账号ID和角色定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值