Application Real-Time Monitoring Service (ARMS) の Grafana ダッシュボードを Web アプリケーションに埋め込み、ユーザーが Grafana コンソールに切り替えたり別途ログインしたりすることなく、モニタリングデータを直接表示できるようにします。
Grafana Shared Edition のページのみが埋め込みをサポートします。Dedicated Edition および Expert Edition のページはこの機能をサポートしていません。
仕組み
ご利用の Web アプリケーションは、セキュリティトークンサービス (STS) を通じて一時的な認証情報を取得し、Alibaba Cloud のフェデレーションエンドポイントでログイントークンと交換したうえで、ログイン不要の URL を構築して Grafana ダッシュボードをロードします。
この認証フローには以下の 4 つのコンポーネントが関与します。
| コンポーネント | 役割 |
|---|---|
| RAM ユーザー | STS を呼び出す権限を持つサービスアカウント |
| RAM ロール | ARMS コンソールへのアクセス権を付与します。RAM ユーザーはこのロールを偽装して、一時的な認証情報を取得します。 |
| STS 一時認証情報 | AssumeRole 操作によって返される短期有効な AccessKey ペアおよびセキュリティトークン |
| ログイントークン | STS 認証情報から交換されたフェデレーショントークン。ログイン不要の URL の構築に使用されます。 |
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
Alibaba Cloud アカウントまたは管理者権限を持つ RAM ユーザー
少なくとも 1 つのダッシュボードを含む ARMS Grafana ワークスペース
API 呼び出しが可能なバックエンドサーバーを備えたセルフマネージド Web アプリケーション
手順 1:RAM ユーザーを作成し、STS 権限を付与する
Web サーバーが STS を呼び出すために使用する専用の RAM ユーザーを作成します。
RAM コンソールにログインします。
左側のナビゲーションペインで、Identities > Users を選択します。
Users ページで、Create User をクリックします。

User Account Information セクションで、Logon Name および Display Name を設定します。Access Mode セクションで、Console Access を選択し、OK をクリックします。
重要RAM は新しいユーザーに対して自動的に AccessKey ペアを生成します。RAM コンソールでは AccessKey Secret は一度しか表示されません。ダイアログを閉じる前に、必ずコピーして安全な場所に保存してください。
Users ページで、作成した RAM ユーザーを見つけ、Actions 列の Add Permissions をクリックします。
説明複数の RAM ユーザーに一度に権限を付与する場合は、ユーザーを選択してページ下部の Add Permissions をクリックします。

Grant Permission パネルの Policy セクションで、AliyunSTSAssumeRoleAccess を検索して追加し、Grant permissions をクリックします。
Close をクリックします。
手順 2:RAM ロールを作成し、ARMS 権限を付与する
ARMS コンソールへのアクセスを提供する RAM ロールを作成します。ステップ 1 の RAM ユーザーは、このロールを偽装して一時的な認証情報を取得します。
RAM ロールに権限を付与します。以下のいずれかのポリシーをアタッチします。
ポリシー アクセスレベル AliyunARMSFullAccess ARMS に対する完全な読み取り/書き込みアクセス AliyunARMSReadOnlyAccess ARMS に対する読み取り専用アクセス
手順 3:STS から一時認証情報を取得する
Web サーバー上で AssumeRole 操作を呼び出し、一時的な AccessKey ペアおよび STS トークンを取得します。
AssumeRole は以下のいずれかの方法で呼び出すことができます。
OpenAPI Explorer — ブラウザでインタラクティブに呼び出しをテストできます。
RAM SDK for Java — バックエンドコードに呼び出しを統合します。
以下の例では RAM SDK for Java を使用しています。プレースホルダーを実際の値に置き換えてください。
String accessKey = "<your-access-key-id>"; // RAM ユーザーの AccessKey ID
String accessSecret = "<your-access-key-secret>"; // RAM ユーザーの AccessKey Secret
String roleArn = "<your-role-arn>"; // RAM ロールの ARN| プレースホルダー | 説明 | 参照先 |
|---|---|---|
<your-access-key-id> | RAM ユーザーの AccessKey ID | 手順 1 で保存済み。「AccessKey ペアの作成 |
<your-access-key-secret> | RAM ユーザーの AccessKey Secret | 手順 1 で保存済み |
<your-role-arn> | RAM ロールの Alibaba Cloud リソースネーム (ARN) | 以下に示す RAM コンソール内 |
RAM ロールの ARN を確認する
RAM コンソールの左側ナビゲーションペインで、Identities > Roles を選択します。
対象の RAM ロール名をクリックします。
Basic Information セクションで、ARN の値をコピーします。

手順 4:ログイントークンを取得する
Alibaba Cloud のフェデレーションエンドポイントで GetSigninToken 操作を呼び出し、STS 一時認証情報をログイントークンと交換します。
STS トークンには特殊文字が含まれる場合があります。リクエスト送信前に、トークンの値を URL エンコードしてください。
フェデレーションエンドポイントに GET リクエストを送信します。
https://signin.alibabacloud.com/federation?Action=GetSigninToken
&AccessKeyId=<temporary-access-key-id>
&AccessKeySecret=<temporary-access-key-secret>
&SecurityToken=<url-encoded-sts-token>| パラメーター | 値 |
|---|---|
AccessKeyId | AssumeRole によって返された一時的な AccessKey ID |
AccessKeySecret | AssumeRole によって返された一時的な AccessKey Secret |
SecurityToken | AssumeRole によって返された URL エンコード済みの STS トークン |
ご利用の Web アプリケーションが仮想ネットワークオペレーターによってデプロイされている場合は、リクエストに &TicketType=mini を追加してください。
手順 5:ログイン不要の URL を構築する
ログイントークンと Grafana ダッシュボードの URL を組み合わせて、別途ログインせずにダッシュボードをロードできるログイン不要の URL を生成します。
ログイントークンの有効期限は 3 時間です。中断なくアクセスを提供するため、ページリクエストごとに新しいトークンを生成してください。
ダッシュボード URL の取得
ARMS Grafana コンソールで対象のダッシュボードを開きます。
ブラウザのアドレスバーから URL をコピーします。
kiosk モードによる Grafana UI の制御
ダッシュボード URL に kiosk パラメーターを追加して、ナビゲーション要素を非表示にできます。
| パラメーター | 効果 |
|---|---|
kiosk=tv | 左側のナビゲーションウィンドウを非表示にします。 |
kiosk | 上部のナビゲーションバーと左側のナビゲーションウィンドウの両方を非表示にします。 |
kiosk=tv2 | ナビゲーション要素を非表示にしますが、右上隅のタイムセレクターは表示したままにします。 |
ログイン不要の URL の構築
ログイントークンとダッシュボード URL を使用して、ログイン不要の URL を構築します。
http://signin.alibabacloud.com/federation?Action=Login
&LoginUrl=<your-fallback-url>
&Destination=<grafana-dashboard-url>
&SigninToken=<logon-token>| パラメーター | 説明 |
|---|---|
LoginUrl | ログイン失敗時にユーザーがリダイレクトされるフォールバック URL(HTTP 302) |
Destination | kiosk パラメーターを含む Grafana ダッシュボードの URL |
SigninToken | 手順 4 で取得したログイントークン |
結果の確認
ブラウザでログイン不要の URL を開きます。認証情報の入力を求められることなく Grafana ダッシュボードがロードされます。kiosk パラメーターを指定した場合は、期待通りのナビゲーション要素が非表示になっていることを確認してください。