データベース・ツールMCPサーバー

MCPサーバーのポリシー

データベース・ツールのMCPサーバー・ポリシーは、次によって異なります。

  • MCPサーバー・ランタイムID
  • データベース・ツール接続ランタイムID
  • データベース認証方式
  • ポリシー・スコープ(リソースまたはコンパートメント)

次の図は、データベース・ツールMCPサーバーが構成済のランタイム・アイデンティティを使用してOCIリソースにアクセスする方法を示しています。ランタイム・アイデンティティ構成に応じて、OCIリソース・アクセスは、認証されたユーザー・アイデンティティ(On-Behalf-Ofトークン)またはMCPサーバー・リソース・プリンシパルを使用して実行されます。

この図は、MCPサーバーが構成済のランタイム・アイデンティティを使用してOCIリソースにアクセスする方法を示しています。

必要なIAM権限

IAMポリシーでは、次の構文が使用されます:

Allow <subject> to <verb> <resource-type> in <location> where <conditions>

IAMポリシーは、MCPサーバー・リソースおよび関連するOCIサービスにアクセスできるユーザー、グループまたはリソース・プリンシパルを定義します。次の表に、Database Tools MCP Serverに必要なIAM権限を示します。

動詞 リソース・タイプ 摘要 必須条件 件名 場所
使用 データベース・ツール-mcp-servers-invocation ユーザーはMCPサーバーを起動できます。 常に MCPユーザー テナントまたはコンパートメント
使用 データベース・ツール接続 データベース・ツール接続の使用を許可 常に MCPユーザーまたはMCPサーバー テナントまたはコンパートメント
使用 データベース・ツール-db-connect-obo MCPサーバーがユーザーのかわりにデータベース・トークンを取得できます。 トークン認証を使用 MCPサーバー テナンシ
使用 データベース接続 IAMベースのデータベース認証を許可します トークン認証を使用 MCPユーザー テナントまたはコンパートメント
使用 database-tools-runtime-work-requests 長時間実行の非同期リクエストを許可 非同期リクエストの使用 MCPユーザーまたはMCPサーバー テナントまたはコンパートメント
読取り シークレット・束 Vaultシークレットへのアクセスを許可します パスワードベースの認証またはキー・ストアの使用 MCPユーザーまたはMCPサーバーまたは接続 テナントまたはコンパートメント
使用 バケット オブジェクト・ストレージ・バケットへのアクセスを許可 非同期リクエストの使用 MCPユーザーまたはMCPサーバーまたは接続 テナントまたはコンパートメント
管理 オブジェクト オブジェクトの作成および管理を可能にします。 非同期リクエストの使用 MCPユーザーまたはMCPサーバーまたは接続 テナントまたはコンパートメント

ランタイム・アイデンティティ・モデル

必要なポリシーは、ランタイム・アイデンティティ構成によって異なります。

  • MCPサーバー・ランタイムID

    リソースへのアクセス時にMCPサーバーが使用するアイデンティティを決定します。

    • Authenticated_Principal: ログイン・ユーザーIDを使用してリクエストが実行されます。

    • Resource_Principal: MCPサーバー・アイデンティティを使用して実行されるリクエスト。

  • 接続ランタイムID

    データベース・アクセスに使用するアイデンティティを決定します。

    • Authenticated_Principal: データベース・アクセスでは、ユーザー・アイデンティティが使用されます。

    • Resource_Principal: データベース・アクセスでは、データベース・ツール接続リソース・アイデンティティが使用されます。

  • 認証のタイプ

    • トークン: IAMトークンベース認証を使用します。

    • パスワード: データベース・ユーザー名およびパスワード認証を使用します。

  • ポリシーの有効範囲

    ポリシーは、リソース・レベルまたはコンパートメント・レベルのいずれかで適用できます。

    • リソース: 特定のリソースへのアクセスを制限します。

    • コンパートメント: コンパートメント内のすべての一致するリソースへのアクセスを許可します。

ポリシー設定

デプロイメント・モデルと一致する構成を選択します。

オプション1

  • MCPサーバー・ランタイムID: AUTHENTICATED_PRINCIPAL
  • 接続ランタイムID: AUTHENTICATED_PRINCIPAL
  • 認証タイプ: TOKEN

Resource-Scopeポリシー・ステートメント

allow any-user to use database-tools-db-connect-obo in tenancy
where request.principal.id = '<mcp-server-ocid>'

allow group '<domain_name>/<group_name>' to use database-tools-mcp-servers-invocation
in compartment <compartment_name> where target.resource.id = '<mcp-server-ocid>'

allow group '<domain_name>/<group_name>' to use database-connections
in compartment <compartment_name> where target.database.id = '<database-ocid>'

allow group '<domain_name>/<group_name>' to use database-tools-connections
in compartment <compartment_name> where target.resource.id = '<connection-ocid>'

