阿里云STS认证,golang版本

本文详细介绍了如何通过阿里云STS(Security Token Service)为RAM(Resource Access Management)角色获取临时访问令牌,包括设置区域、使用RAM App ID和Secret、创建角色、分配权限并生成session。
摘要由CSDN通过智能技术生成

记录一下生成sts临时令牌的过程:


package main

import (
	"fmt"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/sts"
)

// regionID 是 cn-beijing / cn-shenzhen 这类型的,目前具体支持哪几种还没找到,根据自己的oss区域可以尝试一下
const regionID = "cn-beijing"
// RAM创建在右上角用户->访问控制中->用户->生成appID及appSecret->授权 AliyunSTSAssumeRoleAccess
// 一定是RAM的appID及appSecret,而不是主账号的,两个账号的还是挺像的,要注意,一定是要确认是RAM用户的
const ramAppID = "xxx"
const ramAppSecret = "xxx"
// 创建角色->默认配置->复制arn
const apn = "xxx"
// 权限管理->权限策略管理->创建权限->权限内容(内容如下)->回到角色,把创建好的权限授权给角色
/*
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "oss:PutObject"
            ],
            "Resource": [
                "acs:oss:*:*:bucketname/",
                "acs:oss:*:*:bucketname/*"
            ]
        }
    ]
}
*/
// 随便填一个名字
const sessionName = "oss-session"

// ststoken
func main() {
	client, err := sts.NewClientWithAccessKey(regionID, ramAppID, ramAppSecret)

	request := sts.CreateAssumeRoleRequest()
	request.Scheme = "https"

	request.RoleArn = apn
	request.RoleSessionName = sessionName

	response, err := client.AssumeRole(request)
	if err != nil {
		fmt.Print(err.Error())
	}
	fmt.Printf("response is %#v\n", response)
}

结果如下:

&sts.AssumeRoleResponse
{
  BaseResponse:(*responses.BaseResponse)(0xc000068700), 
  RequestId:"xxx", 
  AssumedRoleUser:sts.AssumedRoleUser {
    AssumedRoleId:"xxx", 
    Arn:"acs:ram::xxx"
  }, 
  Credentials:sts.Credentials {
    AccessKeySecret:"xxx", 
    Expiration:"2021-08-22T03:57:13Z", 
    AccessKeyId:"xxx", 
    SecurityToken:"xxx"
   }
}

后续就能够对接相应的其他接口了。

运行尝试一下,懒人直达

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xyccstudio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值