阿里云STS临时授权访问OSS

RAM帐号
  • 阿里云控制台添加RAM子用户,附加AliyunSTSAssumeRoleAccess 策略并下载${AccessKey ID}${AccessKey Secret}
RAM角色
  • 阿里云控制台新建RAM角色,添加OSS相关策略并记录下该角色的${ARN}

阿里云CLI方式

  • 下载安装:https://help.aliyun.com/document_detail/121541.html?spm=a2c4g.11186623.6.545.583d1803KAEO2k
获取临时授权配置信息
  • 参数解释
    • RoleArn:RAM角色的ARN
    • RoleSessionName:自定义名称,便于审计管理
    • DurationSeconds:过期时间,默认3600秒,最小900
  • 命令实例
aliyun sts AssumeRole \
--RoleArn  ${ARN}
--RoleSessionName Fantasy 
--DurationSeconds 1200

Python方式

  • 安装Aliyun Python SDK

使用官方pip方式安装

## 先安装依赖,cryptography>=2.6.0
pip install cryptography

## 安装阿里云SDK核心库
pip install aliyun-python-sdk-core

## 安装阿里云STS服务SDK
pip install aliyun-python-sdk-sts
  • 脚本示例:get_sts_token.py
#!/usr/bin/env python
#coding=utf-8

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdksts.request.v20150401.AssumeRoleRequest import AssumeRoleRequest

#构建一个阿里云客户端,用于发起请求。
#构建阿里云客户端时需要设置AccessKey ID和AccessKey Secret。
client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou')

#构建请求。
request = AssumeRoleRequest()
request.set_accept_format('json')

#设置参数。
request.set_RoleArn("<RoleArn>")
request.set_RoleSessionName("<RoleSessionName>")

#发起请求,并得到响应。
response = client.do_action_with_exception(request)
# python2:  print(response)
print(str(response, encoding='utf-8'))           

返回结果示例

{
	"RequestId": "5A5FA4E2-9144-4F78-835F-16A103AA50EE",
	"AssumedRoleUser": {
		"Arn": "acs:ram::135525***********:role/sts-test/ccccc",
		"AssumedRoleId": "380073601646468600:ccccc"
	},
	"Credentials": {
		"SecurityToken": "CAIS7AF1q6Ft5B2yfSjIr5f/L/Dh3rcZNB0cbgQDHWU0C+hZGKmR481BKaKJmXcFnhunJZ49mTLEePPTGMNZmOluQUDLA+VRW5ajxrHcpfIhAYxuYRKXrWM4TGUHeo+B2yanBloQ1hk2hyxL2iy8mHkHrkgUb91/UeqvaaQPHmTbE1bMYvDYrojbcrJvqQjHIB0XUQqvcq1p4j0Czco9SQD2NW5xi7KOfO+rVtVlQoOfBmR/YV8aSsyqIh57ONt0Nz+cWopMoSu1vd7BL0RN4NuzmALhhnrQ13zu5iBJ+qHwyoagcaB9TpbFhDWiRjcxhauv6ni4SRARacP3QsouyubxdeEFIDlYFDDvZrzLcqLUOswPvsYTseJIDThKBa8",
		"AccessKeyId": "STS.NTJdJU3h***********",
		"AccessKeySecret": "Cjy8Wx7SRo9aKvZ3D******************",
		"Expiration": "2021-06-03T03:07:54Z"
	}
}
  • 将配置更新至 ~/.ossutilconfig
[root@fantasy ~]# ossutil64 ls oss://${bucket_name}/
LastModifiedTime                   Size(B)  StorageClass   ETAG                                  ObjectName
2021-06-02 21:31:33 +0800 CST        11248      Standard   D4BCD66351A14C887811314FE2C38890      oss://${bucket_name}/get_helm.sh
Object Number is: 1

0.117287(s) elapsed
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值