腾讯云-服务临时密钥
1、访问管理
腾讯云 COS 服务在使用时需要对请求进行访问管理。通过临时密钥机制,您可以临时授权您的 App 访问您的存储资源,而不会泄露您的永久密钥。密钥的有效期由您指定,过期后自动失效。通常,我们都不建议您把永久密钥放到客户端代码中。本文主要介绍如何在后台快速搭建一个临时密钥服务,通过生成的临时密钥来对上传或者下载请求进行签名,从而保证您数据的安全性。
2、架构
整体架构图如下所示:
其中:
应用 APP:即用户手机上的 App。
COS:腾讯云对象存储,负责存储 App 上传的数据。
CAM:腾讯云访问管理,用于生成 COS 的临时密钥。
应用服务器:用户自己的后台服务器,这里用于获取临时密钥,并返回给应用 App。
3、获取永久密钥
临时密钥需要通过永久密钥才能生成。请登录 腾讯云访问管理控制台 获取,包含:
- SecretId
- SecretKey
4、如何快速搭建临时密钥服务
4.1 集成java SDK 到 您的后台服务
如果您已经有独立的后台服务,我们建议您直接集成我们提供的 SDK 到现在的后台服务中。
使用 maven 集成方式,在 Java 工程中的 pom.xml 文件中添加如下的 maven 依赖:
<dependency><groupId>com.qcloud</groupId><artifactId>cos-sts_api</artifactId><version>3.1.0</version>
</dependency>
4.2 测试示例
获取临时密钥
package com.ybw.cos;import com.alibaba.fastjson.JSON;
import com.tencent.cloud.CosStsClient;
import com.tencent.cloud.Response;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;import java.io.IOException;
import java.util.TreeMap;/*** @author ybwei* @date 2022/3/21 14:15**/
@Slf4j
public class CosStsClientTest {/*** 基本的临时密钥申请示例,适合对一个桶内的一批对象路径,统一授予一批操作权限*/@Testpublic void testGetCredential() throws IOException {TreeMap<String, Object> config = new TreeMap<String, Object>();// 云 api 密钥 SecretIdconfig.put("secretId", "secretId");// 云 api 密钥 SecretKeyconfig.put("secretKey", "secretKey");// 设置域名//config.put("host", "sts.internal.tencentcloudapi.com");// 临时密钥有效时长,单位是秒config.put("durationSeconds", 1800);// 换成你的 bucketconfig.put("bucket", "test-1257362353");// 换成 bucket 所在地区config.put("region", "ap-beijing");// 可以通过 allowPrefixes 指定前缀数组, 例子: a.jpg 或者 a/* 或者 * (使用通配符*存在重大安全风险, 请谨慎评估使用)config.put("allowPrefixes", new String[]{"*"});// 密钥的权限列表。简单上传和分片需要以下的权限,其他权限列表请看 https://cloud.tencent.com/document/product/436/31923String[] allowActions = new String[]{// 简单上传"name/cos:PutObject","name/cos:PostObject",// 分片上传"name/cos:InitiateMultipartUpload","name/cos:ListMultipartUploads","name/cos:ListParts","name/cos:UploadPart","name/cos:CompleteMultipartUpload"};config.put("allowActions", allowActions);Response response = CosStsClient.getCredential(config);log.info("response:{}", JSON.toJSONString(response));log.info(response.credentials.tmpSecretId);log.info(response.credentials.tmpSecretKey);log.info(response.credentials.sessionToken);}}
请求参数说明
必须修改参数,其他参数根据自身情况修改。
- secretId。
- secretKey。
- bucket。
- region。
字段 | 类型 | 描述 |
---|---|---|
secretId | String | 云 API 密钥 Id |
secretKey | String | 云 API 密钥 key |
durationSeconds | int | 要申请的临时密钥最长有效时间,单位秒,默认 1800,最大可设置 7200 |
bucket | String | 存储桶名称:bucketName-appid, 如 example-125000000 |
region | String | 存储桶所属地域,如 ap-guangzhou |
allowPrefix | String | 资源的前缀,可以根据自己网站的用户登录态判断允许上传的具体路径,例子: a.jpg 或者 a/* 或者 * (使用通配符*存在重大安全风险, 请谨慎评估使用) |
allowActions | String[] | 授予 COS API 权限集合, 如简单上传操作:name/cos:PutObject |
policy | String | 策略:由 allowActions、bucket、region、allowPrefix字段组成的描述授权的具体信息 |
返回值说明
{"credentials": {"sessionToken": "XiV7XGnS3ae0aT2Tsg1eLX0xAjRO8nVa2de901aac56adbbab8f82d0b86c40892k9Or7bxCDcXBmxGqtUPSerkMnBKBk6zc_4DcYs-K0kjaICbG9En2Fzj9anyjsCDhGCurkwB6F_dULedvPpxQk9HnoWGrtkJRPfZc6aMndq5H3PASqDe2nxmJvSl4BpTG8XnSQFKi9nKxSYU8hIvqWGtmoFO7MavAR73UcLsXg1SUiDOIJKYGy4b2iRZHULDfx3Jbu61smksl1Nx4IH7JOLuza8YM5XzD91FTOkZVoIDyQqSMV13K16uvIf5ICIVGlfdrCTkQ0NzbKrJkTNnAwC1ZoJ4S6058YgaYOjQkG4JjBvhJKrK_6Vvif4A8lM86OsnLth8NpiiTdRd2IwJfTLn3TlvpWAjGMWHSWN_Z6nixArV7wI4IYp786RriatpgU5VPNTF0T1iBS_C0_uaRfJYyd4PKYzEulFD84sT2OzxdVOsvsqsqgdVdSClq9DlWGcdqhrixYzVeYHHY-z-r1uuaoEfYb4csfKoBnyZDp7kUtK3-EGrYeO5aTZNU6ObAk_88YjGRQYhdKMA29QCksIL9YWo9n66BLw-3LwSWlNflMaTF9eooRRpPVW2ZkrtQ","tmpSecretId": "AKIDws3viHvKQ6MFIbA2ztvuUd9x08FyEP8dNq-AW_KSm37AsSyaTirgkjrjj7lhuS2z","tmpSecretKey": "TH1p4q9NOsGxbfYIwU23ecD7Xp6wlY4LzU2jOmIyUaE="},"expiration": "2022-03-21T06:47:12Z","expiredTime": 1647845232,"requestId": "5b93b42b-a967-48d9-b140-463ee9aa3765","startTime": 1647843432
}
字段 | 类型 | 描述 |
---|---|---|
credentials | String | 临时密钥信息 |
tmpSecretId | String | 临时密钥 Id,可用于计算签名 |
tmpSecretKey | String | 临时密钥 Key,可用于计算签名 |
sessionToken | String | 请求时需要用的 token 字符串,最终请求 COS API 时,需要放在 Header 的 x-cos-security-token 字段 |
startTime | String | 密钥的起始时间,是 UNIX 时间戳 |
expiredTime | String | 密钥的失效时间,是 UNIX 时间戳 |
腾讯云-服务临时密钥相关推荐
- Laravel 获取腾讯云COS临时密钥
目录 1.添加腾讯云SDK 2.创建控制器 3.在控制器中引入SDK包并初始化 参数配置字段说明: 返回值字段详情: 4.创建路由并调用控制器方法 返回数据示例: 1.添加腾讯云SDK 在compos ...
- 实现全托管,腾讯云服务网格的架构演进
导语 | 腾讯云服务网格(TCM)作为一个兼容 isito 的服务网格平台,已经在腾讯内外部有诸多落地案例.本文是对腾讯云高级工程师钟华.苗艳强在云+社区沙龙online的分享整理,深度解析服务网格架 ...
- Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信
短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务分别来体验一下国际短信和国内短信接口. 首先,注册Twilio: https ...
- 腾讯云COS 服务临时密钥 JAVA SDK
1.代码说明 对象存储 临时密钥生成及使用指引-最佳实践-文档中心-腾讯云 2.代码下载地址 qcloud-cos-sts-sdk/java at master · tencentyun/qcloud ...
- 腾讯云-服务违规封禁提醒解决
前情 博主在因为获取知识的需求,开通腾讯云-轻量云服务器,在日常使用中没有什么问题,但是最近一直频繁收到邮件提醒,之前也没有想着去解决这个问题,今天又收到,就来解决了一下相关问题. (TCP22)对外 ...
- cloud一分钟 | 腾讯金融云总经理胡利明:腾讯云服务金融的“加减 乘除”法。...
Hello,everyone: 9月10日早,星期一,祝大家工作愉快!祝各位老师节日快乐! 一分钟新闻时间: 完 01 微 信 群 添加小编微信:tangguoyemeng,备注"进群 ...
- 【小程序】腾讯云服务配置小程序流程
配置小程序流程 [小程序]SSL配置 [小程序]Nginx配置https协议 [小程序]微信小程序配置
- web直传cos(腾讯云)图片视频
1. 腾讯云控制台:登录 - 腾讯云 2. 腾讯云对象存储jssdk文档(含cos-js-sdk-v5.min.js文件 + 跨域设置访问配置):对象存储 快速入门-SDK 文档-文档中心-腾讯云33 ...
- 2021最新 腾讯云COS对象存储的简单使用
叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...
最新文章
- linux2.0版本发布时间,Ubuntu 20.04 LTS发布时间表公布 4月23日放出最终稳定版
- 使用 UIWebView 来播放视频
- 【公司金融课堂学习笔记】2、企业融资—风投如何影响企业价值
- 农行校招考试计算机类,农行校招:还有4个月,流程是这样!
- python跳转到程序顶部_python-如何使Tkinter窗口跳到最前面?
- 洛谷 P2032 扫描
- 【数学建模】基于matlab重庆三号线地铁运行仿真【含Matlab源码 042期】
- mysql bytes sent_zabbix企业应用之监控3306端口的mysql
- hbase 实战项目
- C语言———求”完数“
- Python基础编程(一)
- 驱动精灵修复服务器,驱动精灵系统漏洞需要修复吗
- w ndows7与XP哪个好,Win7系统与Win XP系统哪个更好?Windows7与WindowsXP区别介绍-系统城·电脑系统下载之家...
- 记账APP:小哈记账2——注册页面的制作
- 学习Android笔记
- Python财务分析
- VSCode PlatformIO 开启RTTI
- 新生代垃圾回收器和老生代垃圾回收器
- 关于如何用大数据做“用户画像”调查报告(持续更新)
- windows安装net4.5.2