閱讀1134 返回首頁    go 小米MIX


使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲

OSS可以通過阿裏雲STS服務,臨時進行授權訪問。更多有關STS的內容請參考:阿裏雲STS 使用STS時請按以下步驟進行:

  1. 在官網控製台創建子賬號,參考OSS STS
  2. 在官網控製台創建STS角色並賦予子賬號扮演角色的權限,參考OSS STS
  3. 使用子賬號的AccessKeyId/AccessKeySecret向STS申請臨時token
  4. 使用臨時token中的認證信息創建OSS的Client
  5. 使用OSS的Client訪問OSS服務

在使用STS訪問OSS時,需要設置stsToken參數,如下麵的例子所示:


var OSS = require('ali-oss');
var STS = OSS.STS;
var co = require('co');

var sts = new STS({
  accessKeyId: '<子賬號的AccessKeyId>',
  accessKeySecret: '<子賬號的AccessKeySecret>'
});

co(function* () {
  var token = yield sts.assumeRole(
    '<role-arn>', '<policy>', '<expiration>', '<session-name>');

  var client = new OSS({
    region: '<region>',
    accessKeyId: token.credentials.AccessKeyId,
    accessKeySecret: token.credentials.AccessKeySecret,
    stsToken: token.credentials.SecurityToken,
    bucket: '<bucket-name>'
  });
}).catch(function (err) {
  console.log(err);
});

在向STS申請臨時token時,還可以指定自定義的STS Policy。這樣申請的臨時權 限是所扮演角色的權限與Policy指定的權限的交集。下麵的例子將通過指定 STS Policy申請對my-bucket的隻讀權限,並指定臨時token的過期時間為15分 鍾:

var OSS = require('ali-oss');
var STS = OSS.STS;
var co = require('co');

var sts = new STS({
  accessKeyId: '<子賬號的AccessKeyId>',
  accessKeySecret: '<子賬號的AccessKeySecret>'
});

var policy = {
  "Statement": [
    {
      "Action": [
        "oss:Get*"
      ],
      "Effect": "Allow",
      "Resource": ["acs:oss:*:*:my-bucket/*"]
    }
  ],
  "Version": "1"
};

co(function* () {
  var token = yield sts.assumeRole(
    '<role-arn>', policy, 15 * 60, '<session-name>');

  var client = new OSS({
    region: '<region>',
    accessKeyId: token.credentials.AccessKeyId,
    accessKeySecret: token.credentials.AccessKeySecret,
    stsToken: token.credentials.SecurityToken,
    bucket: '<bucket-name>'
  });
}).catch(function (err) {
  console.log(err);
});

最後更新:2016-11-23 16:04:10

  上一篇:go 自定義域名綁定__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲
  下一篇:go 設置訪問權限(ACL)__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