チームが Application Real-Time Monitoring Service (ARMS) を使用してアプリケーションを監視する際、ARMS コンソールと内部の Web アプリケーションを切り替えると、ワークフローの継続性が中断されます。Security Token Service (STS) の ID フェデレーションによるサインインを通じて ARMS コンソールページを Web アプリケーションに直接埋め込むことで、チームはシステムを離れることなく、アプリケーションリスト、アプリケーション詳細、およびトレースを表示できます。また、Resource Access Management (RAM) を使用して権限を制御し、アクセスを読み取り専用に制限することもできます。
仕組み
埋め込みでは、STS の ID フェデレーションによるサインインを使用して、iframe にロードするログイン不要の URL を生成します。このプロセスは 5 つのステップで構成されます。
RAM ユーザーの作成:STS を呼び出す権限を付与します。
RAM ロールの作成:ARMS アクセスポリシーをロールにアタッチします。
一時的な認証情報の取得:STS の
AssumeRole操作を呼び出します。ログイントークンの取得:一時的な認証情報をフェデレーションログイントークンと交換します。
ログイン不要の URL の構築:ログイントークンと ARMS コンソールページの URL を組み合わせます。
前提条件
開始する前に、以下が揃っていることを確認してください。
RAM が有効化されている Alibaba Cloud アカウント
RAM ユーザーと RAM ロールを作成する権限
少なくとも 1 つのリージョンで ARMS コンソールが有効化されていること
ステップ 1:RAM ユーザーの作成と STS 権限の付与
アプリケーションが STS を呼び出して RAM ロールを偽装するために使用する RAM ユーザーを作成します。
RAM ユーザーを作成します。詳細については、「RAM ユーザーの作成」をご参照ください。
AliyunSTSAssumeRoleAccess ポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーに権限を付与」をご参照ください。

