WorkDocs の InitiateDocumentVersionUpload、UpdateDocument API 呼び出しをEventBridgeに連携させる方法

キーワード:WorkDocs, 通知, メール通知, CloudTrail, EventBridge, SNSトピック

参考ドキュメント: https://docs.aws.amazon.com/ja_jp/workdocs/latest/adminguide/cloudtrail_logging.html https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-service-event.html

やりたいこと

WorkDocs サイトに新しいファイルがアップロードされたり、既存のファイルが変更された場合にメールで通知させたい

ユースケース

  • 定期的にパートナー企業からのデータを受け取る
  • パートナー企業が複数あり、それぞれのフォルダには閲覧権限を与えずに管理したい

今回使ったAWSサービス

AWS サービス 機能 用途・目的
WorkDocs フォルダ・ファイル管理、ユーザーへの閲覧権限を管理します
CloudTrail 証跡 WorkDocs で実行されるアクションのAPI コールをイベントとして記録します
イベント履歴 イベントとして記録された WorkDocs アクションを確認します
EventBridge イベントルール CloudTrail からの情報を元にイベントを発火させる条件
イベントバス ※ デフォルト default イベントバスを使用します。AWSサービスからのイベント受信には、デフォルトイベントバスのみ対応しています。
SNS トピック 発火されたイベントを Eメールで通知するために使用します

つまずいたところ

  • CloudTrail 証跡は管理イベントを記録するように設定します。念の為、WorkDocsを作成したリージョンと同じリージョンで証跡を作成します。
  • EventBridge イベントバスは、デフォルトを使用します。カスタムイベントバスで作成したら WorkDocs サービスから連携される "AWS API Call via CloudTrail" をトリガーにしたイベントルールが実行されませんでした。デフォルトイベントバスにイベントルールを作成します。

設定内容

CloudTrail 証跡

SNS トピックを作成し、サブスクリプションで通知先メールアドレスを登録します。

EventBridge イベントルール

デフォルトイベントバスにルールを作成します

イベントパターン

ターゲット

ターゲットは SNS トピックを指定します。

ターゲットの入力トランスフォーマーで、通知メッセージを編集することができます。

デフォルトイベントバスの「検知を開始する」で有効化

通知メールサンプル

以上、WorkDocs に新しいファイルがアップロードされたらメール通知させる方法でした。