0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Workato : Boxガバナンス強化。専用ツールはもういらない!?~「全イベント」をトリガーにするカスタムコネクタを作ってみた(共有リンクの自動パスワード付与など)~

Posted at

はじめに

Workatoを使っていると、標準のコネクタでは「あと一歩、これを使いたい」という場面に出くわすことがあります。

今回はBoxがその対象です。 標準のBoxトリガーは便利ですが、「検知できるイベントの種類」に制約があります。

そこで今回、Boxの全イベントを取得できるカスタムコネクタ(Box Events API利用) を作成しました。 技術的な実装概要に加えて、このコネクタを使って 「企業のルールに則った柔軟なセキュリティ強化や運用自動化」 を検討したいと思います。

Workato って何?
Workatoはクラウドベースのローコード自動化ツールです。
プログラミングの深い知識がなくても、「Aが起きたらBをする」というような自動化の仕組みを直感的に作れるのが最大の特徴です。
専門用語では 「iPaaS」と呼ばれます。

背景:標準コネクタの課題

Workatoに標準搭載されているBoxコネクタのトリガーは、主に以下のような「フォルダやファイル」にフォーカスしたものが中心です。

  • New file in folder
  • New CSV file in folder
  • New event in folder (特定フォルダ内のイベント)

しかし、セキュリティ運用や全体的なガバナンスを考えると、以下のようなニーズが出てきます。

  • 「誰かが共有リンクを作成した」ことを検知したい
  • 「特定のアカウントがダウンロードした」ことを検知したい
  • 「フォルダを問わず、Box全体での動き」を監視したい

これらは標準コネクタではカバーしきれない場合が多いため、Box Events APIを利用したカスタムコネクタを作成することにしました。

作成したカスタムコネクタの概要

Box Platform APIの events エンドポイントを利用して、Box内で発生したアクティビティを取得します。

  • 認証方法
    • OAuth または JWT
  • トリガー対象
    • Box Events APIで取得可能なすべてのイベントタイプ
  • 実行頻度
    • ポーリング方式(N分おきに実行)
  • 取得方法
    • stream_position を管理し、前回取得した位置から差分のみを取得する

これにより、標準コネクタでは拾えなかった「共有リンク作成(ITEM_SHARED)」「コラボレータ追加(COLLABORATION_INVITE)」「プレビュー(ITEM_PREVIEW)」などの細かい操作ログをWorkatoのレシピで扱えるようになります。

取得できるBoxイベント一覧はこちら
イベントタイプ

image.png

活用例

Box Event APIが使えることで、できそうなことを考えました。

活用例1:共有リンクの自動パスワード付与(本記事のメイン)

これが今回一番やりたかったことです。
Boxではユーザーが自由に共有リンクを作成できますが、 誤って「公開(パスワードなし)」で設定してしまうリスクがあります。これを自動で検知して、パスワードを設定します。
これにより、人手による監査を待たずに、共有状態を自動修正することが可能になります。

レシピのロジック

  • トリガー

    • カスタムコネクタで「共有リンク作成/更新 (SHARE)」イベントを検知
  • 条件分岐

    • 対象ファイルの共有リンク設定を取得
    • access レベルが open (公開) かつ is_password_enabled が false か判定
  • アクション

    • 「パスワードを設定」
    • 「パスワードを通知」

活用例2:外部ドメイン招待の即時監査

標準機能でもドメイン制限は可能ですが、プロジェクト単位で例外的に許可したい場合など、運用が複雑になりがちです。

  • トリガー

    • コラボレータの追加・招待 (COLLABORATION_INVITE / COLLABORATION_ACCEPT)
  • 処理

    • 追加されたメールアドレスのドメインをチェック。自社ドメインや許可リストにない場合、セキュリティ担当者へ通知する。権限を 降格/剥奪 する。

活用例3:フォルダ名の変更を修正

組織が管理するフォルダ名を変えられてしまった場合、修正します。

  • トリガー

    • リネーム(RENAME)
  • 処理

    • リネームされたフォルダをチェック。管理対象のフォルダなら元の名前に戻す。

活用例4:退職者のデータの持ち出しを検知

退職者のダウンロードを検知します。

  • トリガー

    • ダウンロード (DOWNLOAD)
  • 処理

    • ダウンロードしたユーザーをチェック。退職者の場合セキュリティ担当者へ通知する。

活用例5:機密キーワードを含むファイルの監視

機密ファイルの誤配置や、誰がアクセスしてしまったか検知したいパターンがあります。

  • トリガー

    • プレビュー(PREVIEW)
    • アップロード(UPLOAD)
  • 処理

    • ファイル名に「社外秘」「厳秘」「パスワード」などのキーワードを含むファイルがアップロードされた場合、そのファイルが適切なフォルダにあるかチェックする。不適切な場所にある場合、管理者に通知する。
    • ファイル名に「社外秘」「厳秘」「パスワード」などのキーワードを含むファイルがプレビューされた場合、閲覧者をチェックする。不適切な場合、管理者に通知する。

まとめ

標準コネクタで実現できない要件も、API仕様を理解してカスタムコネクタを組むことで、Workatoの可能性は大きく広がります。
特にセキュリティやガバナンス周りの自動化において、Box Events API × Workato を組み合わせることで、各企業のセキュリティルールに則って柔軟に自動化でき、非常に強力です。

カスタムコネクタの概要についてはこちら
Workato コネクター SDK

好評なら続きます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?