tencent cloud

Cloud Log Service

ドキュメントCloud Log Service開発者ガイドiframeによるCLS組み込み(旧ソリューション)

iframeによるCLS組み込み(旧ソリューション)

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 15:06:44
AI翻訳

適用シーン

CLSは、CLSコンソールを他のシステムに組み込む機能を提供し、Tencent Cloudコンソールにログインせずにログを検索・分析できるというニーズに対応します。CLSコンソールページを組み込むことで、ユーザーに以下の利便性を提供できます:
外部システムサービス(例えば社内の運用保守または運営システム)にCLSの検索・分析機能を迅速に統合できます。
多数のTencent Cloudサブアカウントを管理する必要がなく、ログデータを他のユーザーと簡単に共有して閲覧してもらうことができます。

デモコードによるログイン不要の実装

操作手順

1. CAMページを開き、CAMロールを作成し、ロールのキャリアとしてTencent Cloudアカウントを選択し、コンソールへのログインを許可し、CAMロールに対応するアクセス権限を設定します。例えば、読み取り専用ポリシー権限QcloudCLSReadOnlyAccessを設定し、CLSReadOnlyという名前を付けます。ポリシーのRoleArn情報をコピーします。
2. CAMポリシーページを開き、カスタムポリシーを新規作成し、ポリシージェネレーターによる作成を選択します。ページに入った後、JSONタグを選択し、ポリシー内容に以下の内容を入力します。${YOUR_UIN}をアカウントのUinに置き換えることに注意してください(Resourceの内容は作成したロールのRoleArnです。ポリシー名が一致しない場合は、修正してください)。次へをクリックし、アクセスポリシー名をPlayClsPolicyに設定します。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"sts:AssumeRole"
],
"resource": [
"qcs::cam::uin/${YOUR_UIN}:roleName/CLSReadOnly"
]
}
]
}
3. ユーザー新規作成ページを開き、カスタム作成を選択します。タイプをリソースアクセスとメッセージ受信が可能に設定し、ユーザー名をPlayClsUserに設定でき、アクセス方式はプログラムアクセスとし、ユーザー権限を前の手順で新規作成したポリシーPlayClsPolicyに設定します。ユーザー新規作成操作を送信した後、生成されたキーSecretIdとSecretKeyをコピーして保管します。
4. パスワード不要でログインコンソールにアクセスできるデモプロジェクトコードcls-iframe-demoをクローンします。プロジェクトのReadMeの内容を参照し、ルートディレクトリに.envファイルを作成し、RoleArn、SecretId、SecretKeyの情報を入力すると、必要なパラメータ値の入力が完了します。
注意:
コードが漏洩すると、SecretIdとSecretKeyが漏洩し、アカウントのセキュリティに影響を及ぼす可能性があります。アカウントのセキュリティを確保するために、TencentCloud APIキーのセキュリティ対策の推奨事項を参照し、キーを安全に使用してください。また、最小権限の原則に従い、最小限の権限を持つサブアカウントキーを使用してください。
パスワード不要でログインコンソールにアクセスできるデモプログラムのReadMeドキュメントを参照し、プロジェクトを実行すると、パスワード不要でログインコンソールにアクセスできる効果を確認できます。
注意:
この例には外部システムの認証ロジックは含まれていません。デプロイ後、すべての訪問者(Tencent Cloudにログインしていなくても)は、例で設定されたロール権限でアカウント内のデータを閲覧できます。データのプライバシーとセキュリティを保護するために、外部システムの認証ロジックを独自に追加するか、内部ネットワークからのみアクセスできるように制限して、権限を持つユーザーのみがこのページを閲覧できるようにしてください。
5. CLSのパスワード不要ログインのターゲットアドレスs_urlを連結します(任意。取得後、パスワード不要ログインプロジェクトの設定ファイルに入力します。パスワード不要ログインサービスにアクセスすると、このアドレスに自動的にリダイレクトされます)。
CLS検索分析ページのベースアドレス:
https://console.tencentcloud.com/cls/search?region=<region>&topic_id=<topic_id>
CLS検索分析ページURLパラメータの説明:
パラメータ名
必須
タイプ
説明
region
はい
String
地域の略称です。例えば「ap-shanghai」は上海地域を表します。その他の利用可能な地域の略称については、利用可能な地域をご参照ください。
topic_id
いいえ
String
日志主题 ID
logset_name
いいえ
String
日志集名称
topic_name
いいえ
String
日志主题名
time
いいえ
String
検索するログの開始時間から終了時間です。形式例:2021-07-15T10:00:00.000,2021-07-15T12:30:00.000
queryBase64
いいえ
String
検索分析ステートメントです。base64Urlエンコードを使用します。
hideWidget
いいえ
Boolean
右下のカスタマーサービス/ドキュメントボタンを非表示にします:デフォルトでは非表示にしません。trueは非表示を表します。
hideTopNav
いいえ
Boolean
Tencent Cloudコンソールの上部メニューを非表示にします:デフォルトでは非表示にしません。trueは非表示を表します。
hideLeftNav
いいえ
Boolean
Tencent Cloudコンソールの左側メニューを非表示にします:デフォルトでは非表示にしません。trueは非表示を表します。
hideTopicSelect
いいえ
Boolean
日志主题選択コントロール(地域、日志集、日志主题を含む)を非表示にします:デフォルトでは非表示にしません。trueは非表示を表します。
hideHeader
いいえ
Boolean
日志主题選択コントロールおよびその行を非表示にします:デフォルトでは非表示にしません。trueは非表示を表します。hideTopicSelectがtrueの場合にのみ有効です。
hideTopTips
いいえ
Boolean
顶部の製品告知プロンプトを非表示にします:デフォルトでは非表示にしません。trueは非表示を表します。
hideConfigMenu
いいえ
Boolean
日志主题設定管理メニューを非表示にします:デフォルトでは非表示にしません。trueは非表示を表します。
hideLogDownload
いいえ
Boolean
原始ログダウンロードボタンを非表示にします:デフォルトでは非表示にしません。trueは非表示を表します。
注意:
URLパラメータで検索対象のログトピックを指定するには、2つの方法があります:
topic_id:ログトピックIDに基づいてログトピックを指定します。
logset_name+topic_name:ログセット名とログトピック名に基づいてログトピックを指定します。注意すべき点として、ログセット名またはログトピック名が変更された場合、この方式を採用したURLは無効になります。
topic_id、logset_name、topic_nameパラメータが同時に存在する場合、topic_idが優先されます。
非表示パラメータとページモジュールの対応関係:


