限制資源存取權,僅限特定網域

為提升整體安全性,IAP 預設會拒絕存取沒有相符伺服器名稱指示 (SNI) 的要求。IAP 也會檢查負載平衡器憑證的 SNI。這樣一來,IAP 就能限制網址重新導向至惡意網域。IAP 允許的網域功能可為受 IAP 保護的資源提供額外安全防護。資源擁有者或 IAP 管理員可以設定允許的網域功能,將受 IAP 保護的資源存取權限制在特定網域內。

您也可以在下列情況中設定 IAP 允許的網域:

  • 瀏覽器或中繼 Proxy 強制執行連線集區:在這種情況下,您會收到 HTTP 回應 429 和錯誤代碼 51。如要解決這個問題,IAP 管理員可以更新允許的網域清單,將主機名稱納入其中。
  • 提供的主機名稱與伺服器上的 SSL 憑證不符:在這種情況下,您會收到錯誤代碼 52。如要解決這個問題,IAP 管理員可以更新允許的網域清單,將主機名稱納入其中。

設定允許的網域

您可以使用 gcloud 或 API 設定允許的網域。如要設定允許的網域,請使用下列欄位:

  • enable:布林值。開啟或關閉允許的網域功能。
  • Domains:字串。允許的網域清單。網域可包含萬用字元前置字元,例如 *.example.com.。網域名稱不得在公用後置字元或頂層網域上直接包含萬用字元。例如:*.com、*.co.in。

詳情請參閱「IapSettings」。

如要設定允許使用 IAP 的網域,請完成下列步驟:

控制台

  1. 前往 IAP 頁面。
    前往 Identity-Aware Proxy。
  2. 選取專案,然後選取要啟用允許網域功能資源。
  3. 開啟資源的「設定」。在「允許的網域」下方,選取「啟用允許的網域」。
  4. 指定允許的網域清單,然後按一下「儲存」。

gcloud

以下是指定允許網域的指令範例。

詳情請參閱「gcloud iap settings set」。

執行下列指令:

gcloud iap settings set SETTING_FILE --folder=FOLDER --organization=ORGANIZATION --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION

其中 SETTING_FILE 為:

accessSettings:
  allowed_domains_settings:
    enable: true
    domains: ["*.example.com", "*.example.net"]

更改下列內容:

  • FOLDER:資料夾 ID。
  • ORGANIZATION:組織 ID。
  • PROJECT:專案 ID。
  • RESOURCE_TYPE:IAP 資源類型。必須是 app-engine、iap_web、compute、organization、folder、backend-services、forwarding-rule 或 cloud-run。
  • SERVICE:服務名稱。如果 resource-type 為 compute 或 app-engine,則此為選填屬性。
  • VERSION:版本名稱。這不適用於 compute,且當 resource-type 為 app-engine 時,此為選用項目。

您必須指定下列至少一個旗標,定義設定的範圍:

  • --organization=ORGANIZATION
  • --folder=FOLDER
  • --project=PROJECT

API

如要設定允許的網域,請完成下列步驟。如要進一步瞭解如何使用 API 設定允許的網域,請參閱「IapSettings」。

  1. 執行下列指令來準備 iap_settings.json 檔案。視需要更新值。
 {
     "access_settings":{
         "allowed_domains_settings":{
             "enable": true
             "domains": [
                 "*.example.com",
                 "*.exampe.net"
             ]
         }
     }
 }
  1. 執行 gcloud iap settings get 指令,取得資源名稱。從輸出內容複製名稱欄位。後續步驟會用到這個名稱。
gcloud iap settings get --organization=ORGANIZATION --folder=FOLDER --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
  1. 在下列指令中,將 RESOURCE_NAME 替換為上一個步驟中的名稱。IapSettings將會更新。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d @iap_settings.json \
"https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.allowedDomainsSettings.enable,iapSettings.accessSettings.allowedDomainsSettings.domains"

疑難排解

允許的網域存取權問題
如果收到錯誤代碼 53,請要求 IAP 管理員將主機名稱新增至允許的網域清單。