文档

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

更新时间:

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

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

RAM用户创建及角色授权

1.创建用于使用STS Token方式的RAM用户

记录AccessKey ID 和 AccessKey Secret。

2.创建RAM角色

3.为RAM角色授权

为第2步创建的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接口的入参和方法,示例方法是出口报关单识别接口
    SubmitExportDeclarationSheetExtractJobAdvanceRequest advanceRequest = new SubmitExportDeclarationSheetExtractJobAdvanceRequest();
    File file = new File("D:\\example.pdf");
    advanceRequest.fileUrlObject = new FileInputStream(file);
    advanceRequest.fileName = "example.pdf";
    // 4 发起请求并处理应答或异常。
    SubmitExportDeclarationSheetExtractJobResponse response = client.submitExportDeclarationSheetExtractJobAdvance(advanceRequest, runtime);
}

其他接口和语言SDK类似,主要改动为在构建Config信息时,分别将:

securityToken设置为AssumeRoleResponse返回的 securityToken

accessKeyId设置为AssumeRoleResponse返回的 AccessKey ID

accessKeySecret设置为AssumeRoleResponse返回的 AccessKey Secret

  • 本页导读 (0)
文档反馈