ステップ 2:RAM ロールの作成と ARMS 権限の付与
RAM ロールを作成し、ARMS アクセスポリシーをアタッチします。RAM ユーザーはこのロールを偽装して ARMS コンソールにアクセスします。
信頼できる Alibaba Cloud アカウント用に RAM ロールを作成します。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールを作成する」をご参照ください。
以下のいずれかのポリシーを RAM ロールにアタッチします。詳細については、「RAM ロールに権限を付与」をご参照ください。
ポリシー アクセスレベル AliyunARMSFullAccess すべての ARMS 機能へのフルアクセス AliyunARMSReadOnlyAccess すべての ARMS 機能への読み取り専用アクセス
特定のリソースグループに読み取り専用アクセスを付与するには、AliyunARMSReadOnlyAccess ポリシーと ReadTraceApp 権限の両方をリソースグループにアタッチします。ReadTraceApp がないと、ARMS はそのリソースグループのアプリケーションリストを表示できません。
ステップ 3:一時的な認証情報の取得
STS の AssumeRole 操作を呼び出して、一時的な AccessKey ペアと STS トークンを取得します。これらの一時的な認証情報は、ID フェデレーションによるサインインに使用されます。
AssumeRole は、以下のいずれかの方法で呼び出します。
SDK パラメーターの設定
以下のプレースホルダーを実際の値に置き換えてください。
| パラメーター | 説明 | 取得場所 |
|---|---|---|
<accessKeyId> | RAM ユーザーの AccessKey ID | RAM ユーザー作成時に提供されます。詳細については、「AccessKey ペアの作成」をご参照ください。 |
<accessKeySecret> | RAM ユーザーの AccessKey Secret | RAM ユーザー作成時に提供されます |
<roleArn> | RAM ロールの Alibaba Cloud リソース名 (ARN) | RAM コンソール > ID > ロール > ロールを選択 > 基本情報 > ARN |
String accessKey = "<accessKeyId>";
String accessSecret = "<accessKeySecret>";
String roleArn = "<roleArn>";ステップ 4:ログイントークンの取得
ステップ 3 で取得した一時的な認証情報を、GetSigninToken 操作を呼び出してログイントークンと交換します。
STS トークンには特殊文字が含まれている場合があります。リクエストを送信する前に、トークンを URL エンコードしてください。
https://signin.alibabacloud.com/federation?Action=GetSigninToken
&AccessKeyId=<temporary-accesskey-id>
&AccessKeySecret=<temporary-accesskey-secret>
&SecurityToken=<sts-token>
&TicketType=miniステップ 5:ログイン不要の URL の構築
ステップ 4 で取得したログイントークンと ARMS コンソールページの URL を組み合わせて、ログイン不要の URL を作成します。
ログイントークンは 3 時間後に有効期限が切れます。セッションの期限切れを避けるため、リクエストごとに新しいトークンを生成してください。
ARMS コンソールページ URL の取得
埋め込みたい ARMS ページの URL をコピーします。URL は、アプリケーションモニタリングまたはブラウザ監視に属するコンソールアドレスである必要があります。ご利用のリージョンに対応する正しいエンドポイントを使用してください。
| リージョン | エンドポイント |
|---|---|
| 中国 (レガシーコンソール) | arms4servims.console.alibabacloud.com |
| 中国 (新しいコンソール) | armsnext4servims.console.alibabacloud.com |
| 日本 | arms-jp4servims.console.alibabacloud.com |
| 東南アジア | arms-sg4servims.console.alibabacloud.com |
| 米国 | arms-us4servims.console.alibabacloud.com |
| ヨーロッパ | arms-eu4servims.console.alibabacloud.com |
中国 (杭州) リージョンの URL 例:
https://arms4servims.console.alibabacloud.com/apm?iframeMode=true&pid=<your-pid>®ionId=<your-region-id>#/<your-pid>/homepid と regionId の値は、アプリケーションモニタリングまたはブラウザ監視のページを閲覧する際の実際の ARMS コンソール URL から取得します。
コンソールレイアウトの制御
埋め込み時にナビゲーション要素を非表示にするには、URL パラメーターを使用します。
| パラメーター | 効果 |
|---|---|
iframeMode=true | 上部のナビゲーションバーと左側のナビゲーションウィンドウの両方を非表示にします |
hideTopbar=true | 上部のナビゲーションバーのみを非表示にします |
hideSidebar=true | 左側のナビゲーションウィンドウのみを非表示にします |
hideTopbar=true と hideSidebar=true の両方を設定することは、iframeMode=true と同等です。
URL にハッシュ (#) が含まれている場合は、これらのパラメーターを # の前に配置してください。例:
https://trace4servims.console.alibabacloud.com/?hideTopbar=true&hideSidebar=true/#/tracing/<region-id>/list?from=now-3h&to=now&refresh=offログイン不要の URL の作成
https://signin.alibabacloud.com/federation?Action=Login
&LoginUrl=<your-error-redirect-url>
&SigninToken=<logon-token>
&Destination=<arms-console-page-url>| パラメーター | 説明 |
|---|---|
LoginUrl | ログインに失敗し、状態コード 302 が返されたときのリダイレクト先 URL |
SigninToken | ステップ 4 で取得したログイントークン |
Destination | ARMS コンソールページの URL (レイアウトパラメーター適用済み) |
iframe への URL の埋め込み
ログイン不要の URL を iframe にロードして、Web アプリケーションに ARMS コンソールページを表示します。
<iframe
src="https://signin.alibabacloud.com/federation?Action=Login&LoginUrl=<your-error-redirect-url>&SigninToken=<logon-token>&Destination=<arms-console-page-url>"
width="100%"
height="800"
frameborder="0"
></iframe>よくある質問
「frame-ancestors 'self' *.aliyun.com」エラーの意味
このコンテンツセキュリティポリシー (CSP) エラーは、仮想ネットワークオペレーターによってデプロイされたアプリケーションに iframe を使用して ARMS コンソールページを埋め込むときに発生します。これを解決するには、次の手順を実行します。