美文网首页
aliyun oss sts授权访问Can not find e

aliyun oss sts授权访问Can not find e

作者: Kamiya_ | 来源:发表于2021-03-16 17:33 被阅读0次

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

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

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

    其他需要注意的问题:

    • 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 e

          本文链接:https://www.haomeiwen.com/subject/oevdcltx.html