sts.go
1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package aliyun
import (
"fmt"
"github.com/aliyun/alibaba-cloud-sdk-go/services/sts"
"openapi/pkg/constant"
"openapi/pkg/infrastructure/log"
)
func DefaultSts() (interface{}, error) {
//构建一个阿里云客户端, 用于发起请求。
//构建阿里云客户端时,需要设置AccessKey ID和AccessKey Secret。
client, err := sts.NewClientWithAccessKey(constant.RegionID, constant.AccessKeyID, constant.AccessKeySecret)
if err != nil {
return nil, err
}
//构建请求对象。
request := sts.CreateAssumeRoleRequest()
request.Scheme = "https"
//设置参数。 指定角色的ARN。格式:acs:ram::$accountID:role/$roleName/$RoleSessionName 。 mmm-go@1373671070046453.onaliyun.com
// 配置用户 - ram角色权限-oss授权
// $accountID 用户的阿里云账号
// $RoleArn 点到ram角色 具体的权限详情 格式 格式:acs:ram::$accountID:role/$roleName/$RoleSessionName
request.RoleArn = fmt.Sprintf("acs:ram::1373671070046453:role/role-oss-sts")
// 会话名称
request.RoleSessionName = "role-oss-sts-session"
//发起请求,并得到响应。
response, e := client.AssumeRole(request)
if e != nil {
err = e
log.Error(e.Error())
}
return map[string]interface{}{
"accessKeySecret": response.Credentials.AccessKeySecret,
"expiration": response.Credentials.Expiration,
"accessKeyId": response.Credentials.AccessKeyId,
"securityToken": response.Credentials.SecurityToken,
}, nil
}