0002-00000004

问题描述

通过STS认证方式访问OSS时,提供了不是同一个AssumeRole接口请求返回的安全令牌(Security Token)与临时访问密钥AccessKey。

问题原因

您使用了STS的认证方式访问OSS,但是提供的安全令牌与临时访问密钥AccessKey不正确。

问题示例

  • 通过STS AccessKey IDURL签名的方式发起请求,但是请求URL中通过security-token字段携带的安全令牌与STS服务返回的安全令牌不一致。

  • 通过STS AccessKey IDHeader签名的方式发起请求,但是请求头中通过x-oss-security-token字段携带的安全令牌与STS服务返回的安全令牌不一致。

解决方案

您可以通过以下步骤实现通过STS认证的方式发起请求:

  1. 通过STSAssumeRole接口或者STSSDK获取临时访问凭证。

    临时访问凭证包括临时访问密钥(AccessKey IDAccessKey Secret)以及安全令牌(Security Token)。获取临时访问凭证的具体操作,请参见使用STS临时访问凭证访问OSS

  2. 通过SDK或者REST API的方式发起基于STS认证的请求。例如:

https://examplebucket.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=STS.nz2pc56s936****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****&security-token=CAISowJ1q6Ft5B2yfSjIr5bgIOz31blR9oWmWBfCs3kDR/xm3Imc1zz2IHxMdHJsCeAcs/Q0lGFR5/sflqJIRoReREvCUcZr8szfWcsZos2T1fau5Jko1be0ewHKeQKZsebWZ+LmNpy/Ht6md1HDkAJq3LL+bk/Mdle5MJqP+/kFC9MMRVuAcCZhDtVbLRcYgq18D3bKMuu3ORPHm3fZCFES2jBxkmRi86+ysIP+phPVlw/90fRH5dazcJW0Zsx0OJo6Wcq+3+FqM6DQlTNM6hwNtoUO1fYUommb54nDXwQIvUjfbtC5qIM/cFVLAYEhALNBofTGkvl1h/fejYyfyWwWYbkFCHiPFNr9kJCUSbr4a4sjF6zyPnPWycyCLYXleLzhxPWd/2kagAGaXG69BqwYNvrKKI3W8weP3bNc1wQDMXQfiHpFCRG6lYhh3iXFtpwH90A3sTlxzRGvi8+9p63JwrluOHWs+Fj6S6s0cOhKvKRWYE8UuWeXIvv4l6DAGwHDE8BLjLC11f5prUJgI2wb+3hwuBod32Jx+us/1p996Glao725orcb****
重要

请确保请求中使用的security-tokenOSSAccessKeyId是同一个AssumeRole接口请求返回的安全令牌与临时访问密钥AccessKey。