オプション: シークレットまたはキー・ストアが使用されている場合にのみ必要です。

allow group '<domain_name>/<group_name>' to read secret-bundles in compartment <compartment_name> 
where target.secret.id = '<secret-ocid>'

Compartment-Scopeポリシー・ステートメント

allow any-user to use database-tools-db-connect-obo in tenancy
where all {request.principal.type = 'databasetoolsmcpserver', 
request.principal.compartment.id = '<compartment-ocid>'}

allow group '<domain_name>/<group_name>' to use database-tools-mcp-servers-invocation
in compartment <compartment_name>

allow group '<domain_name>/<group_name>' to use database-connections
in compartment <compartment_name>

allow group '<domain_name>/<group_name>' to use database-tools-connections
in compartment <compartment_name>

オプション: シークレットまたはキー・ストアが使用されている場合にのみ必要です。

allow group '<domain_name>/<group_name>' to read secret-bundles 
in compartment <compartment_name>

オプション2

  • MCPサーバー・ランタイムID: AUTHENTICATED_PRINCIPAL
  • 接続ランタイムID: AUTHENTICATED_PRINCIPAL
  • 認証タイプ: PASSWORD

Resource-Scopeポリシー・ステートメント

allow group 'domain_name'/'group_name' to use database-tools-mcp-servers-invocation
in compartment <compartment_name> where target.resource.id = '<mcp-server-ocid>'

allow group 'domain_name'/'group_name' to use database-tools-connections in 
compartment <compartment_name> where target.resource.id = '<connection-ocid>'

オプション: パスワード資格証明がVaultに格納されている場合は必須です。


allow group 'domain_name'/'group_name' to read secret-bundles in compartment <compartment_name> 
where any { 
target.secret.id = '<secret-ocid-1>', 
target.secret.id = '<secret-ocid-2>' }

Compartment-Scopeポリシー・ステートメント

allow group '<domain_name>/<group_name>' to use database-tools-mcp-servers-invocation
in compartment <compartment_name>

allow group '<domain_name>/<group_name>' to use database-tools-connections
in compartment <compartment_name>

オプション: パスワード資格証明がVaultに格納されている場合は必須です。


allow group '<domain_name>/<group_name>' to read secret-bundles in compartment <compartment_name>

オプション3

  • MCPサーバー・ランタイムID: AUTHENTICATED_PRINCIPAL
  • 接続ランタイムID: RESOURCE_PRINCIPAL
  • 認証タイプ: TOKEN

Resource-Scopeポリシー・ステートメント

allow any-user to use database-tools-db-connect-obo in tenancy
where request.principal.id = '<mcp-server-ocid>'

allow group '<domain_name>/<group_name>' to use database-tools-mcp-servers-invocation
in compartment <compartment_name> where target.resource.id = '<mcp-server-ocid>'

allow group '<domain_name>/<group_name>' to use database-connections
in compartment <compartment_name> where target.database.id = '<database-ocid>'

allow group '<domain_name>/<group_name>' to use database-tools-connections
in compartment <compartment_name> where target.resource.id = '<connection-ocid>'

オプション: 非同期リクエスト、Vaultアクセスまたはオブジェクト・ストレージにのみ必要です。

--Work Requests
allow group '<domain_name>/<group_name>' to use database-tools-runtime-work-requests
in compartment <compartment_name>
where target.resource.created-by-principal-id = request.principal.id

--Vault Secrets
allow any-user to read secret-bundles in compartment <compartment_name> 
where all {
  request.principal.id = '<connection-ocid>',
  target.secret.id = '<secret-ocid>'}

--Object Storage
allow any-user to use buckets in compartment <compartment_name>
where all {
  request.principal.id = '<connection-ocid>',
  target.bucket.name = '<bucket-name>'}

allow any-user to manage objects in compartment <compartment_name>
where all {
  request.principal.id = '<connection-ocid>',
  target.bucket.name = '<bucket-name>'}

Compartment-Scopeポリシー・ステートメント

allow any-user to use database-tools-db-connect-obo in tenancy 
where request.principal.id = '<mcp-server-ocid>'

allow group '<domain_name>/<group_name>' to use 
database-tools-mcp-servers-invocation in compartment <compartment_name>

allow group '<domain_name>/<group_name>' to use 
database-connections in compartment <compartment_name>

allow group '<domain_name>/<group_name>' to use 
database-tools-connections in compartment <compartment_name>

オプション: 非同期リクエスト、Vaultアクセスまたはオブジェクト・ストレージにのみ必要です。

--Work Requests
allow group '<domain_name>/<group_name>' to use 
database-tools-runtime-work-requests in compartment <compartment_name>

--Vault Secrets
allow any-user to read secret-bundles in compartment <compartment_name> 
where request.principal.id = '<connection-ocid>'

