使用 IAP 驗證 Cloud Run MCP 伺服器

Identity-Aware Proxy (IAP) 可讓您透過集中式身分驗證,保護部署在 Cloud Run 上的 Model Context Protocol (MCP) 伺服器。接著,您就可以設定 Gemini CLI 或 AI 代理程式等用戶端,透過 IAP 進行驗證,並在遠端伺服器上安全地執行工具。

事前準備

  1. 確認您具備必要角色。

  2. 在專案中啟用 Cloud Run。

  3. 在專案中啟用 IAP。

  4. 在 Cloud Run 部署 MCP 伺服器。

必要的角色

如要取得為 Cloud Run MCP 伺服器設定 IAP 驗證所需的權限,請要求管理員授予您下列 IAM 角色:

  • 專案的 Cloud Run 管理員 (roles/run.admin)
  • 專案的 IAP 管理員 (roles/iap.admin)
  • 部署新服務或現有服務的新修訂版本:
  • 建立及設定 OAuth 用戶端: 在專案中點選「OAuth 設定編輯器」 (roles/oauthconfig.editor)
  • 連線至或呼叫受 IAP 保護的 MCP 伺服器: 專案或 Cloud Run 服務的「受 IAP 保護的網頁應用程式使用者」 (roles/iap.httpsResourceAccessor)

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

在 Cloud Run 服務上設定 IAP

如要在 Cloud Run MCP 伺服器上設定 IAP,請執行下列操作:

  1. 將 Cloud Run Invoker 角色 (roles/run.invoker) 授予 IAP 服務代理程式:

    gcloud beta run services add-iam-policy-binding SERVICE_NAME \
        --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.s3ns-system.iam.gserviceaccount.com' \
        --role='roles/run.invoker'
    

    更改下列內容:

    • SERVICE_NAME:服務名稱
    • PROJECT_NUMBER:您的 Cloud de Confiance by S3NS 專案編號
  2. 部署新服務或現有服務的新修訂版本時,請啟用 IAP:

    新服務

    如要部署已啟用 IAP 的新服務,請執行 gcloud beta run deploy 指令:

    gcloud beta run deploy SERVICE_NAME \
      --image=CONTAINER_IMAGE \
      --region=REGION \
      --project=PROJECT_ID \
      --allow-unauthenticated \
      --iap \
      --functional-type=mcp-server
    

    更改下列內容:

    • SERVICE_NAME:服務名稱
    • CONTAINER_IMAGE:您的容器映像檔
    • REGION:部署服務的區域
    • PROJECT_ID:啟用 Cloud Run 的專案 ID

    現有服務

    如要部署已啟用 IAP 的現有服務新修訂版本,請執行 gcloud beta run services update 指令:

    gcloud beta run services update SERVICE_NAME \
      --region=REGION \
      --iap \
      --functional-type=mcp-server
    

    更改下列內容:

    • SERVICE_NAME:服務名稱
    • REGION:部署服務的區域
  3. 建立及設定 OAuth 用戶端:

    如要註冊 OAuth 用戶端的通用用戶端 ID,以便搭配 IAP 使用,請參閱共用 OAuth 用戶端以進行程式輔助存取。

    記錄下列值:

    • OAuth 用戶端 ID
    • OAuth 用戶端密鑰
    • 重新導向 URI
  4. 如要將 Gemini CLI 或代理程式等用戶端連線至已部署的 MCP 伺服器,請編輯 ~/.gemini/settings.json 檔案。

    在 settings.json 檔案中新增以下設定:

    {
      "mcpServers": {
        "my_mcp_server": {
          "httpUrl": "https://SERVICE_URL",
          "oauth": {
            "enabled": "true",
            "clientId": "OAUTH_CLIENT_ID",
            "clientSecret": "OAUTH_CLIENT_SECRET",
            "scopes": [ "email", "openid" ],
            "redirectUri": "REDIRECT_URI"
          }
        }
      }
    }
    

    更改下列內容:

    • SERVICE_URL:Cloud Run 服務網址
    • OAUTH_CLIENT_ID:OAuth 用戶端設定中的用戶端 ID
    • OAUTH_CLIENT_SECRET:OAuth 用戶端設定中的用戶端密鑰
    • REDIRECT_URI:OAuth 用戶端設定中的重新導向 URI

驗證連線

如要確認用戶端可以透過 IAP 驗證並連線至 MCP 伺服器,請執行下列步驟:

  1. 在終端機中啟動 Gemini CLI:

    gemini
    
  2. 按照瀏覽器中的提示,完成應用程式內結帳驗證流程。

  3. 確認 Gemini CLI 成功探索並列出 MCP 伺服器提供的工具。