通过STS临时授权的账号调用服务

STS Token是一种临时身份,用来解决单点登录跨账号跨服务的资源访问问题。

如果担心RAM用户的AccessKey泄露,可以考虑通过创建RAM角色并使用STS临时授权的账号调用服务。

操作步骤

1.创建用于使用sts token方式的RAM用户,记录AccessKey ID 和 AccessKey Secret 。

2.创建RAM角色

3.为RAM角色授权AliyunDocmindFullAccess、AliyunSTSAssumeRoleAccess这两个系统策略。

完成上述操作后。即可通过sts token方式访问openApi。

构建AssumeRole对象

调用AssumeRole接口,获取一个扮演RAM角色的临时身份凭证AssumeRoleResponse 对象。

其中需要设置的参数详情,请参见AssumeRole

通过sts token发送API请求

以Java SDK调用API为例,示例代码如下:

public static void submit() throws Exception {
    Config config = new Config()
        // AssumeRoleResponse返回的 AccessKey ID
        .setAccessKeyId(accessKeyId)
        // AssumeRoleResponse返回的 securityToken
        .securityToken(securityToken)
        // AssumeRoleResponse返回的 AccessKey Secret
        .setAccessKeySecret(accessKeySecret);
    // 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
    config.endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
    Client client = new Client(config);
    // 创建RuntimeObject实例并设置运行参数
    RuntimeOptions runtime = new RuntimeOptions();
    // 替换成具体异步任务提交类API接口的入参和方法,示例方法是文档智能解析接口
    SubmitDocStructureJobAdvanceRequest advanceRequest = new SubmitDocStructureJobAdvanceRequest();
    File file = new File("D:\\example.pdf");
    advanceRequest.fileUrlObject = new FileInputStream(file);
    advanceRequest.fileName = "example.pdf";
    // 4 发起请求并处理应答或异常。
    SubmitDocStructureJobResponse response = client.submitDocStructureJobAdvance(advanceRequest, runtime);
}

其他接口和语言SDK类似,主要改动为在构建Config信息时,分别将securityToken设置为AssumeRoleResponse返回的 securityToken、accessKeyId设置为AssumeRoleResponse返回的 AccessKey ID、accessKeySecret设置为AssumeRoleResponse返回的 AccessKey Secret。