ある AWS アカウントで Amazon EventBridge ルールを設定して、別のアカウントのカスタムイベントバスにイベントを送信したいと考えています。
解決策
送信先アカウントからイベントバスを作成し、次のリソースベースのポリシーを設定します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "WebStoreCrossAccountPublish",
"Effect": "Allow",
"Action": [
"events:PutEvents"
],
"Principal": {
"AWS": "arn:aws:iam::AccountA:root"
},
"Resource": "arn:aws:events:Region:AccountB:event-bus/central-event-bus"
}
]
}
注: AccountA をソースアカウントの AWS アカウント ID に、Region を送信先アカウントの AWS リージョンに、AccountB を送信先アカウントのアカウント ID に置き換えます。
その後、次の手順を実行してルールを設定します。
- ソースアカウントで EventBridge コンソールを開きます。
- ナビゲーションペインで [ルール] を選択し、[ルールを作成] を選択します。
- [イベントバスを選択] で [AWS のデフォルトのイベントバス] を選択します。
- [ターゲットを選択] で [ターゲット] を選択し、[別の AWS アカウントのイベントバス] を選択します。
- [イベントバス] を選択し、送信先アカウントのイベントバスの Amazon リソースネーム (ARN) を入力します。
- [ロール] で、送信先イベントバスの PutEvents アクセス許可を持つ AWS Identity and Access Management (IAM) ロールを選択します。使用できる既存のロールがない場合は、次のアクセス許可ポリシーを使用して IAM ロールを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"events:PutEvents"
],
"Resource": [
"EventBusARN"
]
}
]
}
注: EventBusARN を送信先アカウントのイベントバスの ARN に置き換えます。
- [ルールを作成] を選択します。
関連情報
Sending and receiving events between AWS accounts in Amazon EventBridge (Amazon EventBridge を使用して AWS アカウント間でイベントを送受信する)