全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
阿里云SDK开发指南

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

更新时间:2018-03-21 19:26:16

为了提高应用部署的安全性的同时提升便利性,阿里云SDK支持通过实例元数据服务来获取ECS RAM角色的授权信息来访问阿里云资源和服务。使用这种方式,您部署在ECS上的应用程序,无需在SDK上配置授权信息即可访问阿里云API(即不需要配置AccessKey),通过这种方式授权的SDK,可以拥有这个ECS RAM角色的权限。

注意:确保ECS实例已经配置了RAM角色,详情参见借助于实例RAM角色访问其他云产品

代码示例

  1. using Aliyun.Acs.Core;
  2. using Aliyun.Acs.Core.Auth;
  3. using Aliyun.Acs.Core.Exceptions;
  4. using Aliyun.Acs.Core.Profile;
  5. using Aliyun.Acs.Ecs.Model.V20140526;
  6. class NoAKAccessSample
  7. {
  8. static void Main(string[] args)
  9. {
  10. // 构建一个客户端实例,用于发起请求
  11. DefaultProfile profile = DefaultProfile.GetProfile("<your-region-id>");
  12. InstanceProfileCredentialsProvider provider = new InstanceProfileCredentialsProvider(
  13. "<your-role-name>");
  14. DefaultAcsClient client = new DefaultAcsClient(profile, provider);
  15. try
  16. {
  17. // 构造请求
  18. DescribeInstancesRequest request = new DescribeInstancesRequest();
  19. request.PageSize = 10;
  20. // 发起请求,并得到 Response
  21. DescribeInstancesResponse response = client.GetAcsResponse(request);
  22. System.Console.WriteLine(response.TotalCount);
  23. }
  24. catch (ServerException ex)
  25. {
  26. System.Console.WriteLine(ex.ToString());
  27. }
  28. catch (ClientException ex)
  29. {
  30. System.Console.WriteLine(ex.ToString());
  31. }
  32. }
  33. }

其中:

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

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

本文导读目录