tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表
文档日志服务操作指南权限管理使用临时密钥访问 CLS

使用临时密钥访问 CLS

PDF
聚焦模式
字号
最后更新时间: 2025-10-22 17:08:41
注意:
使用临时密钥授权访问时,请务必根据业务需要,按照最小权限原则进行授权。如果您直接授予所有资源(resource:*),或者所有操作(action:*)权限,则存在由于权限范围过大导致的数据安全风险。
您在申请临时密钥时,如果指定了权限范围,那么申请到的临时密钥也只能在权限范围内进行操作。例如您在申请临时密钥时,指定了可以往日志主题 e621fdb8-16f4-41cf-bc73-xxxxxxxxx1 上写日志的权限范围,那么申请到的密钥不能将日志信息写入到 e621fdb8-16f4-41cf-bc73-xxxxxxxxx2,也不能从 e621fdb8-16f4-41cf-bc73-xxxxxxxxx2 中检索日志。

临时密钥

临时密钥(临时访问凭证)是通过 CAM 云 API 提供的接口,获取到权限受限的密钥。
CLS API 可以使用临时密钥计算签名,用于发起 CLS API 请求。
CLS API 请求使用临时密钥计算签名时,需要用到获取临时密钥接口返回信息中的三个字段,如下:
secretId:临时证书密钥 ID
secretKey:临时证书密钥 Key
secretToken:临时证书密钥 Token

使用临时密钥的优势

Web、iOS、Android 使用 CLS 时,通过固定密钥计算签名方式不能有效地控制权限,同时把永久密钥放到客户端代码中有极大的泄露风险。如若通过临时密钥方式,则可以方便、有效地解决权限控制问题。 例如,在申请临时密钥过程中,可以通过参见 子账号授权策略,限制操作和资源,将权限限制在指定的范围内。

获取临时密钥

获取临时密钥,可以直接请求 STS 云 API 的方式获取。

使用临时密钥访问 CLS

以 CLS Java SDK 为例,使用临时密钥访问 CLS 示例如下:
说明:
运行如下示例前,请前往 Github 项目 获取 Java SDK 安装包。
package com.tencentcloudapi.cls;

import com.tencentcloudapi.cls.producer.errors.ProducerException;
import org.junit.Test;

public class AsyncProducerClientTest {

@Test
public void testAsyncProducerClient() throws ProducerException, InterruptedException {
String endpoint = "ap-guangzhou.cls.tencentcs.com";
// API密钥 secretId,必填
String secretId = "";
// API密钥 secretKey,必填
String secretKey = "";
// API token,必填
String secretToken = "";
// 日志主题ID,必填
String topicId = "";

final AsyncProducerConfig config = new AsyncProducerConfig(endpoint, secretId, secretKey,
NetworkUtils.getLocalMachineIP(), secretToken);

// 构建一个客户端实例
final AsyncProducerClient client = new AsyncProducerClient(config);

for (int i = 0; i < 10000; ++i) {
List<LogItem> logItems = new ArrayList<>();
int ts = (int) (System.currentTimeMillis() / 1000);
LogItem logItem = new LogItem(ts);
logItem.PushBack(new LogContent("__CONTENT__", "你好,我来自深圳|hello world"));
logItem.PushBack(new LogContent("city", "guangzhou"));
logItem.PushBack(new LogContent("logNo", Integer.toString(i)));
logItem.PushBack(new LogContent("__PKG_LOGID__", (String.valueOf(System.currentTimeMillis()))));
logItems.add(logItem);
client.putLogs(topicId, logItems, result -> System.out.println(result.toString()));
}
client.close();
}
}


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