特定のケースでは、同じ組織または関連組織内の異なるAlibaba Cloudアカウント間でイベントを交換する必要があります。 EventBridge のアカウント間イベントルーティング機能を使用すると、複数のAlibaba Cloudアカウントから1つのAlibaba Cloudアカウントにイベントをルーティングして、一元的に処理できます。このトピックでは、アカウント間イベントルーティングの背景情報、制限、および手順について説明します。また、結果の検証方法についても説明します。
背景情報
次の図に示す実際のシナリオでは、Alibaba Cloudアカウント A と B は同じ組織または関連組織に属しています。以下の手順を実行することで、Alibaba Cloudアカウント A のResource Access Management(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 フィールドに基づいてイベントをフィルタリングできます。
制限
Alibaba Cloudアカウント間でイベントをルーティングできるのは、同じリージョン内のみです。
システムイベントバスのイベントは、システムイベントバスにのみルーティングできます。カスタムイベントバスのイベントは、カスタムイベントバスにのみルーティングできます。
手順 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アカウントに付与されます。
[リソースグループ]:権限は特定のリソースグループに付与されます。
説明[リソーススコープ] パラメーターに [ResourceGroup] を選択する場合は、クラウドサービスがリソースグループをサポートしていることを確認してください。詳細については、「リソースグループで動作するサービス」をご参照ください。
プリンシパルを指定します。
プリンシパルは、権限が付与される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アカウント] に設定されます。
[アカウント ID]:イベントを受信するAlibaba Cloudアカウント B の ID を入力します。
[イベントバス名]:default と入力します。
[イベント]:このパラメーターは自動的に [完全なイベント] に設定されます。完全なデータ構造は変換なしでルーティングされます。データ構造はCloudEvents 1.0仕様で定義されています。
説明イベントルールには最大 5 つのイベントターゲットを設定できます。
結果の確認
イベントを受信するAlibaba Cloudアカウント B を使用して、イベントをクエリできます。詳細については、「イベントのクエリ」をご参照ください。