複数のエンタープライズが EventBridge で共同作業を行う場合、リソース所有者は、認証情報を共有することなく、イベントバスへのイベントの公開など、特定の操作を別のアカウントにデリゲートする必要があることがよくあります。Resource Access Management (RAM) は、クロスアカウントロールの引き受けによってこれを解決します。リソース所有者は RAM ロールを作成し、必要な EventBridge 権限を付与し、信頼できるエンティティを承認済みアカウントに割り当てます。承認済みアカウントのユーザーは、このロールを引き受けて所有者のリソースにアクセスします。
このアプローチには、次の3つの利点があります。
認証情報の共有なし:リソース所有者は、権限とリソースに対する完全制御を維持しながら、タスクをデリゲートします。
独立したユーザー管理:従業員が承認済みアカウントに参加または退職しても、リソース所有者は権限を更新する必要はありません。承認済みアカウントは、独自の RAM ユーザーを管理し、所有者のリソースへのアクセスを制御します。
即時取り消し:リソース所有者は、RAM ロールを削除するか、ポリシーをデタッチすることで、デリゲートされたすべてのアクセスをいつでも取り消すことができます。
シナリオ
エンタープライズ A (リソース所有者) は EventBridge リソースを所有しており、エンタープライズ B (承認済みアカウント) に、イベントバスへのイベントの公開など、特定の操作を実行する権限を付与したいと考えています。
次のステップでは、2つのアカウントを切り替えながら、完全なセットアップについて説明します。
| ステップ | 実行者 | アクション |
|---|---|---|
| 1 | エンタープライズ A | エンタープライズ B によって信頼される RAM ロールの作成 |
| 2 (オプション) | エンタープライズ A | きめ細かな制御のためのカスタムポリシーの作成 |
| 3 | エンタープライズ A | RAM ロールにポリシーをアタッチ |
| 4 | エンタープライズ B | RAM ユーザーの作成 |
| 5 | エンタープライズ B | RAM ユーザーにロールを引き受ける権限を付与 |
| 6 | エンタープライズ B | エンタープライズ A の EventBridge リソースへのアクセス |
ステップ 1: RAM ロールの作成 (エンタープライズ A)
エンタープライズ A の Alibaba Cloud アカウントで RAM コンソール にログインし、エンタープライズ B の Alibaba Cloud アカウントを信頼できるエンティティとして RAM ロールを作成します。
詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールの作成」をご参照ください。
ステップ 2 (オプション): カスタムポリシーの作成 (エンタープライズ A)
利用可能なシステムポリシーが要件を満たさない場合は、きめ細かなアクセス制御のためのカスタムポリシーを作成します。EventBridge はリソースレベルの権限をサポートしています。
サポートされているアクションとリソースの完全なリストについては、「ポリシー」をご参照ください。
カスタムポリシーの作成手順については、「カスタムポリシーの作成」をご参照ください。
ステップ 3: RAM ロールへのポリシーのアタッチ (エンタープライズ A)
新規作成された RAM ロールには権限がありません。システムポリシー、またはステップ 2 で作成したカスタムポリシーをアタッチします。
詳細については、「RAM ロールへの権限付与」をご参照ください。
最小権限の原則に従ってください。エンタープライズ B が特定のタスクに必要とする権限のみを付与します。AdministratorAccess のような広範なポリシーをクロスアカウントロールにアタッチすることは避けてください。
ステップ 4: RAM ユーザーの作成 (エンタープライズ B)
エンタープライズ B の Alibaba Cloud アカウントで RAM コンソール にログインし、RAM ユーザーを作成します。
詳細については、「RAM ユーザーの作成」をご参照ください。
ステップ 5: AssumeRole 権限の付与 (エンタープライズ B)
ステップ 4 で作成した RAM ユーザーに AliyunSTSAssumeRoleAccess システムポリシーをアタッチします。このポリシーにより、RAM ユーザーは Security Token Service (STS) の AssumeRole オペレーションを呼び出して、エンタープライズ A によって作成された RAM ロールを引き受けることができます。
詳細については、「RAM ユーザーへの権限付与」をご参照ください。
ステップ 6: エンタープライズ A のリソースへのアクセス (エンタープライズ B)
ステップ 1 から 5 を完了すると、エンタープライズ B の RAM ユーザーは、コンソールまたは API を介してエンタープライズ A の EventBridge リソースにアクセスできます。
コンソールからのアクセス
ブラウザで RAM ユーザーログインポータル を開きます。
RAM ユーザー名を入力し、[次へ] をクリックします。次に、パスワードを入力し、[ログイン] をクリックします。
説明RAM ユーザー名は、
<$username>@<$AccountAlias>または<$username>@<$AccountAlias>.onaliyun.comの形式を使用します。<$AccountAlias>はアカウントエイリアスです。エイリアスが設定されていない場合は、デフォルトの Alibaba Cloud アカウント ID が使用されます。コンソールのホームページで、右上隅のプロフィール画像にカーソルを合わせて、[ロールの切り替え] をクリックします。
「[ロールの切り替え]」ページで、エンタープライズ A の「[エンタープライズ別名/デフォルトドメイン名]」と「[ロール名]」を入力し、「[切り替え]」をクリックします。
エンタープライズ A の EventBridge リソースで操作を実行します。
API からのアクセス
エンタープライズ B の RAM ユーザーとして API オペレーションを呼び出すには、エンタープライズ A の RAM ロールの ARN を使用して AssumeRole オペレーションを呼び出し、一時的な認証情報を取得します。AssumeRole によって返される次の一時的な認証情報を API リクエストに含めます。
| 認証情報 | 説明 |
|---|---|
AccessKeyId | AssumeRole |
AccessKeySecret | AssumeRole |
SecurityToken | AssumeRole |
STS によって返される一時的な認証情報には有効期限があります。リクエストの失敗を避けるため、有効期限が切れる前に更新してください。