本頁說明如何直接在 Cloud Run 服務上啟用 IAP,並將流量導向 IAP 進行驗證,確保傳送至 Cloud Run 服務的流量安全無虞。直接在 Cloud Run 啟用 IAP 後,只要按一下滑鼠,就能透過所有連入路徑 (包括預設 run.app 網址和負載平衡器) 保護流量。
整合 IAP 與 Cloud Run 後,您可以透過下列方式管理使用者或群組存取權:
- 機構內部 - 為與 Cloud Run 服務位於同一機構的使用者設定存取權
- 機構外部 - 設定存取權,授予與 Cloud Run 服務所屬機構不同的使用者
- 無機構:在不屬於任何 Google 機構的專案中設定存取權
已知限制
- 您無法同時在負載平衡器和 Cloud Run 服務上設定 IAP。
- Cloud Run 會先強制執行 IAP 政策,再對 IAP 服務帳戶執行 IAM 檢查。由於 IAP 會攔截要求並取代原始呼叫端的 ID,因此依賴自身驗證的服務 (例如 Pub/Sub) 可能會失敗。
事前準備
啟用 IAP API:
必要的角色
如要取得啟用 IAP 所需的權限,請要求管理員授予您下列 IAM 角色:
-
專案的 Cloud Run 管理員 (
roles/run.admin) -
授予啟用 IAP 的服務存取權:
專案的「IAP 政策管理員」 (
roles/iap.admin) -
建立啟用 IAP 的服務,或更新現有服務以啟用 IAP:
-
Artifact Registry 讀取者 (
roles/artifactregistry.reader) 已部署的容器映像檔 -
服務帳戶使用者 (
roles/iam.serviceAccountUser) 服務身分
-
Artifact Registry 讀取者 (
-
授予非 Google 機構成員的使用者存取權:
專案的「IAP 設定管理員」 (
roles/iap.settingsAdmin) -
授予機構外部或非機構成員的使用者存取權:
專案的「OAuth 設定編輯者」 (
roles/oauthconfig.editor)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
透過 Cloud Run 啟用 IAP
建議您直接在 Cloud Run 上啟用 IAP。
使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform,從 Cloud Run 啟用 IAP。
控制台
為 Cloud Run 啟用 IAP 時,IAP 需要權限才能叫用 Cloud Run 服務。如果您使用 Google Cloud 控制台啟用 IAP,系統會將 Cloud Run 叫用者角色 (roles/run.invoker) 指派給 IAP 服務代理,自動授予這項權限。
如要透過 Cloud Run 啟用 IAP,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run「服務」頁面:
如要設定新服務,請按一下「Deploy container」(部署容器),視需要填寫初始服務設定頁面,然後選取「Require authentication」(需要驗證)。選取「Identity-Aware Proxy (IAP)」。
如要修改現有服務,請按一下該服務,然後依序點選「安全性」分頁和「需要驗證」。選取「IAP」。
選用。如要授予使用者存取權,請按照操作說明管理 IAP 的使用者或群組存取權。如果您在為機構外部使用者設定存取權時遇到問題,請參閱「疑難排解」部分。
如要儲存設定,請按一下「儲存」。
如要建立或部署服務,請按一下「建立」或「部署」。
gcloud
如要直接從 Cloud Run 啟用 IAP,請在部署應用程式時新增 --iap 旗標,並授予 IAP 服務代理程式叫用者權限:
使用下列任一指令部署 Cloud Run 服務:
新服務:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-allow-unauthenticated \ --iap如果您在沒有機構的專案中首次啟用 IAP,可能會看到下列警告:
Deploying services with IAP enabled in a project without an organization may require initial setup via the Cloud Console. Please use the Cloud Run UI to enable IAP for the first time in the project.您無法透過程式建立 OAuth 用戶端,因此系統會顯示這則警告。建議您先直接從 Google Cloud 控制台啟用 Cloud Run 的 IAP,或設定自訂 OAuth 用戶端,然後使用 gcloud CLI 新增使用者。
現有服務:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --iap更改下列內容:
SERVICE_NAME:Cloud Run 服務的名稱。REGION:Cloud Run 區域的名稱。例如:europe-west1。- IMAGE_URL:容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest。如果您使用 Artifact Registry,則必須先建立存放區 REPO_NAME。網址格式為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG。 PROJECT_NUMBER:您的 Google Cloud 專案編號。
將叫用者權限授予 IAP 服務代理:
gcloud run services add-iam-policy-binding
SERVICE_NAME\ --region=REGION\ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com \ --role=roles/run.invoker更改下列內容:
SERVICE_NAME:Cloud Run 服務的名稱。REGION:Cloud Run 區域的名稱。例如:europe-west1。PROJECT_NUMBER:您的 Google Cloud 專案編號。
選用。如要授予使用者存取權,請參閱 IAP 的使用者或群組存取權管理。
如要確認服務已啟用 IAP,請執行下列指令:
gcloud run services describe
SERVICE_NAME輸出內容應包含下列字串:
Iap Enabled: true
IAP 現在會將所有傳送至已設定 Cloud Run 服務的流量,先轉送至 IAP 進行驗證,再傳送至容器。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要使用 Terraform 啟用 IAP,您必須更新服務定義,並新增 IAM 政策繫結,將叫用者權限授予 IAP。
在 Terraform 設定中,將
iap_enabled = true新增至google_cloud_run_v2_service資源,即可在服務上啟用 IAP:resource "google_cloud_run_v2_service" "default" { name = "cloudrun-iap-service" location = "europe-west1" ingress = "INGRESS_TRAFFIC_ALL" iap_enabled = true template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } }新增下列項目,將
roles/run.invoker角色授予 IAP 服務代理。resource "google_cloud_run_v2_service_iam_member" "iap_invoker" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com" }將
PROJECT_NUMBER替換為專案編號。選用。如要擷取目前的 IAM 政策資料,請在 Terraform 設定中,將下列項目新增至
google_cloud_run_v2_service_iam_policy資源。data "google_cloud_run_v2_service_iam_policy" "policy" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name }
管理使用者或群組存取權
根據預設,Cloud Run 適用的 IAP 會使用 Google 代管的 OAuth 用戶端,讓您新增機構內的身分,並使用與使用者相關聯的電子郵件地址。您也可以使用 IAP 中的 Google Cloud 控制台,管理機構外部或沒有機構的主體。方法是按照下列步驟建立自訂 OAuth 用戶端。
使用 Google Cloud 控制台、gcloud CLI 或 Terraform,為 Cloud Run 服務新增或移除 IAP 存取權。
機構內部
控制台
如要新增或移除存取權,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run 頁面:
按一下要修改的現有服務,然後按一下「安全性」。
在「IAP」下方,按一下「編輯政策」。
如要新增存取權,請輸入主體,並視需要新增存取層級,或將存取層級留空。
如果政策中只有一個主體,請按一下「存取層級」旁的「刪除政策」圖示,即可移除存取權。
如要從政策中移除個別主體,請點按要移除的主體名稱旁的「X」X圖示。
如要儲存使用者設定,請按一下「儲存」。
gcloud
如要為個別使用者或群組新增或移除 Cloud Run 服務的存取權,請執行下列任一指令:
新增存取權的方式如下:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME如何移除存取權:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME如何查看存取權:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
更改下列內容:
USER_EMAIL:使用者的電子郵件地址。REGION:Cloud Run 區域的名稱。SERVICE_NAME:Cloud Run 服務的名稱。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要將清單中主體的存取權授予給授權使用者,請按照下列步驟操作:
使用
google_iap_web_cloud_run_service_iam_binding資源將角色授予權威主體清單。這項資源可確保只有清單中的成員獲得角色。系統會移除獲派該角色的所有其他主體。在 Terraform 設定的
google_iap_web_cloud_run_service_iam_binding資源中新增下列項目。resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }更改下列內容:
PROJECT_ID:專案名稱。REGION: Google Cloud 區域,例如europe-west1。SERVICE_NAME:Cloud Run 服務的名稱。PRINCIPAL:主體或成員的 ID,通常採用以下格式:PRINCIPAL_TYPE:ID。例如:user:my-user@example.com。如需PRINCIPAL可用的值完整清單,請參閱政策繫結參考資料。
如要授予單一主體的存取權:
使用
google_iap_web_cloud_run_service_iam_member資源將角色授予單一主體,不會影響可能具有相同角色的其他主體。在 Terraform 設定的
google_iap_web_cloud_run_service_iam_member資源中新增下列項目。resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }更改下列內容:
PROJECT_ID:專案名稱。REGION: Google Cloud 區域,例如europe-west1。SERVICE_NAME:Cloud Run 服務的名稱。PRINCIPAL:主體或成員的 ID,通常採用以下格式:PRINCIPAL_TYPE:ID。例如:user:my-user@example.com。如需PRINCIPAL可用的值完整清單,請參閱政策繫結參考資料。
機構外
控制台
如要使用 IAP 新增機構外部使用者,請完成下列一次性設定程序:
前往 Google Cloud 控制台的 Cloud Run 頁面:
按一下要修改的現有服務,然後點選「安全性」。
在 Cloud Run 服務的安全詳細資料頁面中,按一下「IAP」下方的「Edit policy」(編輯政策)。
按一下「前往 IAP 設定」。系統會開啟 IAP 中的資源設定頁面。
按一下「設定同意畫面」,設定 OAuth 同意畫面。選取「外部」做為目標對象類型。
如要快速完成設定,請按一下「自動產生憑證」。
或者,按照操作說明建立 OAuth 用戶端 ID。 選取「自訂 OAuth」,然後輸入自訂用戶端 ID 和密鑰。
如要儲存設定,請按一下「儲存」。
現在可以返回 Cloud Run 中的 Cloud Run 服務,新增機構外部主體。
如要新增或移除使用者存取權,請完成下列步驟:
前往 Google Cloud 控制台的 Cloud Run 頁面:
按一下要修改的現有服務,然後按一下「安全性」。
在「IAP」下方,按一下「編輯政策」。
如要新增存取權,請輸入主體,並視需要新增存取層級,或將存取層級留空。
如果政策中只有一個主體,請按一下「存取層級」旁的「刪除政策」圖示,即可移除存取權。
如要從政策中移除個別主體,請點按要移除的主體名稱旁的「X」X圖示。
如要儲存使用者設定,請按一下「儲存」。
gcloud
事前準備
- 如要新增組織外部的使用者主體,請先設定 OAuth 用戶端}。
如要為個別使用者或群組新增或移除 Cloud Run 服務的存取權,請執行下列任一指令:
新增存取權的方式如下:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME如何移除存取權:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME如何查看存取權:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
更改下列內容:
USER_EMAIL:使用者的電子郵件地址。REGION:Cloud Run 區域的名稱。SERVICE_NAME:Cloud Run 服務的名稱。
Terraform
事前準備
- 如要新增組織外部的使用者主體,請先設定 OAuth 用戶端。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要將清單中主體的存取權授予給授權使用者,請按照下列步驟操作:
使用
google_iap_web_cloud_run_service_iam_binding資源將角色授予權威主體清單。這項資源可確保只有清單中的成員會獲得角色。系統會移除獲派該角色的所有其他主體。在 Terraform 設定的
google_iap_web_cloud_run_service_iam_binding資源中新增下列項目。resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }更改下列內容:
PROJECT_ID:專案名稱。REGION: Google Cloud 區域,例如europe-west1。SERVICE_NAME:Cloud Run 服務的名稱。PRINCIPAL:主體或成員的 ID,通常採用以下格式:PRINCIPAL_TYPE:ID。例如:user:my-user@example.com。如需PRINCIPAL可用的值完整清單,請參閱政策繫結參考資料。
如要授予單一主體的存取權:
使用
google_iap_web_cloud_run_service_iam_member資源將角色授予單一主體,不會影響可能具有相同角色的其他主體。在 Terraform 設定的
google_iap_web_cloud_run_service_iam_member資源中新增下列項目。resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }更改下列內容:
PROJECT_ID:專案名稱。- REGION: Google Cloud 區域,例如
europe-west1。 - SERVICE_NAME:Cloud Run 服務的名稱。
- PRINCIPAL:主體或成員的 ID,通常採用以下格式:PRINCIPAL_TYPE:ID。例如:
user:my-user@example.com。如需 PRINCIPAL 可用的值完整清單,請參閱政策繫結參考資料。
沒有機構
控制台
如要新增或移除存取權,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run 頁面:
按一下要修改的現有服務,然後按一下「安全性」。
在「IAP」下方,按一下「編輯政策」。
如要新增存取權,請輸入主體,並視需要輸入要新增的存取層級,或將存取層級留空。
如果政策中只有一個主體,請按一下「存取層級」旁的「刪除政策」圖示,即可移除存取權。
如要從政策中移除個別主體,請點按要移除的主體名稱旁的「X」X圖示。
如要儲存使用者設定,請按一下「儲存」。
gcloud
事前準備
- 如要將使用者新增至沒有機構的專案,請先完成一次性設定,設定自訂 OAuth 用戶端。
如要為個別使用者或群組新增或移除 Cloud Run 服務的存取權,請執行下列任一指令:
新增存取權的方式如下:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME如何移除存取權:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME如何查看存取權:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
更改下列內容:
USER_EMAIL:使用者的電子郵件地址。REGION:Cloud Run 區域的名稱。SERVICE_NAME:Cloud Run 服務的名稱。
Terraform
事前準備
- 如要新增組織外部的使用者主體,請先設定 OAuth 用戶端。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要將清單中主體的存取權授予給授權使用者,請按照下列步驟操作:
使用
google_iap_web_cloud_run_service_iam_binding資源將角色授予權威主體清單。這項資源可確保只有清單中的成員會獲得角色。系統會移除獲派該角色的所有其他主體。在 Terraform 設定的
google_iap_web_cloud_run_service_iam_binding資源中新增下列項目。resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }更改下列內容:
PROJECT_ID:專案名稱。REGION: Google Cloud 區域,例如europe-west1。SERVICE_NAME:Cloud Run 服務的名稱。PRINCIPAL:主體或成員的 ID,通常採用以下格式:PRINCIPAL_TYPE:ID。例如:user:my-user@example.com。如需PRINCIPAL可用的值完整清單,請參閱政策繫結參考資料。
如要授予單一主體的存取權:
使用
google_iap_web_cloud_run_service_iam_member資源將角色授予單一主體,不會影響可能具有相同角色的其他主體。在 Terraform 設定的
google_iap_web_cloud_run_service_iam_member資源中新增下列項目。resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }更改下列內容:
PROJECT_ID:專案名稱。REGION: Google Cloud 區域,例如europe-west1。SERVICE_NAME:Cloud Run 服務的名稱。PRINCIPAL:主體或成員的 ID,通常採用以下格式:PRINCIPAL_TYPE:ID。例如user:my-user@example.com。如需PRINCIPAL可用的值完整清單,請參閱政策繫結參考資料。
停用 Cloud Run 的 IAP
您可以使用 Google Cloud 控制台或 gcloud CLI 停用 IAP。
控制台
如要從 Cloud Run 停用 IAP,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run 頁面:
按一下要修改的現有服務。
按一下「安全性」,然後取消選取「IAP」。您的服務受到 IAM 政策保護。不過,如果您未使用 IAM,請選取「允許公開存取」,讓服務公開存取。
如要儲存設定,請按一下「儲存」。
gcloud
如要直接從 Cloud Run 停用 IAP,請在部署應用程式時新增 --no-iap 旗標,如下所示:
使用下列任一指令部署 Cloud Run 服務:
新服務:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-iap現有服務:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --no-iap更改下列內容:
SERVICE_NAME:Cloud Run 服務的名稱。REGION:Cloud Run 區域的名稱。- IMAGE_URL:容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest。如果您使用 Artifact Registry,則必須先建立存放區 REPO_NAME。網址格式為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG。
如要確認服務已不再啟用 IAP,請執行下列指令:
gcloud run services describe
SERVICE_NAME輸出內容應不再包含下列字串:
Iap Enabled: true
IAP 不再將所有傳送至已設定 Cloud Run 服務的流量,先轉送至 IAP 進行驗證,再傳遞至容器。
設定自訂 OAuth 用戶端
建議您首次啟用 IAP 時使用 Google Cloud 控制台。這樣一來,您就能自動產生憑證,不必手動建立自訂 OAuth 用戶端。直接從 Google Cloud 控制台在 Cloud Run 上啟用 IAP 時,IAP 會在專案層級自動為您設定自訂 OAuth 用戶端。
如果您使用 gcloud CLI 管理沒有機構的使用者存取權,請直接從 Google Cloud 控制台在 Cloud Run 上啟用 IAP,或按照本節中的步驟手動建立自訂 OAuth 用戶端。
如要進行進階設定 (例如自訂同意畫面,或在機構層級管理 OAuth 用戶端),請按照下列步驟操作。
設定品牌
前往控制台的 OAuth「品牌」頁面: Google Cloud
按一下「開始使用」。
填寫「應用程式資訊」表單,然後按一下「下一步」。
在「目標對象」下方,選取「外部」。
填寫表單其餘部分,然後按一下「建立」。
手動建立自訂 OAuth 用戶端
如果是第一次設定 Google 驗證平台,請按照下列步驟操作:
前往 Google Cloud 控制台的「Clients」(用戶端) 頁面:
如果系統提示,請在 Google Auth Platform 總覽頁面點選「開始使用」。
- 填寫應用程式資訊詳細資料,然後按一下「下一步」。
- 選取「外部」做為目標對象類型。
- 填寫聯絡資訊、接受條款,然後按一下「建立」。
- 按一下「建立用戶端」。
- 在「應用程式類型」中,選取「網頁應用程式」,然後填寫 OAuth 用戶端的名稱。
- 在「Authorized redirect URIs」(已授權的重新導向 URI) 欄位中,新增下列 URI:
將https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
CLIENT_ID替換為 OAuth 用戶端 ID。 - 點選「建立」。
- 記下用戶端 ID 和密鑰,然後按一下「確定」。
如果您已設定 Google 驗證平台:
前往 Google Cloud 控制台的「Clients」(用戶端) 頁面:
按一下「建立用戶端」。
在「應用程式類型」中,選取「網頁應用程式」,然後填寫 OAuth 用戶端的名稱。
填寫應用程式資訊詳細資料。
在「Authorized redirect URIs」(已授權的重新導向 URI) 欄位中,新增下列 URI:
將https://iap.googleapis.com/v1/oauth/clientIds/
CLIENT_ID:handleRedirectCLIENT_ID替換為 OAuth 用戶端 ID。點選「建立」。
記下用戶端 ID 和密鑰,然後按一下「確定」。
將 OAuth 用戶端套用至 IAP
您可以在專案或機構層級套用 OAuth 用戶端。
請在專案層級執行下列步驟:
建立名為
iap_settings.yaml的檔案,並加入以下內容:access_settings: oauth_settings: client_id:
CLIENT_IDclient_secret:CLIENT_SECRET執行
gcloud iap settings set指令,在專案層級套用 OAuth 用戶端:gcloud iap settings set iap_settings.yaml --project=
PROJECT_ID
更改下列內容:
CLIENT_ID:您在上一個步驟中儲存的 OAuth 用戶端 ID。CLIENT_SECRET:您在上一個步驟中儲存的密鑰。PROJECT_ID:專案 ID。
在機構層級執行下列步驟:
如要在機構層級套用 OAuth 用戶端,請執行
gcloud iap settings set指令:gcloud iap settings set iap_settings.yaml --organization=
ORGANIZATION_NUMBER更改下列內容:
CLIENT_ID:您在上一個步驟中儲存的 OAuth 用戶端 ID。CLIENT_SECRET:您在上一個步驟中儲存的密碼。ORGANIZATION_NUMBER:貴機構的編號。
疑難排解
下一節說明如何排解 Cloud Run 的 IAP 問題。
組織外存取權錯誤
為機構外部使用者設定存取權時,可能會遇到下列錯誤。
組織外部使用者的存取權:已停用
為確保組織外存取權已停用,建議您在專案層級停用這項功能。其他層級 (服務、資料夾或組織) 的控制選項可能會顯示為已停用,即便可以存取也是如此。
品牌目前設為「內部」
如果自訂 OAuth 用戶端品牌設為內部,系統就不支援機構外部存取權。
如要將品牌設定更新為「外部」,以便透過 IAP 為組織外的主體啟用存取權,請完成下列步驟:
在 Google Cloud 控制台中,前往 Google Auth Platform 的「Audience」(目標對象) 頁面:
在「使用者類型」下方,按一下「設為外部」。
服務代理失敗導致設定 IAM 錯誤
首次在新專案中啟用 IAP 時,可能會發生下列錯誤:
Setting IAM permissions failed這是因為 Cloud Run 服務代理失敗。如要解決問題,請重新啟用 IAP,或手動設定 IAM 政策。
後續步驟
- 如要瞭解如何從後端服務或負載平衡器啟用 IAP,請參閱為 Cloud Run 啟用 IAP。
- 如要瞭解如何排解啟用 Cloud Run 適用的 IAP 時發生的問題,請參閱「排解錯誤」。
- 管理受 IAP 保護資源的存取權。
- 使用機構政策控管是否啟用 IAP。