Drataの画面を使わずに、プログラムからDrataのデータを読み書きしたり、AIのアシスタントからDrataの情報を参照したりするには、Drata APIとDrata MCPを使います。Drata APIはプログラムからデータを送受信する仕組み、Drata MCPはClaudeやChatGPTなどのAIのアシスタントから普段の言葉でDrataのデータを扱う仕組みです。このページでは、Drata APIとDrata MCPの使い方として、APIキーとOAuthのアプリケーションの作成と権限の考え方、APIでの要員の証跡のアップロードなどの使い方、AIのアシスタントからDrataにつなぐ設定を説明します。
Drata APIとDrata MCPの違い
| 仕組み | 内容 | 認証 |
|---|---|---|
| Drata API(Drata Public API) | プログラムから、Drataにデータを送ったりDrataからデータを取り出したりする。独自の業務の流れや、APIに対応した外部のツールとDrataをつなげる | APIキー、またはOAuthのアプリケーションで発行するアクセストークン |
| Drata MCP | AIのアシスタント(Claude、ChatGPT、Cursor、Microsoft Copilotなど)から、コントロール、ポリシー、リスク、証跡、フレームワーク、ベンダー、要員、端末、IDの情報を、普段の言葉で問い合わせたり操作したりする | 管理者が設定するMCPのOAuthの設定と、利用者のサインイン |
APIの詳細(エンドポイントや要求の形式)は、Drata APIの開発者向けのドキュメントにあります。
APIを使うほかの仕組みとして、自社のシステムのデータを決まった形式でDrataに送るカスタム連携はカスタム連携、ワークフローから外部にデータを送るWebhookはワークフローで作業を自動化する、監査法人が使う監査人向けのAPI(Auditor API)は監査人が見る画面で説明しています。
APIキーとOAuthのアプリケーション
Drata APIの要求の認証には、APIキーか、OAuthのアプリケーションで発行するアクセストークンを使います。ヘルプセンターの「Set up OAuth for the Drata API」では、より安全で、規模が大きくなっても管理しやすいOAuthが勧められています。
| 項目 | APIキー | OAuthのアプリケーション |
|---|---|---|
| 資格情報 | 期限まで、または手作業で取り消すまで使えるキー | 有効期限の短いアクセストークン。漏れても、すぐに期限が切れる |
| 権限 | キーごとにスコープを付ける | アプリケーションごとにスコープを付ける |
| 秘密の情報の入れ替え | 入れ替えを調整しないと、連携が止まったり壊れたりすることがある | クライアントシークレットを入れ替えても、クライアントIDとスコープなどの設定は変わらない。トークンは自然に期限が切れる |
OAuthは、特に企業での利用、自動化や連携を作るチーム、CI/CDのパイプライン、サービス間(マシン間)のアクセスに勧められています。
APIキーを作る
ヘルプセンターの「Admins overview」では、APIキーのページはAdminのロールのユーザーだけが扱えるページとされています。
Settingsを開き、API Keysを選びます。Create API Keyを選びます。- 名前、有効期限、キーを使える送信元のIPアドレスを入れます。
- スコープ(
Access)を選びます。 - 保存すると、APIキーの情報を安全な場所に保存したことの確認を求められます。
Doneを選ぶと、APIキーが有効になります。
入れる項目は次の通りです。
| 項目 | 内容 |
|---|---|
Name | APIキーの名前。有効になった後は変えられない |
Expiration date | 有効期限。12カ月(既定)、期限なし、任意の日付から選ぶ |
Allowed IP Addresses | キーを使える送信元のIPアドレス。いくつでも入れられる。空欄にすると、全ての送信元から使える |
Access | Custom(必要なスコープを個別に選ぶ)、All read(今と今後の全ての読み取りのスコープ)、All read and write(今と今後の全てのスコープ) |
【注意】 APIキーの全体は、作ったときに一度しか表示されません。
Doneを選んだ後は、キーの全体を確かめられなくなるため、その前に安全な場所に保存してください。
Drata APIの要求の回数には、送信元のIPアドレスごとに1分あたり500回の上限があります。
APIキーの状態
作ったAPIキーは一覧で、名前、状態、作った人、最後に要求に使われた日時、有効期限を確かめられます。状態は次の4つです。
| 状態 | 意味 |
|---|---|
Active | 付けたスコープの範囲で、要求に使える |
Expires soon | まだ使えるが、30日以内に期限が切れる |
Expired | 期限が切れ、使えない。有効な状態には戻せない |
Revoked | 管理者が手作業で取り消し、使えない。有効な状態には戻せない |
APIキーを選ぶと、スコープなどの詳細を変えられます。スコープは、期限切れや取り消しになっていない限り、いつでも変えられます。名前とキーの値は変えられません。
APIキーを取り消すには、一覧か詳細の画面でごみ箱のアイコンを選び、確認の画面で確定します。取り消しは元に戻せず、取り消したキーではDrata APIの認証が通らなくなります。取り消したキーの詳細は、Revokedの状態で引き続き確かめられます。
OAuthのアプリケーションを作る
OAuthのアプリケーションは、テナントごとに作る、連携のための身元です(個人のユーザーではありません)。
Settings→OAuth Applicationsを開き、Create OAuth Applicationを選びます。- アプリケーションの名前(
Name)を入れ、必要に応じて説明(Description)を入れます。 - 有効期限(
Expiration option)を、NeverかCustomから選びます。多くの場合はCustomが勧められます。Nextを選びます。 - スコープ(
Scopes)の段階で、スコープの設定(Scope preset)を選びます。Customが勧められます。 - 分類(ポリシー、要員と端末、証跡など)を開き、対象ごとに
Read、Create、Update、Deleteの権限を選び、作成を確定します。 - クライアントシークレット、クライアントID、アクセストークンを発行するcURLのコマンドが表示されます。クライアントシークレットとIDは二度と表示されないため、すぐに安全な場所に保存し、保存したことを確かめるチェックボックスを選びます。
アクセストークンを発行して使う
アプリケーションの詳細の画面のToken Request Detailsのセクションに、アクセストークンを発行するcURLのコマンドがあります。コマンドをコピーし、client_secretの値だけを保存したクライアントシークレットに置き換えて、ターミナルで実行します。クライアントのキーとaudienceの値は、テナントとリージョンに合わせてDrataが入れています。
発行したアクセストークンは、APIの要求のAuthorizationのヘッダーに入れて使います。
curl https://<api-url>/v1/<endpoint> \
-H "Authorization: Bearer <ACCESS_TOKEN>"
アクセストークンには有効期限があり、期限が切れたら、同じ手順で新しいトークンを発行します。アプリケーションの詳細の画面では、管理者が詳細とスコープの確認、スコープの変更、アプリケーションの取り消しをできます。取り消すと、新しいトークンは直ちに発行できなくなり、そのアプリケーションでのAPIのアクセスも止まります。
【運用のポイント】 ヘルプセンターでは、大きな組織に次の設定が勧められています。連携やサービスごとに1つのアプリケーションを作る。開発、検証、本番の環境ごとにアプリケーションを分ける。必要最小限のスコープだけを付ける。クライアントシークレットはシークレットの管理の仕組みに保管し、定期的に入れ替える。クライアントシークレットを、個々のユーザーや開発者のパソコンの間で共有しない。
APIでできることの例
ヘルプセンターには、Drata APIの使い方の例として、次の記事があります。記事にはNode.jsの例のスクリプトが載っていますが、ひな形のため、自社の環境と用途に合わせて直して使います。
| 使い方 | 内容 |
|---|---|
| 要員の記録に証跡をアップロードする | 要員の記録をメールアドレスで探してユーザーのIDを取り出し、そのユーザーに文書を証跡としてアップロードする。文書の種類には、SEC_TRAINING、HIPAA_TRAINING_EVIDENCE、NIST_AI_TRAINING_EVIDENCEなどを指定する。APIキーには、ユーザーと要員のデータの読み取りと書き込みのスコープを付ける |
| イベントのデータを取り出す | Drataでデータがどう追加・変更されたかを示すイベントの記録を、JSONのファイルにまとめて書き出す。イベントは数千件あるため、絞り込みの条件を具体的に決めておく。既定では50件ずつ取り出す。APIキーには、イベントのデータの読み取りのスコープを付ける |
| 全てのコントロールを取り出す | コントロールの記録を、JSONのファイルにまとめて書き出す。既定では50件ずつ取り出す |
データを送るPOSTとPUTの要求では、ワークスペースのIDを指定します。アカウントでMultiple Product Supportを有効にしていない場合、ワークスペースのIDは1です。有効にしている場合は、ワークスペースの一覧を取り出すGETの要求で、送り先のワークスペースのIDを確かめます。
研修の修了の記録は、画面から複数の要員の分をまとめて取り込むこともできます。セキュリティー研修で説明しています。
Drata MCPでAIのアシスタントからつなぐ
Drata MCPのサーバーを使うと、AIのアシスタントから、自社のDrataのデータを普段の言葉で問い合わせたり操作したりできます。Drataは、リージョンごとに、Drataが運用するリモートのMCPのサーバーを用意しています。
| リージョン | MCPのサーバーのURL |
|---|---|
| US | https://mcp.drata.com/mcp/ |
| EU | https://mcp-euc1.drata.com/mcp/ |
| APAC | https://mcp-apse2.drata.com/mcp/ |
設定は2段階です。最初に管理者がテナントのOAuthを設定し、次に利用者が自分のAIのアシスタント(MCPのクライアント)からDrataのコネクターにつなぎます。
【注意】 利用者がMCPでできることは、管理者が設定したスコープと、その利用者のDrataのロールの両方で許されている範囲だけです。Drataの画面で自分のロールではできない操作は、MCPでもできません。
管理者がOAuthを設定する
Adminのロールのユーザーが、次の手順で設定します。
Settingsを開き、MCP OAuth Configurationを選びます。- 設定の名前と説明を入れます。
- 設定の有効期限を決めます。
- 許可するスコープを選びます。
スコープ
スコープは、MCPでどの情報を読み、どの操作をできるようにするかを決めます。主なスコープは次の通りです。
| 対象 | 読み取り | 作成、更新、削除 |
|---|---|---|
| リスク | read:risk、read:risk-registers | create:risk、update:risk、delete:risk |
| ポリシー | read:policy、read:assigned-policies | |
| コントロール | create:control、update:control | |
| モニタリングテスト | read:monitor-test | |
| フレームワークと要求事項 | read:framework | |
| 証跡 | read:evidence | create:evidence、update:evidence、delete:evidence |
| 要員 | read:personnel | update:personnel、create:user-document(要員の研修や多要素認証などの証跡のアップロード)、create-restricted:personnel(退職の証跡の登録) |
| 端末 | read:device | |
| ユーザー | read:users、read:user | |
| ワークスペース | read:workspace | |
| ベンダー | read:vendor、read:vendor-security-review、read:vendor-document | create:vendor、update:vendor、delete:vendor |
スコープごとに、使えるロールが決まっています。読み取りのスコープは、対象のロールの読み取り専用のロール(Read-only Adminなど)でも同じように使えますが、読み取り専用のロールでは作成、更新、削除のスコープは使えません。create:user-documentは、create:evidenceかupdate:evidenceと組み合わせたときにだけ働きます。
【注意】 作成、更新、削除のスコープを付けると、利用者のロールが許す範囲で、MCPが利用者に代わってDrataのデータを変えられるようになります。必要なものだけを、意図して付けてください。
create-restricted:personnelは、個々の社員のコンプライアンスの記録への書き込みを任せられるアプリケーションにだけ付けます。
AIのアシスタントからつなぐ
利用者は、使っているAIのアシスタントで、Drataのコネクターを追加してつなぎます。
| AIのアシスタント | 設定と使い方 |
|---|---|
| Claude | Anthropicのリモートのカスタムコネクターの手順で追加する。会話ごとに、+(プラス)のメニューのConnectorsでDrataのコネクターを有効にする |
| ChatGPT | OpenAIの手順で追加する。既定では、Drataのコネクターは検索と取得しかできない。証跡の作成や要員の更新など書き込みの操作を使うには、ChatGPTの設定で開発者モード(ベータ版)を有効にする(ウェブ版のPlus、Pro、Business、Enterprise、Eduのプラン)。開発者モードでは、書き込みの操作の前に要求の内容が示され、確認を求められるため、承認する前に確かめる |
| Cursor | Settings → Tools & MCPでDrataのMCPのサーバーを追加し(CursorのMCPのマーケットプレースからも入れられる)、エージェントモードで使う。Tools & MCPのパネルで、サーバーやツールを個別に切り替えられる |
| Microsoft Copilot | Copilot Studioのエージェントに、DrataのMCPのサーバーを追加する(次の節) |
Microsoft Copilot Studioでつなぐ
ヘルプセンターの「Microsoft Copilot MCP Integration Guide」では、Microsoft CopilotのCopilot Studioのエージェントから、Drataに直接問い合わせる設定が説明されています。この節の内容は、Microsoft Copilotとつなぐ場合に限った話です。
Microsoft Copilotとつなぐには、Microsoft 365 Copilotのライセンス(Copilot Studioを使えること)と、DrataのAdminのロールが必要です。
Drataの側では、Microsoft Copilot用に、次の手順でMCPの設定を作ります。
Settingsを開き、MCP Configurationを選びます。このページを開けるのは、Drataの管理者だけです。- OAuthの設定の名前を入れます(記事の例は「Microsoft Copilot MCP」)。
- 設定の説明を入れます。
- 設定の有効期限を、会社で決めて設定します。期限が近づくと、認証のやり直しが必要になります。
- 許可するスコープを選びます。Microsoft Copilotの記事では、まずは読み取り専用のスコープを選ぶ例が示されています。スコープは後から変えられます。
Microsoft Copilotから使える範囲も、ここで設定したスコープと、利用者のDrataのロールの両方で許されている範囲だけです。
Copilot Studioの側では、次の手順でDrataのMCPのサーバーを追加します。
- Copilot Studioにサインインします。
AgentsでCreate→Blank agentを選び、エージェントを作ります(記事の例の名前は「Drata」)。- エージェントを開き、左側のナビゲーションで
OverviewからToolsに移ります。 Add a toolを選び、ダイアログの上部のAdd new MCPを選びます。Server name、Server descriptionを入れ、Server URLに自社のリージョンのDrataのMCPのサーバーのURLを入れます。AuthenticationでOAuth 2.0を選び、種類(Type)はDynamic discoveryのままにします。Createを選びます。- 求められたらDrataにサインインし、接続を承認します。
Copilot Studioが、DrataのMCPのサーバーが提供するツールと情報を自動で見つけ、プレビューのパネルですぐにエージェントを試せます。
スコープを追加したとき
Drataは、MCPのツールを順に追加しています(証跡のツール、要員と端末のツールなど)。後から追加された機能を使うには、管理者と利用者がそれぞれ次の作業をします。
| 担当 | 作業 |
|---|---|
| 管理者 | Settings → MCP OAuth Configurationで既存の設定を編集し、Scopesで新しいスコープを選んで保存する |
| 利用者 | AIのアシスタントでDrataのコネクターをいったん切断し、つなぎ直す。サインインのやり直しで、同意の画面で新しいスコープを承認する |
追加したスコープは、使っている最中のセッションには自動で反映されません。今のトークンは、前のスコープで発行されているためです。
使い方のこつ
| こつ | 内容 |
|---|---|
| 「Drata」と名前を入れる | 依頼の文に「Drata」を必ず入れる。AIのモデルが、自分の知識で答えずに、DrataのMCPのツールを使うようになる(例:「Which controls are missing evidence in Drata?」) |
| 具体的に頼む | フレームワークの名前、期間、リスクのカテゴリー、チームの名前などを入れるほど、いい結果になる |
| 普段の言葉で頼む | DrataのAPIやデータの構造を知らなくても、コンプライアンスの担当者に頼むように頼める。コントロールはコード(例:CC6.1)、オーナーや要員は名前かメールアドレス、要員のグループは名前、カスタムフィールドはラベルで指定する |
ヘルプセンターには、コントロール、フレームワークと要求事項、ポリシー、証跡、リスク、モニタリングテスト、要員とコンプライアンスの状況、端末、IDとアクセス、ベンダーの分野ごとに、依頼の文の例が英語で載っています。準備ができていないコントロールの一覧、更新期限が近い証跡、対応計画のないリスク、多要素認証のない要員などを尋ねるほか、コントロールや証跡の作成、オーナーの割り当て、要員の雇用状態の変更なども頼めます。
【注意】 作成、更新、削除の依頼には、対応する書き込みのスコープと、その操作を許すロールの両方が必要です。コントロールのオーナーなどを「設定する」と頼むと、今の設定が置き換えられます。今のオーナーを残して加えたいときは、今のオーナーを外さないことを依頼の文に明記します。
セキュリティーの考え方
| 項目 | 内容 |
|---|---|
| 認証 | DrataのMCPのサーバーはOAuthで認証し、利用者の資格情報がAIのアシスタントに渡ることはない |
| 見られるデータ | AIのアシスタントが見られるのは、利用者がDrataで権限を持つデータだけ |
| 書き込みのスコープ | 作成、更新、削除のスコープは、利用者に代わってDrataのデータを変えられるため、意図して付ける |
| アクセスの取り消し | 管理者は、DrataのアカウントからもAIのアシスタントのコネクターの設定からも、いつでもアクセスを取り消せる |
つながらないとき
「Callback URL mismatch」というエラーが出る場合は、Drataの設定のページではなく、認証の提供元(Auth0)に関係する問題です。よくある原因は、Settings → OAuth Applicationsで別にOAuthのアプリケーションを作り、そのクライアントIDとクライアントシークレットを、AIのアシスタントのコネクターの設定に手で入れていることです。
MCPのOAuthの設定と、OAuthのアプリケーションは別の機能です。前者はAIのアシスタントをDrataにつなぐもの、後者はトークン、クライアントID、クライアントシークレットでAPIに直接アクセスするものです。
- AIのアシスタントのコネクターの設定を開きます。
- 手で入れたクライアントIDとクライアントシークレットを削除します。
- 自社のリージョンのDrataのMCPのサーバーのURLだけで、コネクターを設定します。
- サインインをやり直します。
- 求められた権限を承認します。