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

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

您也可以在下列情況下設定允許使用應用程式內購的網域:

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

設定允許的網域

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

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

詳情請參閱 IapSettings

如要設定允許使用應用程式內購的網域,請完成下列步驟:

主控台

  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-engineiap_webcomputeorganizationfolder
  • SERVICE:服務名稱。當 resource-typecomputeapp-engine 時,這項屬性為選用。
  • VERSION:版本名稱。這不適用於 compute,且在 resource-typeapp-engine 時為選用項目。

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 管理員將您的主機名稱加入允許的網域清單。