EventBridge では、同じAlibaba Cloudアカウントまたは別のAlibaba Cloudアカウントにイベントをルーティングできます。イベントルールを使用してイベントをフィルタリングし、同じAlibaba Cloudアカウントまたは別のAlibaba Cloudアカウントの EventBridge にルーティングできます。このトピックでは、EventBridge にイベントをルーティングするための前提条件、背景情報、使用上の注意、および手順について説明します。
始める前に
EventBridgeをアクティブ化し、Resource Access Management (RAM) ユーザーに権限を付与する
背景情報
機能 1:同一アカウントイベントルーティング
次の図は、イベントが同じAlibaba Cloudアカウントにルーティングされるシナリオを示しています。このシナリオでは、システムイベントバス、カスタムイベントバス A、カスタムイベントバス B、およびカスタムイベントバス C はすべてAlibaba Cloudアカウント A に属しています。これらのイベントバスのイベントを、Alibaba Cloudアカウント A のカスタムイベントバスにルーティングして、一元的に処理できます。
機能 2:アカウント間イベントルーティング
次の図は、Alibaba Cloudアカウント間でイベントがルーティングされるシナリオを示しています。このシナリオでは、Alibaba Cloudアカウント A と Alibaba Cloudアカウント B は同じ組織または 2 つの関連組織に属しています。次の手順を実行することで、Alibaba Cloudアカウント A の RAM ユーザーのイベントを Alibaba Cloudアカウント B のカスタムイベントバスにルーティングして、一元的に処理できます。
イベントを受信するAlibaba Cloudアカウント B を使用して、RAM ロールを作成します。RAM ロールの信頼エンティティを、イベントを送信するAlibaba Cloudアカウント A に設定します。
イベントを受信するAlibaba Cloudアカウント B を使用して、RAM ロールにイベントを公開する権限を付与します。Alibaba Cloudアカウント A は、RAM ロールを引き受けて、Alibaba Cloudアカウント B にイベントを公開する権限を取得できます。
イベントを受信するAlibaba Cloudアカウント B を使用して、RAM ロールの信頼ポリシーを変更し、Alibaba Cloudアカウント B のAlibaba Cloudサービスにイベントを公開する権限を付与するために使用されるポリシーをアタッチします。Alibaba Cloudアカウント B のAlibaba CloudサービスもRAM ロールを引き受けて、Alibaba Cloudアカウント B にイベントを公開する権限を持つことができます。
イベントを送信するAlibaba Cloudアカウント A を使用して、イベントルールを作成し、イベントをAlibaba Cloudアカウント B のカスタムイベントバスにルーティングします。
複数のアカウントからのイベントを 1 つのアカウントの同じイベントバスにルーティングできます。イベントの aliyunoriginalaccountid 拡張フィールドは、イベントのソースを指定します。イベントがルーティングされるアカウントは、aliyunoriginalaccountid フィールドに基づいてイベントをフィルタリングできます。
使用上の注意
同一アカウントイベントルーティング機能とアカウント間イベントルーティング機能の両方で、リージョン間でイベントをルーティングできます。
システムイベントバスとカスタムイベントバスのイベントは、カスタムイベントバスにのみルーティングできます。
同じアカウントにイベントをルーティングする
EventBridge コンソール にログインします。左側のナビゲーションペインで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。[イベントバス] ページで、[default](システムイベントバス)をクリックします。
左側のナビゲーションペインで、[イベントルール] をクリックします。表示されるページで、[ルールの作成] をクリックします。
[ルールの作成] ウィザードで、次の手順を実行します。
[基本情報の構成] ステップで、[名前] パラメータと [説明] パラメータを構成し、[次のステップ] をクリックします。
[イベントパターンの構成] ステップで、次のパラメータを構成し、[次のステップ] をクリックします。
[イベントソースの種類]:[alibaba Cloud サービスイベントソース] を選択します。
[イベントソース]:イベントがルーティングされるAlibaba Cloudサービスを選択します。
[イベントタイプ]:ルーティングするイベントの種類を選択します。
[パターンコンテンツ]:イベントパターンを入力します。
[ターゲットの構成] ステップで、次のパラメータを構成し、[作成] をクリックします。
[サービスタイプ]:[eventbridge] を選択します。
[デスティネーションタイプ]:[同一アカウントのイベントバス] を選択します。
[リージョン]:イベントバスが存在するリージョンを選択します。
[イベントバス]:イベントをルーティングするイベントバスを選択します。
[イベント]:このパラメータは自動的に [完全なイベント] に設定されます。完全なデータ構造は変換なしでルーティングされます。データ構造は CloudEvents 1.0 仕様で定義されています。
説明イベントルールには最大 5 つのイベントターゲットを構成できます。
イベントをルーティングするイベントバスでイベントをクエリできます。詳細については、「イベントのクエリ」をご参照ください。
アカウント間でイベントをルーティングする
手順 1:RAM ロールを作成する
イベントを受信する Alibaba Cloudアカウント B を使用して、RAMコンソール にログインします。
左側のナビゲーションペインで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] ページの [ロールタイプの選択] セクションで、[alibaba Cloudアカウント] を選択し、[次へ] をクリックします。
RAM ロールを構成します。
[RAMロール名] パラメータを構成します。
(オプション) [メモ] パラメータを構成します。
[信頼できるAlibaba Cloudアカウントの選択] パラメータを [他のalibaba Cloudアカウント] に設定し、イベントを送信する Alibaba Cloudアカウント A の ID を入力して、[OK] をクリックします。
手順 2:RAM ロールに権限を付与する
イベントを受信する Alibaba Cloudアカウント B を使用して、RAMコンソール にログインします。
左側のナビゲーションペインで、 を選択します。
[ロール] ページで、管理する RAM ロールを見つけ、権限の付与[アクション] 列の をクリックします。
複数の RAM ロールを選択し、RAM ロールリストの下部にある [権限の付与] をクリックして、一度に複数の RAM ロールに権限を付与することもできます。
[権限の付与] パネルで、RAM ロールに権限を付与します。
認可スコープを指定します。
[アカウント]:権限は現在の Alibaba Cloudアカウントに付与されます。
[リソースグループ]:権限は特定のリソースグループに付与されます。
説明[リソーススコープ] パラメータで [リソースグループ] を選択する場合は、クラウドサービスがリソースグループをサポートしていることを確認してください。詳細については、「リソースグループで動作するサービス」をご参照ください。
プリンシパルを指定します。
プリンシパルは、権限が付与される RAM ロールです。デフォルトでは、現在の RAM ロールが指定されています。別の RAM ロールを指定することもできます。
ポリシーを選択します。
[ポリシー] セクションで、AliyunEventBridgePutEventsPolicy を見つけて選択します。次に、[権限の付与] をクリックします。
説明一度に最大 5 つのポリシーを RAM ユーザーにアタッチできます。5 つを超えるポリシーを RAM ユーザーにアタッチする場合は、操作を複数回実行します。
システムポリシーが要件を満たしていない場合は、カスタムポリシーを作成してきめ細かいアクセス制御を実装できます。これにより、イベントを送信するアカウントに特定のイベントバスに対する権限を付与できます。詳細については、「カスタムポリシーの作成」をご参照ください。
手順 3:信頼ポリシーを変更する
イベントを受信する Alibaba Cloudアカウント B を使用して、RAMコンソール にログインします。
左側のナビゲーションペインで、 を選択します。
[ロール] ページで、作成した RAM ロールの名前をクリックします。
[信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。
信頼ポリシーの内容を変更し、[信頼ポリシードキュメントの保存] をクリックします。
次のサンプルコードは、信頼ポリシーの例を示しています。
{ "Statement":[ { "Action":"sts:AssumeRole", "Effect":"Allow", "Principal":{ "Service":[ "${Account A}@eventbridge.aliyuncs.com" // アカウントAのEventBridgeサービス ] } } ], "Version":"1" }
信頼ポリシーを変更した後、イベントを送信する Alibaba Cloudアカウント A の EventBridge は RAM ロールを引き受けることができます。
手順 4:イベントルールを作成する
イベントを送信する Alibaba Cloudアカウント A を使用して、EventBridge コンソール にログインします。左側のナビゲーションペインで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [イベントバス] ページで、[default](システムイベントバス)をクリックします。
左側のナビゲーションペインで、[イベントルール] をクリックします。表示されるページで、[ルールの作成] をクリックします。
ルールの作成 ウィザードで、次の手順を実行します。
[基本情報の構成] ステップで、[名前] パラメータと [説明] パラメータを構成し、[次のステップ] をクリックします。
[イベントパターンの構成] ステップで、次のパラメータを構成し、[次のステップ] をクリックします。
[イベントソースの種類]:[alibaba Cloud サービスイベントソース] を選択します。
[イベントソース]:イベントがルーティングされる Alibaba Cloudサービスを選択します。
[イベントタイプ]:ルーティングするイベントの種類を選択します。
[パターンコンテンツ]:イベントパターンを入力します。
[ターゲットの構成] ステップで、次のパラメータを構成し、[作成] をクリックします。
[サービスタイプ]:[eventbridge] を選択します。
[デスティネーションタイプ]:[アカウント間のイベントバス] を選択します。
[リージョン]:Alibaba Cloudアカウント B が存在するリージョンを選択します。
[アカウント ID]:Alibaba Cloudアカウント B の ID を入力します。
[イベントバス名]:default と入力します。
[ロール]:このトピックの「前提条件」セクションで作成した RAM ロールの名前を入力します。
[イベント]:このパラメータは自動的に [完全なイベント] に設定されます。完全なデータ構造は変換なしでルーティングされます。データ構造は CloudEvents 1.0 仕様で定義されています。
説明イベントルールには最大 5 つのイベントターゲットを構成できます。
イベントを受信する Alibaba Cloudアカウント B を使用して、イベントをクエリできます。詳細については、「イベントのクエリ」をご参照ください。