Managed Service for OpenTelemetry コンソールページをご利用の Web アプリケーションに埋め込むことで、チームは Alibaba Cloud コンソールに切り替えることなく、トレーシングデータ (アプリケーション、アプリケーションの詳細、トレース) を表示できます。
埋め込みフローでは、Resource Access Management (RAM) と Security Token Service (STS) を使用して、ログイン不要の URL を生成します。RAM ポリシーは、ページレイアウト (ナビゲーションバーを非表示にする) とアクセスレベル (フルアクセスまたは読み取り専用アクセス) を制御します。
仕組み
埋め込みフローでは、STS ベースのフェデレーションログインを使用して、コンソールページへの一時的でスコープ付きのアクセスを許可します。
| フェーズ | 手順 | 頻度 |
|---|---|---|
| 初回セットアップ | 必要なポリシーを持つ RAM ユーザーと RAM ロールを作成する | 一度 |
| セッションごとのフロー | 一時的な認証情報を取得し、それらをログイントークンと交換して、ログイン不要の URL を構築する | セッションごと (トークンは 3 時間後に有効期限が切れる) |
前提条件
開始する前に、以下を確認してください。
RAM 管理特権を持つ Alibaba Cloud アカウント(または
AliyunRAMFullAccessポリシー)HTTP リクエストを実行できるバックエンドを持つセルフマネージド Web アプリケーション
ステップ 1: RAM ユーザーを作成し、STS AssumeRole 権限を付与する
ご利用のアプリケーションバックエンドが STS AssumeRole 操作を呼び出すために使用する RAM ユーザーを作成します。
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、[アイデンティティ] > [ユーザー] を選択します。
「ユーザー」ページで、「ユーザーの作成」をクリックします。
[ユーザーの作成] ページで、次の設定を構成します。
「ユーザー アカウント情報」セクションで、「ログオン名」と「表示名」を設定します。
「[アクセスモード]」セクションで、「[永続的な AccessKey を使用してアクセス]」を選択します。
[OK] をクリックします。
重要RAM は、RAM ユーザー用に AccessKey ペアを自動的に生成します。AccessKey ペアは一度だけ表示されます。ページを閉じる前に、AccessKey ID と AccessKey Secret をコピーして保存してください。詳細については、「AccessKey ペアの作成」をご参照ください。
[ユーザー] ページで、RAM ユーザーを探し、[操作] 列の [権限の追加] をクリックします。

一度に複数の RAM ユーザーに権限を付与するには、ユーザーを選択し、ページの下部にある[権限の追加]をクリックします。
[権限付与] パネルで、以下の設定を行います:
設定 [リソーススコープ]:
アカウント:権限は現在の Alibaba Cloud アカウントに適用されます。
リソースグループ: 権限は特定のリソースグループに適用されます。詳細については、「リソースグループを使用して、RAM ユーザーに特定のECS インスタンスを管理する権限を付与する」をご参照ください。
重要「リソーススコープ」を「リソースグループ」に設定する前に、クラウドサービスがリソースグループをサポートしているかを確認してください。詳しくは、「リソースグループと連携するサービス」をご参照ください。
「[プリンシパル]」(権限を付与する RAM ユーザー)を確認します。システムは、現在の RAM ユーザーを自動的にプリンシパルとして選択します。
[ポリシー] セクションで、[AliyunSTSAssumeRoleAccess] を選択します。
[権限を付与] をクリックします。
[閉じる] をクリックします。
ステップ 2: RAM ロールを作成し、Managed Service for OpenTelemetry の権限を付与する
埋め込まれたコンソールセッションがアクセスできるものを定義する RAM ロールを作成します。
RAM ロールに権限を付与する。必要なアクセスレベルに基づいて、次のポリシーのいずれかを選択してください:
ポリシー アクセスレベル AliyunTracingAnalysisFullAccessManaged Service for OpenTelemetry へのフル読み取り/書き込みアクセス AliyunTracingAnalysisReadOnlyAccessManaged Service for OpenTelemetry への読み取り専用アクセス 重要RAM ロールの権限は、埋め込まれたコンソールで利用可能なデータと操作を決定します。
ステップ 3: 一時的な AccessKey ペアと STS トークンを取得する
ご利用のアプリケーションバックエンドから、STS AssumeRole 操作を呼び出して一時的な認証情報を取得します。次のいずれかの方法を使用します。
サンプルコードのプレースホルダーを実際の値に置き換えます。
String akId = "<your-access-key-id>";
String ak = "<your-access-key-secret>";
String roleArn = "<your-role-arn>";| プレースホルダー | 説明 | 場所 |
|---|---|---|
<your-access-key-id> | ステップ 1 で作成した RAM ユーザーの AccessKey ID | RAM コンソール > Users > ユーザー詳細 |
<your-access-key-secret> | ステップ 1 で作成した RAM ユーザーの AccessKey Secret | ステップ 1 で保存済み (一度のみ表示) |
<your-role-arn> | ステップ 2 で作成した RAM ロールの Alibaba Cloud Resource Name (ARN) | RAM コンソール > Roles > ロール詳細 |


