AWSは最近、Amazon EventBridgeの新機能を発表した。この機能により、ユーザーは異なるアカウントのAWSサービスに直接イベントを配信できるようになる。同社によると、この機能強化により、複数のアカウントを使用してセキュリティを向上させ、ビジネスプロセスを簡素化することが可能になるという。
Amazon EventBridgeイベントバスは、アプリケーション、サードパーティSaaS、AWSサービス間でイベントをルーティングすることで、スケーラブルなイベント駆動型アプリケーションを実現するサーバーレスイベントブローカーである。新しく導入された機能により、ユーザーはインフラを追加することなく、別のアカウントのサービスを直接ターゲットにできる。AWSのプリンシパルソリューションアーキテクト Chris McPeek氏はAWS Computeのブログ投稿でこう説明する:
この新しいEventBridge機能を使えば、ソースイベントバスから別のアカウントにある目的のターゲットに直接イベントを配信ができます。これは、アーキテクチャと権限モデルを簡素化し、ソースからターゲットへのパスに沿ってイベントを処理するコンポーネントを少なくすることで、イベント駆動型ソリューションのレイテンシーを削減します。
例えば受信チームがIdentity Access Management(IAM)権限を与えるだけで、ユーザーはEventBridgeイベントバスから別のアカウントの別のチームのSQSキューにイベントをルーティングできる。イベントは、Amazon SQS、AWS Lambda、Amazon Kinesis Data Streams、Amazon SNS、Amazon API Gatewayなど、リソースベースのIAMポリシーをサポートするターゲットにアカウントに跨って配信できる。
(出典:AWS Computeのブログ投稿)
同社はソースアカウントとターゲットアカウント間の相互信頼を確立することで、クロスアカウントイベント配信を有効化することを推奨している。ソースイベントバスルールは、指定されたターゲットにイベントを送信するためにAWS IAMロールを使用しなければならない。これを実現するためには、これらのルールに実行ロールを添付する必要がある。
異なるアカウントのターゲットは、ソースアカウントの実行ロールからイベントを受信するためのリソースアクセスポリシーを必要とする。Amazon SQSキュー、Amazon SNSトピック、AWS Lambdaファンクションなどのターゲットはこのプロセスをサポートする。
ソースアカウントにIAMロールを、ターゲットアカウントにリソースポリシーを設定することで、PutEventsアクションに対して細かな制御が可能になる。ユーザーは、組織内で誰がイベントを送受信できるかを規制するためにサービスコントロールポリシー(SCP)を定義することもできる。
クロスアカウントイベント配信をセットアップするには(ソースイベントバスが存在すると仮定して)、ユーザーはこれら3つのステップを実行すればよい。
-
ターゲットアカウント:配信ターゲット(SQSキューなど)を作成する。
-
ソースアカウント:イベント配信のルールを設定し、ターゲットSQSキューのARNを設定し、メッセージ送信権限を持つ実行ロールをアタッチする。
-
ターゲットアカウント:SQSキューにリソースポリシーを適用し、ソースイベントバスの実行ロールがイベントを送信できるようにする。
サーバーレスヒーロー Yan Cui氏がXでこうツイートした:
これは素晴らしいですね!EventBridgeは、最初にターゲットアカウントのデフォルトバスにイベントを送信することなく、クロスアカウントターゲットに直接イベントを配信するようになりました。
クロスアカウントイベント配信により、AWSはAppSync Integrationのような機能を追加した後、サービスに別の機能をもたらした。LinkedInの投稿で、AWSサーバーレスヒーロー Sheen Brisals氏はこう述べている:
ある意味、この機能はEventBridgeを "真の"エンタープライズイベントストリーミングプラットフォームにプッシュしています。まだ埋めるべきギャップはありますが、着実に前進しています。
ユーザーはAmazon EventBridgeのドキュメントページやGitHubリポジトリで、より詳細な情報やガイダンスを見つけることができる。また、Event Bridgeの価格に関する詳細はAmazon EventBridgeの料金ページで確認できる。