このトピックでは、Simple Message Queue (旧称:MNS) のトピックモデルのクロスアカウントプッシュ権限付与を設定する方法について説明します。
前提条件
2 つの Alibaba Cloud アカウント A と B が必要です。
Alibaba Cloud アカウント A: アカウント ID は
testAccountIDです。Alibaba Cloud アカウント B: アカウント ID は
testAccountID1です。
このトピックでは、Alibaba Cloud アカウント A が Alibaba Cloud アカウント B にメッセージをプッシュする例を使用します。
ステップ 1: アカウント B の RAM ロールを作成する
RAM ロールを作成し、アカウント A がこのロールを偽装できるようにします。
Alibaba Cloud アカウント B または RAM 管理者を使用して Resource Access Management (RAM) コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] ページで、[信頼できるエンティティタイプ] を [Alibaba Cloud サービス] に設定し、特定の Alibaba Cloud サービスを選択して、[OK] をクリックします。

[ロールの作成] ダイアログボックスで、[ロール名] を入力し、[OK] をクリックします。
RAM ロールの信頼ポリシーを変更します。
[信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。
エディターで信頼ポリシーを変更し、[OK] をクリックします。
説明"Service": "mns.aliyuncs.com"を"Service": "testAccountID@mns.aliyuncs.com"に置き換えます。testAccountIDを Alibaba Cloud アカウント A の ID に置き換えます。
ステップ 2: アカウント B の RAM ロールにクロスアカウント権限を付与する
Simple Message Queue (旧称:MNS) キューへのプッシュ
Alibaba Cloud アカウント B または RAM 管理者を使用して Resource Access Management (RAM) コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[ビジュアルエディター] タブをクリックします。
次のようにアクセスポリシーを設定し、[OK] をクリックします。
[エフェクト] セクションで、[許可] を選択します。
[サービス] セクションで、Alibaba Cloud サービスリストから Simple Message Queue (旧称:MNS) を選択します。
[アクション] セクションで、[アクションの指定] を選択します。次に、[書き込み] の下にある mns:SendMessage チェックボックスを選択します。
[リソース] セクションで、[すべてのリソース] または [特定のリソース] を選択します。
[ポリシーの作成] ダイアログボックスで、[ポリシー名] と [メモ] を入力し、[OK] をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、ステップ 1 で作成した RAM ロールの名前をクリックします。
[権限管理] タブで、[権限の追加] をクリックします。
[権限の追加] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。
[ポリシータイプ]: [カスタムポリシー] を選択します。
[ポリシー名]: テキストボックスに、作成したばかりのポリシーの名前を入力します。
Function Compute へのプッシュ
Alibaba Cloud アカウント B または RAM 管理者を使用して Resource Access Management (RAM) コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、ステップ 1 で作成した RAM ロールの名前をクリックします。
[権限管理] タブで、[権限の追加] をクリックします。
[権限の追加] ダイアログボックスで、次のようにアクセスポリシーを設定し、[OK] をクリックします。
[リソース範囲]: [アカウントレベル] を選択します。
[アクセスポリシー]: AliyunFCInvocationAccess チェックボックスを選択します。
ApsaraMQ for Kafka へのプッシュ
Alibaba Cloud アカウント B または RAM 管理者を使用して Resource Access Management (RAM) コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[スクリプトエディター] タブをクリックし、エディター内のテキストを次の内容に置き換えてから、[OK] をクリックします。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "eventbridge:*EventStreaming", "Resource": "*" } ] }[ポリシーの作成] ダイアログボックスで、[ポリシー名] と [メモ] を入力し、[OK] をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、ステップ 1 で作成した RAM ロールの名前をクリックします。
[権限管理] タブで、[権限の追加] をクリックします。
[権限の追加] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。
[ポリシータイプ]: [カスタムポリシー] を選択します。
[ポリシー名]: テキストボックスに、作成したばかりのポリシーの名前を入力します。
ステップ 3: アカウント B からクロスアカウント権限付与のための RAM ロールの ARN を取得する
クロスアカウントシナリオでは、Alibaba Cloud アカウント A を使用してサブスクリプションを作成する場合、RAM ロールの Alibaba Cloud リソースネーム (ARN) を サービスにリンクされたロール フィールドに入力する必要があります。
Alibaba Cloud アカウント B または RAM 管理者を使用して Resource Access Management (RAM) コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、ステップ 1 で作成した RAM ロールの名前をクリックします。
[基本情報] セクションで、[ARN] の横にある [コピー] をクリックします。

参考
Simple Message Queue (旧称:MNS) トピックにアカウントをまたいでサブスクライブする方法の詳細については、次のトピックをご参照ください。