文档

签名机制

更新时间:

为保证API的安全调用,在调用API时会对每个API请求通过签名(Signature)进行身份验证。当使用Alibaba Cloud SDK for Java访问阿里云服务时,您需要提供阿里云账号进行身份验证。

概述

目前,Alibaba Cloud SDK for Java支持以下几种身份验证方式。

验证方式

说明

AccessKey (推荐)

使用一对AccessKey ID和AccessKey Secret访问。

StsToken

使用STS Token访问

以AccessKey为例说明如何设置身份凭证。为了保证您的账号安全,建议您使用RAM账号来访问阿里云服务。阿里云账号的AccessKey对拥有的资源有完全的权限。RAM账号由阿里云账号授权创建,仅有对特定资源限定的操作权限。请参见为RAM用户创建访问密钥创建RAM账号的AccessKey。

使用AccessKey作为访问凭据,需要在初始化Client时设置凭证。示例代码如下:

说明

注意确保包含AccessKey的代码不会泄漏(例如提交到外部公开的GitHub项目),否则将会危害您的阿里云账号的信息安全。

示例

package com.testprogram;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.ecs.model.v20140526.*;
public class Main {
    public static void main(String[] args){
        // 创建DefaultAcsClient实例并初始化
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",               // 地域ID
            "<your-access-key-id>",      // RAM账号的AccessKey ID
            "<your-access-key-secret>"); // RAM账号AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);
        // 创建API请求并设置参数
        DescribeInstancesRequest request = new DescribeInstancesRequest();
        request.setPageSize(10);
        // 发起请求并处理应答或异常
        DescribeInstancesResponse response;
        try {
            response = client.getAcsResponse(request);
            for (DescribeInstancesResponse.Instance instance:response.getInstances()) {
                System.out.println(instance.getPublicIpAddress());
            }
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}