Managed Service for OpenTelemetry コンソールページを Web アプリケーションに埋め込むことで、チームメンバーは Alibaba Cloud コンソールに切り替えることなく、トレースデータ (アプリケーション、アプリケーション詳細、トレース) を表示できるようになります。
埋め込みフローでは、Resource Access Management (RAM) と Security Token Service (STS) を使用してログイン不要 URL を生成します。RAM ポリシーは、ページレイアウト (ナビゲーションバーの非表示) とアクセスレベル (フルアクセスまたは読み取り専用) を制御します。
仕組み
埋め込みフローでは、STS ベースのフェデレーティッドログインを使用して、コンソールページへのスコープが限定された一時的なアクセスを付与します。
フェーズ | ステップ | 頻度 |
初回セットアップ | 必要なポリシーを持つ RAM ユーザーと RAM ロールを作成します。 | 1 回のみ |
セッションごとのフロー | 一時的な認証情報を取得し、それをログイントークンと交換して、ログイン不要 URL を構築します。 | セッションごと (トークンは 3 時間後に有効期限が切れます) |
前提条件
作業を開始する前に、次の準備が整っていることを確認してください。
RAM 管理者権限 (または
AliyunRAMFullAccessポリシー) を持つ Alibaba Cloud アカウントHTTP リクエストを実行できるバックエンドを備えた自己管理型 Web アプリケーション
ステップ 1: RAM ユーザーの作成と STS AssumeRole 権限の付与
アプリケーションバックエンドが STS AssumeRole 操作を呼び出すために使用する RAM ユーザーを作成します。
RAM コンソールにログインします。
左側のナビゲーションペインで、[アイデンティティ] > [ユーザー] を選択します。
[ユーザー] ページで、[ユーザーの作成] をクリックします。
[ユーザーの作成] ページで、以下の設定を行います。
[ユーザーアカウント情報] セクションで、[ログオン名] と [表示名] を設定します。
[アクセスモード] セクションで、[永続的な AccessKey を使用してアクセス] を選択します。
[OK]をクリックします。
重要RAM は RAM ユーザーの AccessKey ペアを自動的に生成します。AccessKey ペアは一度だけ表示されます。ページを閉じる前に、AccessKey ID と AccessKey シークレットをコピーして保存してください。詳細については、「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>";プレースホルダー | 説明 | 確認方法 |
| ステップ 1 で作成した RAM ユーザーの AccessKey ID | RAM コンソール > [ユーザー] > [ユーザー詳細] |
| ステップ 1 で作成した RAM ユーザーの AccessKey シークレット | ステップ 1 で保存済み (一度だけ表示されます) |
| ステップ 2 で作成した RAM ロールの Alibaba Cloud リソース名 (ARN) | RAM コンソール > [ロール] > [ロール詳細] |
ステップ 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&TicketType=mini パラメーターは、Web アプリケーションがパートナークラウドプラットフォームにデプロイされている場合にのみ追加してください。
ステップ 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) をダウンロードします。この例では、Managed Service for OpenTelemetry コンソールの [アプリケーション] ページを自己管理型の Web アプリケーションに埋め込みます。