--Object Storage
allow any-user to use buckets in compartment <compartment_name> 
where request.principal.id = '<connection-ocid>'

allow any-user to manage objects in compartment <compartment_name> 
where request.principal.id = '<connection-ocid>'

オプション4

  • MCPサーバー・ランタイムID: RESOURCE_PRINCIPAL
  • 接続ランタイムID: RESOURCE_PRINCIPAL
  • 認証タイプ: PASSWORD

Resource-Scopeポリシー・ステートメント

allow group '<domain_name>/<group_name>' to use database-tools-mcp-servers-invocation
in compartment <compartment_name> where target.resource.id = '<mcp-server-ocid>'

allow any-user to use database-tools-connections in compartment <compartment_name>
where all {
  request.principal.id = '<mcp-server-ocid>',
  target.resource.id = '<connection-ocid>'
}

オプション: 非同期リクエスト、Vaultシークレットまたはオブジェクト・ストレージにのみ必要です。

--Work Requests
allow any-user to use database-tools-runtime-work-requests
in compartment <compartment_name>
where all {
  request.principal.id = '<mcp-server-ocid>',
  target.resource.created-by-principal-id = request.principal.id
}

--Vault Secrets
allow any-user to read secret-bundles in compartment <compartment_name>
where all {
  request.principal.id = '<connection-ocid>',
  target.secret.id = '<secret-ocid-1>'
}

allow any-user to read secret-bundles in compartment <compartment_name>
where all {
  request.principal.id = '<connection-ocid>',
  target.secret.id = '<secret-ocid-2>'
}

--Object Storage
allow any-user to use buckets in compartment <compartment_name>
where all {
  request.principal.id = '<connection-ocid>',
  target.bucket.name = '<bucket-name>'
}

allow any-user to manage objects in compartment <compartment_name>
where all {
  request.principal.id = '<connection-ocid>',
  target.bucket.name = '<bucket-name>'
}

Compartment-Scopeポリシー・ステートメント

allow group '<domain_name>/<group_name>' to use database-tools-mcp-servers-invocation
in compartment <compartment_name>

allow any-user to use database-tools-connections in compartment <compartment_name>
where request.principal.id = '<mcp-server-ocid>'

オプション: 非同期リクエスト、Vaultシークレットまたはオブジェクト・ストレージにのみ必要です。

--Work Requests
allow any-user to use database-tools-runtime-work-requests in compartment <compartment_name>
where request.principal.id = '<mcp-server-ocid>'

--Vault Secrets
allow any-user to read secret-bundles in compartment <compartment_name>
where request.principal.id = '<connection-ocid>'

--Object Storage
allow any-user to use buckets in compartment <compartment_name>
where request.principal.id = '<connection-ocid>'

allow any-user to manage objects in compartment <compartment_name>
where request.principal.id = '<connection-ocid>'
サービス固有の変数

これらのサービス固有の変数をIAMポリシー条件で使用して、特定のリソース(特定のVaultシークレットやオブジェクト・ストレージ・バケットなど)へのアクセスを制限します。

リソース 変数
データベース・ツール接続 target.resource.id
データベース・ツールMCP Server target.resource.id
データベース接続 target.resource.id
Autonomous Database

target.id

Autonomous Databaseのポリシー詳細を参照してください。

Autonomous Database専用

target.database.id

Autonomous AI DatabaseでのIAM認証の使用を参照してください。

プラガブル・データベース サポートされているのは一般的な変数のみです。

詳細は、データベース・サービスの詳細を参照してください。

ボールト・シークレット ターゲット・シークレットID

Vault、キー管理およびシークレット管理サービスの詳細を参照してください。

オブジェクト・ストレージ

ターゲット・バケット名

ターゲット・オブジェクト名

オブジェクト・ストレージおよびアーカイブ・ストレージの詳細を参照してください。

MCP管理者用の最小権限のIAMポリシー

この項では、管理者がデータベース・ツールのMCPサーバー、ツールセットおよび接続を管理するために必要なIAMポリシーおよびアイデンティティ・ドメイン・ロールについて説明します。

デフォルト・ドメイン

MCPサーバーを管理するには、ユーザーは、次に示すポリシーが付与されているデフォルト・アイデンティティ・ドメインのIAMグループに属している必要があります。

<group_name>および<compartment>を値に置き換えます。

