访问被拒绝:根据策略无效:策略已过期



尝试使用 http post 进行浏览器上传时,我收到错误:

(Error)
(Code)AccessDenied(/Code)
(Message) Invalid according to Policy: Policy expired.
(/Message)
(RequestId) 6C79F2BC4E51766A (/RequestId)
(HostId) 
4uzKezeAmS/y0EAz47QevCu9Jh/3ivPxYRbOYn/Df+JoQnAgXNK+faFOmkDSlOukwynxUPzp4Uk= 
(/HostId)
(/Error)

我尝试更改我的系统时钟时间, 我检查了到期时间设置为当前日期,未来日期长达 5 分钟、1 天、1 个月、1 年

发布政策是:

{  "expiration": "2019-06-06T13:45:00.000Z",
"conditions": [
{"bucket": "tokendatabase"},
["starts-with", "$key", "user/user1/"],
{"acl": "public-read-write"},
{"success_action_redirect": ""},
["starts-with", "$Content-Type", "image/"],
{"x-amz-meta-uuid": "14365123651274"},
{"x-amz-server-side-encryption": "AES256"},
["starts-with", "$x-amz-meta-tag", ""],
{"x-amz-credential": "<Access KEY>/20180122/us-east-2/s3/aws4_request"},
{"x-amz-algorithm": "AWS4-HMAC-SHA256"},
{"x-amz-date": "20180122T000000Z" }
]
}

您告诉服务您大约三个月前签署了此策略:

{"x-amz-credential": "<Access KEY>/20180122/us-east-2/s3/aws4_request"},
{"x-amz-date": "20180122T000000Z" }

它现已过期,因为 2018-01-22 的凭据仅在 2018-01-30 之前有效。

您在签名计算中使用的签名密钥的有效期最长为 7 天。

https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html

上述引用的来源来自文档中的不同上下文,但在此处适用。 与签名 V4 一起使用的签名密钥与您签署请求的日期(或您声称签署请求的日期)、AWS 区域和特定服务相关联,并且在任何其他上下文中无效,包括过去超过 7 天(如果在"将来,",相对于您提供的日期)。

来自x-amz-credentialx-amz-date的值需要就日期部分相互匹配,并且应从签署策略时的系统时钟派生。

最新更新