自社開発によるログイン不要の実装

操作手順

注意:
コードが漏洩すると、SecretIdとSecretKeyが漏洩し、アカウントのセキュリティに影響を及ぼす可能性があります。アカウントのセキュリティを確保するために、TencentCloud APIキーのセキュリティ対策の推奨事項を参照し、キーを安全に使用してください。また、最小権限の原則に従い、最小限の権限を持つサブアカウントキーを使用してください。
1. デモコードを使用してパスワード不要ログインを実現するの内容を参照し、Tencent Cloudアカウントで対応するCLS読み取り専用ロール、ロールを引き受けるカスタムポリシー、カスタムポリシーをバインドするサブアカウントを設定します。設定が完了したら、対応するRoleArn、SecretId、SecretKey情報を保存します。
2. デモコードを使用してパスワード不要ログインを実現するの内容を参照し、自身の要件に応じて、CLSのパスワード不要ログインターゲットアドレスs_urlを取得します。
3. パスワード不要ログインアクセスページを開く必要があるたびに、以下の手順を繰り返します。
4. 取得したキーを使用して、STS AssumeRoleインターフェースを呼び出し、ロールを引き受けるための一時キーを申請します。
5. 取得した一時キーに基づき、ログイン署名情報を生成します。
5.1 署名パラメータを並べ替えます。
署名が必要なパラメータを、アルファベット順または数字順の昇順に並べ替えます。最初の文字を考慮し、同じ場合は次の文字を考慮し、以降同様に進めます。プログラミング言語の関連する並べ替え関数を使用してこの機能を実現できます。例えば、PHPのksort関数を使用します。署名パラメータには以下の内容が含まれます:
パラメータ名
必須
タイプ
説明
action
はい
String
操作アクション。固定値は roleLogin です。
timestamp
はい
Int
現在のタイムスタンプ
nonce
はい
Int
ランダムな整数。値は10000~100000000です。
secretId
はい
String
STSから返される一時AK
5.2 パラメータを連結します。
将上一步排序好的请求参数、按「参数名称=参数值」拼接、例如:
action=roleLogin&nonce=67439&secretId=AKI***PLE&timestamp=1484793352
5.3 署名文字列を連結します。
リクエストメソッド + リクエストホスト + リクエストパス + ? + リクエスト文字列の規則に従って署名文字列を連結します。
パラメータ
必須
説明
リクエストホストとパス
はい
www.tencentcloud.com/login/roleAccessCallbackに固定されます。
リクエストメソッド
はい
GETまたはPOSTをサポートします。
署名文字列の例
GETwww.tencentcloud.com/login/roleAccessCallback?action=roleLogin&nonce=67439&secretId=AKI***PLE&timestamp=1484793352
5.4 署名文字列を生成します。
HMAC-SHA1アルゴリズムを使用して文字列に署名します。現在、HMAC-SHA1とHMAC-SHA256をサポートしています。具体的なコードは以下の通りです。PHP言語を例にします:
$secretKey = 'Gu5***1qA';
$srcStr = 'GETwww.tencentcloud.com/login/roleAccessCallback?action=roleLogin&nonce=67439&secretId=&timestamp=1484793352';
$signStr = base64_encode(hash_hmac('sha1', $srcStr, $secretKey, true));
echo $signStr;
PHPバージョンのサンプルコード
$secretId = "AKI***"; //STSから返された一時的なAK
$secretKey = "Gu5***PLE"; //STSから返された一時的なSecret
$token = "ADE***fds"; //STSから返されたセキュリティTOKEN
$param["nonce"] = 11886; //rand(10000,100000000);
$param["timestamp"] = 1465185768; //time();
$param["secretId"] = $secretId;
$param["action"] = "roleLogin";
ksort($param);
$signStr = "GETwww.tencentcloud.com/login/roleAccessCallback?";
foreach ( $param as $key => $value ) {
$signStr = $signStr . $key . "=" . $value . "&";
}
$signStr = substr($signStr, 0, -1);
$signature = base64_encode(hash_hmac("sha1", $signStr, $secretKey, true));
echo $signature.PHP_EOL;
6. 完全なログイン情報と目的ページのアドレスを連結してログインします。
パラメータ値はurlencodeエンコードが必要です
https://www.tencentcloud.com/login/roleAccessCallback?
algorithm=<署名時の暗号化アルゴリズム、現在はsha1とsha256のみをサポートしており、未入力の場合はデフォルトでsha1になります>
&secretId=<署名時のsecretId>
&token=<一時キーtoken>
&nonce=<署名時のnonce>
&timestamp=<署名時のtimestamp>
&signature=<署名文字列>
&s_url=<ログイン後の目的URL>
7. 生成された最終リンクを使用して、Tencent Cloud CLSコンソールページにアクセスします。例えば、検索分析ページの埋め込みアクセスリンクは以下の通りです:
https://www.tencentcloud.com/login/roleAccessCallback?nonce=52055817&s_url=https%3A%2F%2Fconsole.tencentcloud.com%2Fcls%2Fsearch%3Fregion%3Dap-guangzhou%26start_time%3D2020-05-26%25252014%25253A01%25253A18%26end_time%3D2020-05-26%25252014%25253A16%25253A18&secretId=AKID-vHJ7WPHcy_RVIOm-QTIktXOf9S9z_k_JackOp3dyQPJwmDrNLQJuiNuw9******&signature=eXeWaDn6iJlcPp1sqqGd6m9%2FQk****&timestamp=1592455018&token=5e4vuBHL7fBQPi1V9fvSINw4Vu7PSr9Ic3de78b86109c171eb4e3ea27c137c1fIWKU8JC-LO01L87sIYlfTSaHHXeHcqim7Jg9hBuN2nbdfgeBUPXhmpyAk4G6e9bHFZ-7yNRig7Y33CQHxh6jOesP4VfhRzQprWGRtC5No1ty******-aoj_WJhA55oyvqaqxw2jtTdh8nx9OjJr3tlbIa9oJe7aZYoPbdpFqrF6ZjlCPPap2yQB_SkUsWwDl_9BrK2Km3U2IocdvQ7QxrW0ts1aiBi7xtTSJRcfkBYPYEV_YoJrtkhYW3E4L47imA1bfVAjM9F5uKWzVzsDGDT0aCUU9mqdb4vjJrY8tm-wJKKEe8eiyY9EbkH3VWnFV2YocYNDJqFyjKOWR******

技術実装の原理

パスワード不要でログインコンソールにアクセスするソリューションは、技術的に安全認証情報サービスに基づいています。
ログイン原理のフローチャート:

img



ヘルプとサポート

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

フィードバック