セキュリティ

自律型AIデータベース環境の保護に役立つ、認証、アクセス制御、監査、コンプライアンスなど、MCPサーバーの主要なセキュリティ機能の概要を示します。

トピック

保護されたデータ・アクセス

仮想プライベート・データベース(VPD)ポリシーおよびセキュリティを使用したファイングレインで保護されたデータ・アクセスを有効にします。

Autonomous AI Database MCP Serverを使用すると、データベース権限で許可されているすべてのデータおよびメタデータにアクセスできます。MCPサーバーは、仮想プライベート・データベース(VPD)やReal Application Security (RAS)などのOracleセキュリティ機能と連携しますが、AIプロファイルベースのコントロールを強制したり、アクションを「選択専用」アクセスに制限したりすることはありません。登録および公開するツールを決定するため、制限された一連のツールのみを選択すると、MCPサーバーがデータに対して実行できる操作を制御できます。

ノート

MCPを使用すると、データがデータベースから離れる可能性があることに注意してください。機密情報を保護するために、常にMCPクライアント・アプリケーションのセキュリティを考慮してください。

ノート

ツールの説明に、ツールの結果がLLMを実行するためのコマンドとして意図されていないことが明記されていることを確認する必要があります。

MCPデータベース・ユーザーが、機密データがデータベースから離れるのを防ぐために必要な最小限の権限のみを持っていることを確認します。セキュリティを強化するために、2つのスキーマ・アプローチを採用することを検討してください。
  • カスタム・ツールは、MCPサーバーへのログインに使用されるデータベース・ユーザー・スキーマ(MCP_USERなど)に存在する必要があります。
  • これらのツールで使用されるPL/SQLファンクションは、別のスキーマ(SALES_USERなど)で定義する必要があります。
  • SALES_USERからMCP_USERスキーマへの適切なアクセス権を付与します。

VPDポリシーの作成および登録

仮想プライベート・データベース(VPD)ポリシーを作成して登録し、データと操作を保護する方法を学習します。

Oracle Virtual Private Database (VPD)ポリシーを定義して、ファイングレイン・アクセス制御を提供することで、特定のデータ行のみが各ユーザーに表示されるようにできます。

このVPDポリシーの例では、HR.EMPLOYEE表をフィルタ処理して、MCPサーバーを介してそれにアクセスするユーザーが自分のレコードのみを自動的かつセキュアに表示できるようにします。

例: データベースでのVPDポリシーの作成

この例では、AIクライアントがAutonomous AI Databaseに対してMCPツールをコールしたときに、サインイン・ユーザーが表示する必要がある行のみを返す方法を示します。

CREATE OR REPLACE FUNCTION limit_sal (v_schema IN VARCHAR2, v_objname IN VARCHAR2)
  RETURN VARCHAR2 authid current_user AS
BEGIN
     RETURN 'employee_id = SYS_CONTEXT(''MCP_SERVER_ACCESS_CONTEXT'', ''USER_IDENTITY'')';
END;

MCPツールにアクセスすると、データベース・ユーザーのアイデンティティはsys_context('MCP_SERVER_ACCESS_CONTEXT', 'USER_IDENTITY')を介して使用できます。これらのアプリケーション・コンテキスト値を使用するVPDポリシーを作成して、各アプリケーションまたはデータベース・ユーザーに表示されるデータ行を制限できます。ユーザーに既存のVPDポリシーがある場合は、MCP_SERVER_ACCESS_CONTEXTを使用して別のポリシーを作成し、行を制限し、MCPサーバーの使用時にそのユーザーのVPDポリシーを使用します。

例: VPDポリシーの登録

この例では、フィルタリング関数をHR.EMPLOYEE表にアタッチします。

BEGIN
   DBMS_RLS.ADD_POLICY( 
        object_schema        => 'HR',
        object_name          => 'EMPLOYEE',
        policy_name          => 'POL',
        policy_function      => 'LIMIT_SAL');
END;
/

アクセス制御リスト(ACL)

アクセス制御リスト(ACL)を使用して、データベース・リソースへのネットワーク・アクセスを管理および制限します。

アクセス制御リスト(ACL)は、データベース・リソースへのネットワーク・アクセスを管理および制限する強力な方法を提供します。ACLを構成することで、接続を許可するクライアントまたはネットワークを定義し、データベースのセキュリティ体制を強化できます。詳細は、ネットワーク・アクセス制御リスト(ACL)を参照してください。

コード監査

MCPサーバーには、すべてのアクセスおよび操作の監視および追跡に役立つ監査機能が用意されています。監査ログは、カスタム・ポリシーの詳細情報を取得します。

MCPサーバーは、各アクセスおよび使用される特定のツールに関する詳細情報を記録します。

ノート

SESSION_USERに基づいてセキュリティまたは監査の決定を行わないでください。かわりに、MCP_SERVER_ACCESS_CONTEXT$を使用して、認証済ユーザーを確実に参照します。

顧客定義の監査ポリシー: MCP_SERVER_ACCESS_CONTEXT$を使用すると、カスタム監査ポリシーを定義して、MCPサーバーを介してデータベース・オブジェクトへのアクセスを追跡できます。
--Sample Policy to enable audit on a table when accessed using MCP server

create protected audit policy ADB_MCP_SERVER_ACCESS_AUDIT 
  actions SELECT on HR.EMPLOYEE
  when sys_context('MCP_SERVER_CONTEXT$', 'USERNAME') is not null;