EventBridge で別アカウントの AWS のサービスにイベントを送信する - Amazon EventBridge

EventBridge で別アカウントの AWS のサービスにイベントを送信する

EventBridge は、ある AWS アカウントのイベントバスから別アカウントのサポートされているAWSサービスにイベントを送信できるため、イベント駆動型ソリューションのアーキテクチャが簡素化され、レイテンシーを低減します。

例えば、複数のアカウントでホストされている一連のイベントバスがあり、さらに非同期処理と分析を行うために、セキュリティ関連のイベントを一元化されたアカウントの Amazon SQS キューに送信する必要があるとします。

EventBridge は、同じリージョンでのクロスアカウントターゲットへのイベント送信をサポートしています。

サポートされているサービス

EventBridge は、その他の AWS アカウントの次のターゲットへのイベント送信をサポートしています。

  • Amazon API Gateway API

  • Amazon Kinesis Data Streams ストリーム

  • Lambda 関数

  • Amazon SNS トピック

  • Amazon SQS キュー

料金については、「Amazon EventBridge の料金」を参照してください。

アクセス許可

ターゲットとして AWS のサービスへのクロスアカウントイベント配信のアクセスを有効にするには、次のステップを実行します。

  • 実行ロールを指定する

  • リソースポリシーをターゲットにアタッチする

実行ロールを指定する

ルールがトリガーされたときにターゲットにイベントを送信する際に EventBridge が使用する実行ロールを指定します。

この実行ロールは、イベントバスと同じアカウントに存在する必要があります。EventBridge はターゲットを呼び出すときにこのロールを引き受け、このアカウントに適用されるサービスコントロールポリシー (SCP) が適用されます。

SCP は、組織のアクセス許可の管理に使用できる組織ポリシーの一種です。詳細については、AWS Organizations ユーザーガイドの「サービスコントロールポリシー」を参照してください。

例えば、次のポリシーでは、EventBridge サービスが実行ロールを引き受けるのを許可します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

また、次のポリシーでは、ロールが Amazon SQS キューにメッセージを送信するのを許可します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-east-1:123456789012:queue-name" } ] }

AWS Organizations を使用するアカウントの場合、次の例に示すように、SCP を適用して組織に属さないリソースの呼び出しを防ぐことができます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "*" ], "Resource": "*", "Effect": "Deny", "Condition": { "StringNotEquals": { "aws:ResourceOrgID": "o-1234567890" } } } ] }
注記

イベントバス以外のクロスアカウントターゲットの場合、呼び出し元のアカウントから実行ロールを指定しても、イベントバスとは異なるアカウントからの PutTarget の呼び出しはサポートされていません。

リソースアクセスポリシーをターゲットにアタッチする

クロスアカウントイベントを受信できる AWS のサービスは、IAM リソースベースのポリシーをサポートします。これにより、リソースアクセスポリシーをターゲットにアタッチできるため、どのアカウントがアクセスできるかを指定できます。

前の例に基づいて、次のポリシーでは、イベントバスのアカウントにターゲットアカウントの Amazon SQS キューへのアクセスを許可します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "SQS:SendMessage" ], "Effect": "Allow", "Resource": "arn:aws:sqs:us-east-1:123456789012:queue-name", "Principal": { "AWS": "123456789012" } } ] }

詳細については、「AWS Identity and Access Management ユーザーガイド」の「アイデンティティベースおよびリソースベースのポリシー」を参照してください。

他のアカウントの AWS サービスにイベントを送信するルールの作成

別のアカウント内の AWS のサービスをターゲットとして指定することは、イベントバスのルール作成の一部です。

コンソールを使用して、イベントを別の AWS アカウントの AWS サービスに送信するルールを作成するには
  1. Amazon EventBridge でイベントに応答するルールの作成」のステップに従います。

  2. ターゲットを選択する」ステップで、ターゲットタイプを選択するように求めるプロンプトが表示された場合:

    1. [AWS サービス] を選択します。

    2. クロスアカウントターゲットをサポートする AWS サービスを選択します。

      詳細については、「サポートされているサービス」を参照してください。

    3. [ターゲットの場所][別の AWS アカウントのターゲット] を選択します。

    4. イベントを送信するターゲットリソースの ARN を入力します。

    5. 使用する実行ロールの名前をドロップダウンリストから選択します。

    6. 選択したサービスにリクエストされた追加の情報を入力します。表示されるフィールドは、選択したサービスによって異なります。

  3. ステップに従ってルールの作成を完了します。