パートナーイベントソースと EventBridge イベントバスの関連付けを Terraform で実施する

パートナーイベントソースと EventBridge イベントバスの関連付けを Terraform で実施する

2026.02.06

概要

EventBridge のパートナーイベントソースを利用することで、AWS 外の SaaS からイベントを受信して EventBridge で処理することができます。

スクリーンショット 2026-02-06 20.40.54.png

Amazon EventBridge での SaaS パートナーからのイベントの受信

この際、まず SaaS 側でイベントを出力する設定をしてから、AWS 側でパートナーイベントソースと EventBridge Bus の関連付けを行う必要があります。
マネジメントコンソールから実施すると下記のような作業です。

event-bus-terraform.png

この作業を実施することでカスタムイベントバスが作成されて、イベントを受信できるようになります。
この作業を IaC で行い、EventBridge イベントバスも IaC 管理することができるようです。

https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-saas.html#eb-saas-integration

ということで、SaaS は Okta、IaC ツールは Terraform で試してみます。

やってみた

まず、Okta 公式ドキュメント にしたがって Okta 側でログストリーミング設定を行います。

スクリーンショット 2026-02-06 19.58.38.png

続いて、Terraform で EventBridge Bus を作成します。
この際、SaaS ごとに決まった命名規則で作成する必要があり、Okta だと下記のような形式になります。

aws.partner/okta.com/{okta_subdomain}/{event_source_name}

問題はこの命名規則をどうやって取得すれば良いのかです。
各 SaaS 側のドキュメントを漁ったり、実際に設定して命名規則を判断するしかなさそうでした...
Okta の場合は 公式ドキュメント に書いてあり、ログストリーミング設定時に指定した AWS Event Source Name とサブドメイン名を利用します。

aws.partner/okta.com/yourOktaSubdomain/yourAWSEventSourceName

SaaS ごとの命名規則が決まれば、 aws_cloudwatch_event_bus の name 属性と event_source_name 属性に同じ値を指定してリソースを作成するだけです。

resource "aws_cloudwatch_event_bus" "okta_partner_event_bus" {
  name              = "aws.partner/okta.com/${var.okta_sub_domain}/${var.event_source_name}"
  event_source_name = "aws.partner/okta.com/${var.okta_sub_domain}/${var.event_source_name}"
  description       = "EventBridge Bus for Okta Partner Event Source"
}

terraform diff は下記のようになりました。

Terraform will perform the following actions:

  # aws_cloudwatch_event_bus.okta_partner_event_bus will be created
  + resource "aws_cloudwatch_event_bus" "okta_partner_event_bus" {
      + arn               = (known after apply)
      + description       = "EventBridge Bus for Okta Partner Event Source"
      + event_source_name = "aws.partner/okta.com/trial-xxxxxx/okta-system-log"
      + id                = (known after apply)
      + name              = "aws.partner/okta.com/trial-xxxxxx/okta-system-log"
      + region            = "ap-northeast-1"
      + tags_all          = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.

terraform apply すると無事パートナーイベントソースが「アクティブ」になりました!

スクリーンショット 2026-02-06 20.37.02.png

最後に

このくらいの作業なら IaC 管理外にしちゃっても良いんですけどね。
可能な限り IaC 管理したい場合は試してみて下さい!

この記事をシェアする

FacebookHatena blogX

関連記事