Drataのワークフローを使うと、決まった出来事が起きたときに、タスクの作成、通知、Webhookの送信などを自動で行えます。手作業での確認や催促に頼らずに、日々のコンプライアンスの作業を進められます。このページでは、ワークフローで繰り返しの作業を自動化する方法として、ワークフローの構成と作り方、コントロール、証跡、リスク、要員を起点にした自動化の例、ワークフローの公開と管理を説明します。
ワークフローの構成
ワークフローは、次の3つの要素でできています。
| 要素 | 決めること |
|---|---|
| 範囲(Start) | ワークフローの対象にするコントロール、リスク、証跡、要員 |
| きっかけ(Trigger) | ワークフローを動かす出来事 |
| 行うこと(Steps) | タスクの作成、通知、Webhookの送信 |
1つのワークフローには、範囲ときっかけを1つずつ設定し、行うことは複数加えられます。行うことは同時に(並行して)実行されます。1つが失敗しても、ほかは実行されます。失敗したものは、Drataが自動で3回まで再実行します。
ワークフローを作れるのは、AdminとWorkspace Managerのロールのユーザーです。Settings → Workflowsで作ります。
作る前に決めておくこと
- ワークフローの対象にするコントロール、リスク、証跡、要員
- 見守る出来事(証跡が結び付いた、リスク対応の選択肢が変わった、要員の状態が変わった、アーティファクトがアップロードされた、など)
- 通知を送るSlackのチャンネルやMicrosoft Teamsのグループ
- 外部のアプリケーションにデータを送る場合は、WebhookのURL
ワークフローを作る
Settings→Workflowsを開きます。Create Workflowを選びます。- ワークフローの名前を入れます。
- 対象の種類(
Control、Risk、Evidence、Personnelのいずれか)を選びます。 ControlかEvidenceを選んだ場合は、ワークフローを動かすワークスペースも選びます。- 次の画面で、範囲、きっかけ、行うことを設定します。
- ワークフローを公開して有効にするか、下書きとして保存して後で仕上げます。
似たワークフローを作るときは、既存のワークフローを複製して、設定を使い回せます。
対象の種類ごとの範囲ときっかけ
コントロール
| 設定 | 選べるもの |
|---|---|
| 範囲 | ワークスペースの全てのコントロール(今後追加されるものを含む)、または選んだコントロール |
| きっかけ | コントロールの詳細の更新、準備状況が「Not ready」か「Ready」に変わった、証跡の結び付けと解除、ポリシーの結び付けと解除、テストのマッピングと解除、要求事項のマッピングと解除、マッピングしたテストの成功と失敗、コントロールオーナーの変更、対象か対象外への変更 |
証跡
| 設定 | 選べるもの |
|---|---|
| 範囲 | 全ての手作業の証跡(取得元がファイル、URL、チケットのもの)、選んだ取得元の証跡、選んだフレームワークに結び付いた証跡、選んだ証跡。いずれも今後追加されるものを含む(選んだ証跡を除く) |
| きっかけ | 更新期限が近い(期限の何日前に動くかを入れる)、更新期限を過ぎた、新しいアーティファクトのアップロード、コントロールへの結び付け、コントロールからの解除 |
証跡の更新期限に合わせた通知の組み立て方は、証跡のオーナーと更新期限の運用で説明しています。
リスク
リスクのワークフローは、Risk Management Proのプランで使えます。
| 設定 | 選べるもの |
|---|---|
| 範囲 | 全てのリスク(今後追加されるものを含む)、内部のリスク、外部のリスク、選んだリスク |
| きっかけ | 固有のスコアの変化、残留のスコアの変化、リスク対応の選択肢の変化 |
スコアの変化をきっかけにする場合は、新しいスコアが、指定した値と等しい、より大きい、より小さい、以上、以下のいずれかになったときに動かせます。値の名前(Medium、Highなど)は、リスク登録簿の設定で組織ごとに変えられるため、組織によって表示が異なります。リスク対応の選択肢の変化では、Untreated、Accept、Transfer、Avoid、Mitigateのどれに変わったときに動かすかを選びます。リスクのスコアと対応は、リスクアセスメントとスコアとリスク対応と残留リスクで説明しています。
要員
| 設定 | 選べるもの |
|---|---|
| 範囲 | アカウントの全ての要員、または選んだ雇用状態の要員 |
| きっかけ | 対応が済んでいない状態になった(対象にするコンプライアンスの区分と、その状態になってから何日後に動くかを選ぶ)、雇用状態が変わった(変わった先の雇用状態を選ぶ) |
【注意】 対応が済んでいない状態をきっかけにするワークフローは、対応が済んだ状態から、済んでいない状態に変わった要員だけを対象にします。入社したばかりの要員のように、最初から対応が済んでいない要員では動きません。新しい要員の作業の確認には、雇用状態と入社・退職の管理で説明している方法を使います。
行うことの設定
| 行うこと | 使える場面 |
|---|---|
| タスクの作成 | コントロールとリスクのワークフローだけ |
| メールの送信 | 常に使える |
| Slackのメッセージの送信 | Slackと連携している場合 |
| Microsoft Teamsのメッセージの送信 | Microsoft Teamsと連携している場合。ダイレクトメッセージには対応していない |
| Webhookの送信 | 外部のシステムにデータを送る場合 |
タスクの作成
フォローアップの作業を、タスクとして割り当てます。
- タスクのタイトルと説明を入れます。
Insert Variableで、コントロールの名前などの値を自動で差し込めます(例:{{control_name}}、{{risk_id}})。 - 割り当て先は、個人、ロール、担当の役割(コントロールオーナー、コントロールの承認者、リスクオーナー、リスクのレビュー担当者など)から選びます。
- 期日を、タスクが作られてからの日数(例:作成から10日後)で決めます。
通知
メール、Slack、Microsoft Teamsで、関係者に知らせます。
- 宛先、またはチャンネルの名前(例:security-alerts、compliance-team@examplecompany.com)を入れます。証跡と要員のワークフローでは、ユーザーの種類も宛先に選べます。
- 件名とメッセージを書き、
Insert Variableで値を差し込みます(例:{{control_owners}}、{{evidence_name}}、{{person_name}})。
メールやメッセージには、対象の項目へのリンクが入ります。要員のワークフローでは、Personnelページを見られるユーザーにはPersonnelページへの、従業員としてアクセスするユーザーにはMy Drataへのリンクが入ります。
Slackのメッセージの送信の設定。宛先にコントロールオーナーなどを選び、メッセージに値を差し込む
Webhookの送信
指定したエンドポイントに、構造化したデータを送ります。Zapier、Torq、ServiceNowなどのツールとリアルタイムに連携できます。DrataのWebhookは、Svixを使って送られます。
ワークフローが動くと、DrataはエンドポイントにPOSTのリクエストを送ります。次のものを含められます。
- 認証の情報(カスタムヘッダーとして)
- 追加の情報を渡すカスタムヘッダー
- 対象の項目ときっかけの出来事のプロパティ(リクエストの本文)
| 送られるデータ | 内容 |
|---|---|
| 共通のプロパティ | 全てのきっかけに共通する値(出来事の名前、発生した日時、組織のID、ワークスペースの情報) |
| 対象の項目のプロパティ | 選んだ項目の値(コントロールの名前、オーナー、準備状況など) |
| きっかけごとのプロパティ | 動いたきっかけに固有の値(変更した人、新旧のオーナーなど) |
配列はJSON、日付はISOの形式の文字列、真偽値はtrueかfalseで送られます。カスタムフィールドは、[{"key": "field_name","value": "field_value"}]の形で送られます。送れるプロパティの一覧は、ヘルプセンターの対象の種類ごとの記事にあります。APIの資料は、Drata Developerのページで公開されています。
例えば、証跡がコントロールに結び付いたときにZapierにデータを送るには、ZapierでWebhookを受け取るZapを作り、発行されたURLを、Drataのワークフローに加えたWebhookの送信のURLの欄に貼り付けます。必要に応じて認証やカスタムヘッダーを加え、送るプロパティを選びます。Zapierの側で、受け取ったデータを処理する操作を加えます。
自動化の例
ヘルプセンターでは、次のような使い方が紹介されています。
| 対象 | きっかけ | 行うこと |
|---|---|---|
| コントロール | 新しい証跡が結び付いた | コントロールオーナーに、証跡を確かめるタスクを割り当てる |
| コントロール | コントロールの詳細が更新された | コントロールオーナーと指定した人に、更新した人の名前を入れたSlackのメッセージを送る |
| 証跡 | 新しいアーティファクトがアップロードされた | 証跡のオーナーなどに、Slackで知らせる |
| リスク | 固有のスコアがHighに変わった | リスクオーナーに、リスクを見直すタスクを割り当てる |
ワークフローを管理する
Settings → WorkflowsのActiveタブに、ワークフローの一覧が表示されます。
| 列 | 内容 |
|---|---|
Name | ワークフローの名前 |
Type | Control、Risk、Evidence、Personnelのいずれか |
Version | ワークフローの版(V1、Draftなど) |
Status | PublishedかUnpublished |
Run errors | 実行中に起きたエラー |
Created by | ワークフローを作った人、または最後に更新した人 |
Workspace | ワークフローが属するワークスペース |
Last updated | 最後に変更した日時 |
一覧では、状態での絞り込み、名前での検索、ActiveとArchivedのタブの切り替えができます。ワークフローを選ぶと詳細の画面が開き、実行の履歴とログを確かめられます。実行の履歴には、実行した日時、対象の項目のID、使われた版、実行の状態が表示されます。
詳細の画面のActionsから、次の操作ができます。
| ワークフローの状態 | 操作 |
|---|---|
| 公開中 | Edit draft(公開中の版に影響させずに下書きを編集する)、View published version(使われている版を開く)、Publish changes(保存した変更を反映する)、Unpublish(公開をやめる)、Duplicate(複製する) |
| 非公開 | Edit draft(編集を続ける)、Publish(公開して実行を始める)、Duplicate(複製する)、Archive(削除せずに一覧から外す)、Delete(完全に削除する。下書きだけ) |
【運用のポイント】 公開中のワークフローを変えるときは、
Edit draftで下書きを直し、Publish changesで反映します。下書きを編集している間も、公開中の版がそのまま動きます。実行のエラーは一覧のRun errorsの列で確かめ、詳細の画面のログで原因を確かめます。ワークフローの更新やエラーを知らせる通知は、通知の設定で説明しています。