aliyun oss sts授权访问Can not find endpoint to access

官方文档 - STS临时授权访问

STS的优势如下:
  • 您无需透露您的长期密钥(AccessKey)给第三方应用,只需生成一个访问令牌并将令牌交给第三方应用。您可以自定义这个令牌的访问权限及有效期限。
  • 您无需关心权限撤销问题,访问令牌过期后自动失效。

项目场景:给客户端临时Token
遇到的错误:Can not find endpoint to access
解决办法:aliyun-java-sdk-core包版本问题,我这里从3.7.1改为3.0.0就好了

  com.aliyun
  aliyun-java-sdk-sts
  3.0.0


  com.aliyun
  aliyun-java-sdk-core
  3.0.0


其他需要注意的问题:

  • regionId需要填写正确 regionId文档
  • ARN:即角色的ID , 该参数在新建RAM角色后基本信息中

贴个代码
// 创建一个 Aliyun Acs Client, 用于发起 OpenAPI 请求
IClientProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);

// 创建一个 AssumeRoleRequest 并设置请求参数
final AssumeRoleRequest request = new AssumeRoleRequest();
//请求方式
request.setMethod(com.aliyuncs.http.MethodType.POST);
request.setProtocol(com.aliyuncs.http.ProtocolType.HTTPS);
//角色Arn
request.setRoleArn(roleArn);
//用来标识临时访问凭证的名称 可根据客户端+用户id生成
request.setRoleSessionName(roleSessionName);
//额外权限, 可为null
request.setPolicy(policy);
//设置临时访问凭证的有效期,单位是秒,最小值为900
request.setDurationSeconds(durationSeconds);
final AssumeRoleResponse response = client.getAcsResponse(request);
//token
System.out.println("SecurityToken:" + response .getCredentials().getSecurityToken()));

你可能感兴趣的:(aliyun oss sts授权访问Can not find endpoint to access)