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

使用入门

更新时间:2018-01-30 09:45:36

创建和管理角色

STS的AssumeRole接口的使用,需要在RAM中创建和管理角色,请参考RAM角色管理

使用maven创建项目

  1. mvn archetype:generate -DgroupId=com.aliyun.sts.sample \
  2. -DartifactId=sts-sdk-sample \
  3. -Dpackage=com.aliyun.sts.sample \
  4. -Dversion=1.0-SNAPSHOT

修改生成的pom.xml, 添加aliyun-java-sdk的相关依赖。以3.0.0版本为例,在 标签内加入如下内容:

  1. <dependency>
  2. <groupId>com.aliyun</groupId>
  3. <artifactId>aliyun-java-sdk-sts</artifactId>
  4. <version>3.0.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.aliyun</groupId>
  8. <artifactId>aliyun-java-sdk-core</artifactId>
  9. <version>3.5.0</version>
  10. </dependency>

aliyun-java-sdk已经加入到 https://maven-repository.com/artifact/com.aliyun

无需设置maven的settings.xml。

aliyun-java-sdk-sts使用的示例代码

  • 注意: 请修改accessKeyId和accessKeySecret为有效值。
  • 在com/aliyun/sts/sample/目录下创建Java源代码StsServiceSample.java,内容如下:
  • STS各Region Endpoint请参考服务地址
  • 样例中AssumeRole接口具体参数详解请参考API文档
  1. package com.aliyun.sts.sample;
  2. import com.aliyuncs.DefaultAcsClient;
  3. import com.aliyuncs.exceptions.ClientException;
  4. import com.aliyuncs.http.MethodType;
  5. import com.aliyuncs.profile.DefaultProfile;
  6. import com.aliyuncs.profile.IClientProfile;
  7. import com.aliyuncs.sts.model.v20150401.AssumeRoleRequest;
  8. import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse;
  9. public class StsServiceSample {
  10. public static void main(String[] args) {
  11. String endpoint = "sts.aliyuncs.com";
  12. String accessKeyId = "<access-key-id>";
  13. String accessKeySecret = "<access-key-secret>";
  14. String roleArn = "<role-arn>";
  15. String roleSessionName = "session-name";
  16. String policy = "{\n" +
  17. " \"Version\": \"1\", \n" +
  18. " \"Statement\": [\n" +
  19. " {\n" +
  20. " \"Action\": [\n" +
  21. " \"oss:*\"\n" +
  22. " ], \n" +
  23. " \"Resource\": [\n" +
  24. " \"acs:oss:*:*:*\" \n" +
  25. " ], \n" +
  26. " \"Effect\": \"Allow\"\n" +
  27. " }\n" +
  28. " ]\n" +
  29. "}";
  30. try {
  31. // Init ACS Client
  32. DefaultProfile.addEndpoint("", "", "Sts", endpoint);
  33. IClientProfile profile = DefaultProfile.getProfile("", accessKeyId, accessKeySecret);
  34. DefaultAcsClient client = new DefaultAcsClient(profile);
  35. final AssumeRoleRequest request = new AssumeRoleRequest();
  36. request.setMethod(MethodType.POST);
  37. request.setRoleArn(roleArn);
  38. request.setRoleSessionName(roleSessionName);
  39. request.setPolicy(policy); // Optional
  40. final AssumeRoleResponse response = client.getAcsResponse(request);
  41. System.out.println("Expiration: " + response.getCredentials().getExpiration());
  42. System.out.println("Access Key Id: " + response.getCredentials().getAccessKeyId());
  43. System.out.println("Access Key Secret: " + response.getCredentials().getAccessKeySecret());
  44. System.out.println("Security Token: " + response.getCredentials().getSecurityToken());
  45. System.out.println("RequestId: " + response.getRequestId());
  46. } catch (ClientException e) {
  47. System.out.println("Failed:");
  48. System.out.println("Error code: " + e.getErrCode());
  49. System.out.println("Error message: " + e.getErrMsg());
  50. System.out.println("RequestId: " + e.getRequestId());
  51. }
  52. }
  53. }

编译运行示例代码

编译

  1. mvn install

运行

  1. mvn -q exec:java -Dexec.mainClass=com.aliyun.sts.sample.StsServiceSample
本文导读目录