日志服务 使用临时密钥访问 CLS

Web、iOS、Android 使用 CLS 时,通过固定密钥计算签名方式不能有效地控制权限,同时把永久密钥放到客户端代码中有极大的泄露风险。如若通过临时密钥方式,则可以方便、有效地解决权限控制问题。
例如,在申请临时密钥过程中,可以通过。

相关产品
日志服务 产品页,含版本规格、价格与购买入口。

一、临时密钥

·临时密钥(临时访问凭证)是通过 CAM 云 API 提供的接口,获取到权限受限的密钥。

·CLS API 可以使用临时密钥计算签名,用于发起 CLS API 请求。

·CLS API 请求使用临时密钥计算签名时,需要用到获取临时密钥接口返回信息中的三个字段,如下:

·secretId:临时证书密钥 ID

·secretKey:临时证书密钥 Key

·secretToken:临时证书密钥 Token

二、获取临时密钥

获取临时密钥,可以直接请求 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"; // 临时密钥 secretId,必填 String secretId = ""; // 临时密钥 secretKey,必填 String secretKey = ""; // 临时密钥 secretToken,必填 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(); }}

赞 (0)
上一篇 5天前
下一篇 5天前