tencent cloud

Cloud Log Service

ドキュメントCloud Log Service操作ガイド権限管理一時キーを使用したCLSへのアクセス

一時キーを使用したCLSへのアクセス

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 14:07:54
AI翻訳
注意:
一時キーを使用してアクセスを許可する場合、必ず業務のニーズに応じて、最小権限の原則に従って許可を行ってください。すべてのリソース(resource:*)またはすべての操作(action:*)の権限を直接付与すると、権限範囲が広すぎることによるデータセキュリティリスクが存在します。
一時キーを申請する際に権限範囲を指定した場合、申請された一時キーもその権限範囲内でのみ操作できます。例えば、一時キーを申請する際に、ログトピック e621fdb8-16f4-41cf-bc73-xxxxxxxxx1 にログを書き込む権限範囲を指定した場合、申請されたキーではログ情報を e621fdb8-16f4-41cf-bc73-xxxxxxxxx2 に書き込むことはできず、e621fdb8-16f4-41cf-bc73-xxxxxxxxx2 からログを取得することもできません。

一時キー

一時キー(一時アクセス証明書)は、CAM TencentCloud APIが提供するインターフェースを通じて取得される、権限が制限されたキーです。
CLS APIは一時キーを使用して署名を計算し、CLS APIリクエストの開始に使用できます。
CLS APIリクエストで一時キーを使用して署名を計算する場合、一時キー取得インターフェースの返却情報に含まれる3つのフィールドを使用する必要があります。以下に示します:
secretId:一時証明書キーID
secretKey:一時証明書キー Key
secretToken:一時証明書キー Token

一時キーを使用する利点

Web、iOS、AndroidでCLSを使用する場合、固定キーで署名を計算する方式では権限を効果的に制御できず、同時に永続キーをクライアントコードに配置することには極めて大きな漏洩リスクがあります。一時キー方式を使用すれば、権限制御の問題を容易かつ効果的に解決できます。 例えば、一時キーを申請する過程では、サブアカウント権限付与ポリシーを参照して操作とリソースを制限し、権限を指定された範囲内に制限できます。

一時キーの取得

一時キーを取得するには、STS TencentCloud 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();
}
}


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック