更新时间:2026-02-05 gmt 08:00
使用临时安全凭证-j9九游会登录
您可以使用临时安全凭证对api请求进行签名,进而通过编程方式访问对应的华为云资源。临时安全凭证提供的权限与永久访问密钥(例如iam用户永久ak/sk)相同,但存在如下区别:
- 使用临时安全凭证进行调用时,必须在调用中包含随临时安全凭证一同返回的会话令牌security_token。华为云使用该会话令牌来验证临时安全凭证的有效性。
- 临时安全凭证存在有效期。到期后,任何使用此临时安全凭证签名的调用都将失败,此时您必须生成一组新的临时安全凭证。
- 使用临时安全凭证签名调用时,请求会话可能会包含一组标签,这些标签来自调用assumeagency api时传递的会话标签参数。
您可调用sts assumeagency api来获取临时安全凭证,然后使用这些安全凭证显式地调用其他华为云服务。
将临时安全凭证用于华为云sdk
要在代码中使用临时安全凭证,可以通过调用sts的assumeagency api,获取生成的临时安全凭证,包含临时ak/sk和会话令牌security_token。然后,您可以使用生成的临时安全凭证作为对华为云服务的后续api调用的凭证。以下示例说明了使用华为云sdk发起请求获取临时安全凭证的示例代码:
public static void main(string[] args) {
// 配置认证信息
icredential auth = new basiccredentials()
// 可通过环境变量等方式配置认证信息
.withak(system.getenv("huaweicloud_sdk_ak"))
.withsk(system.getenv("huaweicloud_sdk_sk"))
// 如果未填写projectid,sdk会自动调用iam服务查询所在region对应的项目id,注意经过vpcep时,必须手动填写此参数
.withprojectid("{your projectid string}");
// 创建服务客户端
stsclient client = stsclient.newbuilder()
.withcredential(auth)
.withregion(stsregion.valueof("{region id string}"))
.build();
// 发送请求并获取响应
assumeagencyreqbody assumeagencyreqbody = new assumeagencyreqbody()
.withagencyurn("{your agency urn}")
.withagencysessionname("{agency session name}");
assumeagencyrequest request = new assumeagencyrequest().withbody(assumeagencyreqbody);
try {
assumeagencyresponse response = client.assumeagency(request);
system.out.println(response.tostring());
} catch (connectionexception | requesttimeoutexception e) {
e.printstacktrace();
} catch (serviceresponseexception e) {
e.printstacktrace();
system.out.println(e.gethttpstatuscode());
system.out.println(e.getrequestid());
system.out.println(e.geterrorcode());
system.out.println(e.geterrormsg());
}
}
您必须确保在临时安全凭证到期之前,获得一组新的临时安全凭证。
直接调用api发起请求
直接向华为云发出https api请求,同样需要先通过调用sts的assumeagency api,获取生成的临时安全凭证。使用临时安全凭证签名调用的方式,与使用永久访问密钥进行签名调用的过程是一样的,唯一不同点是需要将临时安全凭证的会话令牌security_token添加到api请求的http header中,header头为x-security-token。有关签署https api请求的更多信息,请参阅。
父主题: 临时安全凭证
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