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

示例

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

  1. <?php
  2. /*
  3. * 在您使用STS SDK前,请仔细阅读RAM使用指南中的角色管理部分,并阅读STS API文档
  4. *
  5. */
  6. include_once 'aliyun-php-sdk-core/Config.php';
  7. use Sts\Request\V20150401 as Sts;
  8. define("REGION_ID", "cn-shanghai");
  9. define("ENDPOINT", "sts.cn-shanghai.aliyuncs.com");
  10. // 只允许子用户使用角色
  11. DefaultProfile::addEndpoint(REGION_ID, REGION_ID, "Sts", ENDPOINT);
  12. $iClientProfile = DefaultProfile::getProfile(REGION_ID, "<acccess-key-id>", "<access-key-secret>");
  13. $client = new DefaultAcsClient($iClientProfile);
  14. // 角色资源描述符,在RAM的控制台的资源详情页上可以获取
  15. $roleArn = "<role-arn>";
  16. // 在扮演角色(AssumeRole)时,可以附加一个授权策略,进一步限制角色的权限;
  17. // 详情请参考《RAM使用指南》
  18. // 此授权策略表示读取所有OSS的只读权限
  19. $policy=<<<POLICY
  20. {
  21. "Statement": [
  22. {
  23. "Action": [
  24. "oss:Get*",
  25. "oss:List*"
  26. ],
  27. "Effect": "Allow",
  28. "Resource": "*"
  29. }
  30. ],
  31. "Version": "1"
  32. }
  33. POLICY;
  34. $request = new Sts\AssumeRoleRequest();
  35. // RoleSessionName即临时身份的会话名称,用于区分不同的临时身份
  36. // 您可以使用您的客户的ID作为会话名称
  37. $request->setRoleSessionName("client_name");
  38. $request->setRoleArn($roleArn);
  39. $request->setPolicy($policy);
  40. $request->setDurationSeconds(3600);
  41. try {
  42. $response = $client->getAcsResponse($request);
  43. print_r($response);
  44. } catch(ServerException $e) {
  45. print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
  46. } catch(ClientException $e) {
  47. print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
  48. }
  49. ?>
本文导读目录