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 时间戳

腾讯云-服务临时密钥相关推荐

  1. Laravel 获取腾讯云COS临时密钥

    目录 1.添加腾讯云SDK 2.创建控制器 3.在控制器中引入SDK包并初始化 参数配置字段说明: 返回值字段详情: 4.创建路由并调用控制器方法 返回数据示例: 1.添加腾讯云SDK 在compos ...

  2. 实现全托管,腾讯云服务网格的架构演进

    导语 | 腾讯云服务网格(TCM)作为一个兼容 isito 的服务网格平台,已经在腾讯内外部有诸多落地案例.本文是对腾讯云高级工程师钟华.苗艳强在云+社区沙龙online的分享整理,深度解析服务网格架 ...

  3. Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信

    短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务分别来体验一下国际短信和国内短信接口. 首先,注册Twilio: https ...

  4. 腾讯云COS 服务临时密钥 JAVA SDK

    1.代码说明 对象存储 临时密钥生成及使用指引-最佳实践-文档中心-腾讯云 2.代码下载地址 qcloud-cos-sts-sdk/java at master · tencentyun/qcloud ...

  5. 腾讯云-服务违规封禁提醒解决

    前情 博主在因为获取知识的需求,开通腾讯云-轻量云服务器,在日常使用中没有什么问题,但是最近一直频繁收到邮件提醒,之前也没有想着去解决这个问题,今天又收到,就来解决了一下相关问题. (TCP22)对外 ...

  6. cloud一分钟 | 腾讯金融云总经理胡利明:腾讯云服务金融的“加减 乘除”法。...

    Hello,everyone: 9月10日早,星期一,祝大家工作愉快!祝各位老师节日快乐! 一分钟新闻时间: 完 01  微 信 群   添加小编微信:tangguoyemeng,备注"进群 ...

  7. 【小程序】腾讯云服务配置小程序流程

    配置小程序流程 [小程序]SSL配置 [小程序]Nginx配置https协议 [小程序]微信小程序配置

  8. web直传cos(腾讯云)图片视频

    1. 腾讯云控制台:登录 - 腾讯云 2. 腾讯云对象存储jssdk文档(含cos-js-sdk-v5.min.js文件 + 跨域设置访问配置):对象存储 快速入门-SDK 文档-文档中心-腾讯云33 ...

  9. 2021最新 腾讯云COS对象存储的简单使用

    叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...

最新文章

  1. linux2.0版本发布时间,Ubuntu 20.04 LTS发布时间表公布 4月23日放出最终稳定版
  2. 使用 UIWebView 来播放视频
  3. 【公司金融课堂学习笔记】2、企业融资—风投如何影响企业价值
  4. 农行校招考试计算机类,农行校招:还有4个月,流程是这样!
  5. python跳转到程序顶部_python-如何使Tkinter窗口跳到最前面?
  6. 洛谷 P2032 扫描
  7. 【数学建模】基于matlab重庆三号线地铁运行仿真【含Matlab源码 042期】
  8. mysql bytes sent_zabbix企业应用之监控3306端口的mysql
  9. hbase 实战项目
  10. C语言———求”完数“
  11. Python基础编程(一)
  12. 驱动精灵修复服务器,驱动精灵系统漏洞需要修复吗
  13. w ndows7与XP哪个好,Win7系统与Win XP系统哪个更好?Windows7与WindowsXP区别介绍-系统城·电脑系统下载之家...
  14. 记账APP:小哈记账2——注册页面的制作
  15. 学习Android笔记
  16. Python财务分析
  17. VSCode PlatformIO 开启RTTI
  18. 新生代垃圾回收器和老生代垃圾回收器
  19. 关于如何用大数据做“用户画像”调查报告(持续更新)
  20. windows安装net4.5.2

热门文章

  1. Windows优化大师7.96版下载
  2. iOS9-by-Tutorials-学习笔记五:Multitasking
  3. 电磁波的原理以及信号转换
  4. 使用Garageband给iPhone设置铃声
  5. Linux深度系统分区顺序,深度Deepin 20操作系统默认全盘分区不合理?附建设性意见探讨...
  6. Javaweb-超市订单管理系统SMBMS
  7. 摩莎(MOXA)NPort 5110串口转网口设定
  8. Kernels(similarity)核函数
  9. 重磅:2018逐浪字库样本发布
  10. 57 张 PPT 揭开机器学习本质