ステップ 4: ログイントークンを取得する
GetSigninToken 操作を呼び出して、ステップ 3 の一時的な認証情報をログイントークンと交換します。
STS トークンには特殊文字が含まれる場合があります。リクエストに含める前にトークンを URL エンコードしてください。
http://signin4service.alibabacloud.com/federation?Action=GetSigninToken
&AccessKeyId=<temporary-access-key-id>
&AccessKeySecret=<temporary-access-key-secret>
&SecurityToken=<sts-token>
&TicketType=miniご利用の Web アプリケーションがパートナーのクラウドプラットフォームにデプロイされている場合にのみ、&TicketType=mini パラメーターを追加してください。
ステップ 5: ログイン不要の URL を構築する
ステップ 4 のログイントークンとコンソールページ URL を組み合わせて、ログイン不要の URL を構築します。
ターゲットコンソールページのURLを取得します。たとえば、中国 (杭州) リージョン向けの[アプリケーション]ページ:
https://trace4servims.console.alibabacloud.com/#/overview/cn-hangzhou(オプション) ナビゲーション要素を非表示にするために、レイアウトパラメーターをコンソールページ URL に追加します。
パラメーター 効果 例 hideTopbar=true上部のナビゲーションバーを非表示にする https://trace4servims.console.alibabacloud.com/#/overview/cn-hangzhou?hideTopbar=truehideSidebar=true左側のナビゲーションウィンドウを非表示にする https://trace4servims.console.alibabacloud.com/#/overview/cn-hangzhou?hideSidebar=true両方を非表示にするには、パラメーターを組み合わせます。
?hideTopbar=true&hideSidebar=trueログイン不要の URL を構築します。
http://signin.alibabacloud.com/federation?Action=Login &LoginUrl=<your-login-failure-redirect-url> &SigninToken=<logon-token> &Destination=<console-page-url>パラメーター 説明 LoginUrlログインが失敗した場合にユーザーがリダイレクトされる URL (HTTP 302 を返す) SigninTokenステップ 4 のログイントークン DestinationManaged Service for OpenTelemetry コンソールページ URL (オプションのレイアウトパラメーターを含む)
トークンの有効期限を処理する
一時的な STS トークンは 3 時間後に有効期限が切れます。中断のないアクセスを維持するには、次の手順を実行します。
ご利用のアプリケーションバックエンドから、各ページリクエストで新しいログイントークンを生成します。
更新されたログイン不要の URL に 302 リダイレクトを実行します。
結果
Managed Service for OpenTelemetry コンソールページがご利用の Web アプリケーション内に表示されます。

サンプルコード
完全なサンプルコード (Java) をダウンロードしてください。このサンプルでは、OpenTelemetry 向けマネージドサービスのコンソールの[アプリケーション] ページを、セルフマネージド Web アプリケーションに埋め込みます。