全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
阿里云SDK开发指南

配置RamRole实现在ECS实例上的“无AK访问”

更新时间:2018-02-11 18:42:54

为了在提高应用部署的安全性的同时提升便利性,阿里云SDK支持通过实例元数据(ECS Metadata Service)服务来获取RAM角色的授权信息,访问阿里云资源和服务。

在这种方式中,您部署在ECS上的应用程序,无需在SDK上配置授权信息即可访问阿里云API(“无AK”访问)。通过这种方式授权的SDK,可以拥有这个RAM角色的权限。

说明:ECS“无AK”访问是基于STS Token实现的,所以也受限于STS Token的使用条件,您需要确认目标产品是否支持该验证方式,详细信息参见支持STS Token的产品

如果要使用这种方式,您需要首先创建一个与RAM角色关联的ECS实例。具体步骤请参考文档借助于实例RAM角色访问其它云产品API

代码示例

  • 不使用自定义配置:

    1. // 如果您不需要自定义config,我们提供了一个快捷入口来构建client
    2. client, err = ecs.NewClientWithEcsRamRole("region-id", "role-name")
  • 使用自定义配置:

    1. // 如果您需要自定义config,您可以使用下列代码来构建client
    2. config := sdk.NewConfig().WithEnableAsync(true)
    3. // 创建credential对象
    4. credential := credentials.NewEcsRamRoleCredential("role-name")
    5. // 初始化client
    6. client, err := ecs.NewClientWithOptions("region-id", config, credential)

其中:

  • role-name是与ECS实例关联的RAM角色名称。

  • region-id是您正在使用的地域ID,详情参见地域列表

    说明:这个Region ID是目标服务(且RAM角色有权访问)的API所在的地域,不一定是这个ECS实例的地域ID。

本文导读目录