ポリシー アクセス・レベル
グループ<group_name>にコンパートメント<compartment>内のdatabase-tools-mcp-familyの管理を許可します データベース・ツールの管理MCPサーバー、MCPツールセット、データベース・ツール接続およびデータベース・ツールのプライベート・エンドポイント
グループ<group_name>がコンパートメント<compartment>のボールトを使用することを許可します シークレットに使用されるVaultリソースを操作するために必要です。
グループ<group_name>にコンパートメント<compartment>のキーの使用を許可します シークレットで使用されるVault暗号化キーの操作に必要です。
グループ<group_name>にコンパートメント<compartment>のシークレット・ファミリの管理を許可します 接続またはMCPサーバー構成によって参照されるVaultシークレットを作成、更新および削除します。
グループ<group_name>にコンパートメント<compartment>の仮想ネットワーク・ファミリの管理を許可します データベース・ツール・プライベート・エンドポイントを作成および管理するために必要です。
グループ<group_name>にコンパートメント<compartment>のautonomous-database-familyの読取りを許可します Autonomous Databaseの表示名を取得するために必要です。
グループ<group_name>にコンパートメント<compartment>のデータベース・ファミリの読取りを許可します データベースおよびプラガブル・データベースの表示名を取得するために必要です。
グループ<group_name>にコンパートメント<compartment>のドメインの管理を許可します アイデンティティ・ドメインにMCPクライアント(統合アプリケーションの作成など)を登録する必要がある場合にのみ必要です。

ドメインの管理によって付与されるすべての権限は必要ありません。DOMAIN_RESOURCES_ADMINISTER権限のみが必要です。

アイデンティティ・ドメイン

特定のアイデンティティ・ドメイン内のユーザーの場合、次の表に必要なポリシー・ステートメントを示します。

ポリシー アクセス・レベル
グループ<identity_domain_name>/<group_name>にコンパートメント<compartment>内のdatabase-tools-mcp-familyの管理を許可します データベース・ツールの管理MCPサーバー、MCPツールセット、データベース・ツール接続およびデータベース・ツールのプライベート・エンドポイント
グループ<identity_domain_name>/<group_name>にコンパートメント<compartment>のボールトの使用を許可します シークレットに使用されるVaultリソースを操作するために必要です。
group<identity_domain_name>/<group_name>にコンパートメント<compartment>のキーの使用を許可します シークレットで使用されるVault暗号化キーの操作に必要です。
グループ<identity_domain_name>/<group_name>にコンパートメント<compartment>内のシークレット・ファミリの管理を許可します 接続またはMCPサーバー構成によって参照されるVaultシークレットを作成、更新および削除します。
グループ<identity_domain_name>/<group_name>にコンパートメント<compartment>の仮想ネットワーク・ファミリの管理を許可します データベース・ツール・プライベート・エンドポイントを作成および管理するために必要です。
グループ<identity_domain_name>/<group_name>にコンパートメント<compartment>のautonomous-database-familyの読取りを許可します Autonomous Databaseの表示名を取得するために必要です。
グループ<identity_domain_name>/<group_name>にコンパートメント<compartment>のデータベース・ファミリの読取りを許可します データベースおよびプラガブル・データベースの表示名を取得するために必要です。

アイデンティティ・ドメインのロール

MCPサーバーのMCPクライアントを管理するには、アイデンティティ・ドメインのユーザーには、アプリケーション管理者またはIdentity Domain Administratorロールが必要です。

管理者ロールへのユーザーの割当ての詳細は、ロールへのユーザーの割当てを参照してください。

役割 摘要
アプリケーション管理者 アプリケーション管理者は、アイデンティティ・ドメイン内のアプリケーションを管理できます。アプリケーションを作成、更新、アクティブ化、非アクティブ化および削除することができます。
アイデンティティ・ドメイン管理者 アイデンティティ・ドメイン管理者は、アイデンティティ・ドメインのスーパーユーザー権限を持ちます。ユーザー、グループ、アプリケーションおよびシステム構成設定を管理できます。

MCPサーバー管理者ツール

MCPサーバー管理者ツールを使用するには、リクエストされた操作を実行するには、MCP_Administratorロールと必要なIAMポリシーが必要です。

ツール名 必須情報
リストカスタムロール -
カスタム・ロールの更新 -
McpToolsetの作成 コンパートメントIDはオプションです。デフォルトはMCPサーバー・コンパートメントIDです
McpToolsetを読み込む 特定のMCPサーバーに関連するMCPツールセットだけを読み取ります。
McpToolsetの更新 特定のMCPサーバーに関連するMCPツールセットのみを更新します。
McpToolsetの削除 特定のMCPサーバーに関連するMCPツールセットのみを削除します。
リストMcpToolset

コンパートメントIDはオプションです。デフォルトはMCPサーバー・コンパートメントIDです。

特定のMCPサーバーのMCPツールセットだけを返します。

検索McpToolset

特定のMCPサーバーのMCPツールセットだけを返します。

McpToolsetを移動 ターゲット・コンパートメントIDが必要です。
SQLレポートの作成

コンパートメントIDはオプションです。デフォルトはMCPサーバー・コンパートメントIDです。

SQLレポートの読取り SQLレポートIDは必須です。
SQLレポートの更新 SQLレポートIDは必須です。