在 Application Load Balancer 轉送規則中套用的授權政策 (AuthzPolicy
) 會定義規則,指定傳入流量的來源,以及該來源允許或限制的作業。此外,授權政策會概略說明規則適用的條件,並指定允許、拒絕或進一步評估流量的動作。
授權政策可讓您針對應用程式負載平衡器的傳入流量建立存取權控管檢查。通過這些檢查的要求會轉送至後端服務。如果要求未通過這些檢查,系統就會終止要求,並傳回未授權的回應。
您可以在所有應用程式負載平衡器的轉送規則上設定授權政策,負載平衡方案為 EXTERNAL_MANAGED
或 INTERNAL_MANAGED
。以下應用程式負載平衡器支援授權政策:
- 全域外部應用程式負載平衡器
區域性外部應用程式負載平衡器
區域內部應用程式負載平衡器
- 跨區域內部應用程式負載平衡器
在應用程式負載平衡器中,系統會在評估路由擴充功能、網路安全性政策 (由 Google Cloud Armor 評估)、跨來源資源共用 (CORS) 政策和 Identity-Aware Proxy (IAP) 政策的「後」,但在執行流量管理動作的「前」,叫用授權政策。
如要進一步瞭解何時會在要求處理路徑中叫用授權政策,請參閱「負載平衡資料路徑中的擴充功能點」。
如要針對透過 Cloud Service Mesh 部署的服務使用授權政策,請參閱「使用 Envoy 設定服務安全性」一文。
授權政策規則
授權政策由 HTTP 規則清單組成,用於比對傳入要求。
如果授權政策含有 ALLOW
或 DENY
動作,HTTP 規則 (AuthzRule
) 會定義判斷是否允許流量通過負載平衡器的條件。至少須有一個 HTTP 規則。
如果授權政策含有 CUSTOM
動作,HTTP 規則 (AuthzRule
) 會定義條件,決定是否將流量委派給自訂提供者進行授權。自訂提供者是必要的,但 HTTP 規則則為選用項目。
如果至少有一項 HTTP 規則與要求相符,或是政策中未定義任何 HTTP 規則,就會發生政策比對。
授權政策 HTTP 規則包含下列欄位:
from
:指定規則允許的用戶端身分。身分可以是雙向 TLS 連線中的用戶端憑證,也可以是與用戶端虛擬機器 (VM) 例項相關聯的環境身分,例如來自服務帳戶或安全標記。to
:指定規則允許的作業,例如可存取的網址或允許的 HTTP 方法。when
:指定必須符合的其他限制。您可以使用一般運算語言 (CEL) 運算式定義限制。
授權政策動作
評估要求時,授權政策會指定要套用至要求的動作 (AuthzAction
)。授權政策至少需要一項動作,可使用下列任一項:
ALLOW
:如果要求符合ALLOW
政策中指定的任何規則,則允許要求傳送至後端。如果存在ALLOW
政策,但沒有相符項目,系統會拒絕要求。換句話說,如果沒有任何已設定授權政策的ALLOW
動作與要求相符,系統就會拒絕要求。在 Cloud Logging 中,這項動作會記錄為denied_as_no_allow_policies_matched_request
。如要套用
ALLOW
動作,您至少需要一個 HTTP 規則。DENY
:如果要求符合DENY
政策中指定的任何規則,就會拒絕該要求。如果存在DENY
政策,但沒有相符項目,系統會允許要求。換句話說,如果沒有任何已設定授權政策與DENY
動作相符,系統就會允許要求。在 Cloud Logging 中,這項動作會記錄為allowed_as_no_deny_policies_matched_request
。如要套用
DENY
動作,您至少需要一個 HTTP 規則。CUSTOM
:將授權決定權委派給自訂授權提供者,例如 IAP 或服務擴充功能。如需更多資訊,請參閱「使用授權政策委派授權決策」。如果已為
CUSTOM
政策設定 HTTP 規則,則要求必須符合 HTTP 規則,才能叫用自訂提供者。不過,如果未定義任何 HTTP 規則,授權政策一律會將授權決定權委派給自訂授權提供者。如需更多資訊,請參閱以下範例,其中未定義任何 HTTP 規則,且授權政策將授權決定權委派給 IAP:
授權政策評估順序
授權政策支援 CUSTOM
、DENY
和 ALLOW
存取權控管政策。當多項授權政策與單一資源建立關聯時,系統會先評估 CUSTOM
政策,接著是 DENY
政策,最後是 ALLOW
政策。評估結果會根據下列規則決定:
如果有符合要求的
CUSTOM
政策,系統會使用自訂授權提供者評估CUSTOM
政策,如果提供者拒絕要求,系統就會拒絕要求。即使已設定DENY
或ALLOW
政策,系統也不會評估這些政策。如果有任何
DENY
政策與要求相符,系統就會拒絕要求。即使已設定ALLOW
政策,系統也不會評估。如果沒有
ALLOW
政策,系統就會允許要求。如果任何
ALLOW
政策與要求相符,請允許要求。如果有
ALLOW
政策,但沒有相符項目,系統會拒絕要求。換句話說,如果沒有任何已設定的AuthzPolicies
與ALLOW
動作與要求相符,系統會依預設拒絕要求。
使用授權政策委派授權決定
如果授權決定太複雜,無法使用授權政策表達,請將授權決定委派給自訂授權提供者 (例如 Identity-Aware Proxy (IAP)),或是使用服務擴充功能建立您自己的授權擴充功能。如果您想透過 IAP 使用內部部署授權引擎或第三方識別資訊提供者,這項功能就很實用。
IAP:設定 IAP,以便控管應用程式負載平衡器轉送規則後方的應用程式存取權。IAP 會驗證使用者身分和使用情境,藉此判斷存取權。它還能驗證 Identity and Access Management (IAM) 服務帳戶權杖,並評估 IAM 政策,保護應用程式負載平衡器公開的後端儲存格存取權。詳情請參閱「將授權委派給 IAP 和 IAM」。
您可能會在下列情況下選擇將驗證權限委派給 IAP 和 IAM:
- 使用 IAM 管理權限。
- 實作情境感知存取權。
- 針對需要互動式驗證的網頁應用程式,使用瀏覽器驗證功能。
服務擴充功能:將授權決定權委派給在 Google Cloud VM 執行個體或內部部署系統中執行的自訂授權引擎。這可讓您靈活處理內建政策未涵蓋的複雜授權政策。詳情請參閱「設定授權擴充功能」。
根據服務帳戶或標記建立授權政策
您可以使用服務帳戶或標記等屬性,找出內部應用程式負載平衡器的流量來源。
針對內部應用程式負載平衡器,您可以根據服務帳戶或附加至 Google Cloud 資源的標記套用授權政策。您可以允許、拒絕或委派與特定服務帳戶或標記相關聯的這些 Google Cloud 資源所產生的任何流量,將其委派給外部服務。
下表列出支援使用服務帳戶和代碼的來源資源,以及不同的虛擬私有雲 (VPC) 架構。
來源 | 服務帳戶支援 | 代碼支援 |
---|---|---|
VM | ||
GKE 節點 | ||
GKE 容器 | * | * |
Cloud Run 的直接 VPC | * | |
無伺服器虛擬私有雲存取連接器 | † | † |
Cloud VPN | * | * |
內部部署的 Cloud Interconnect | * | * |
應用程式負載平衡器 | ||
網路負載平衡器 |
* Google Cloud不支援。
†來源 IP 位址是唯一的,可以用來取代來源網域。
虛擬私人雲端 | VPC 架構 | 支援 |
---|---|---|
虛擬私有雲內部 | 跨專案 (共用虛擬私有雲) | |
虛擬私有雲內部 | 跨區域 | |
跨虛擬私有雲 | 跨對等互連連結 (對等 VPC) | |
跨虛擬私有雲 | 跨 Private Service Connect | |
跨虛擬私有雲 | 跨 Network Connectivity Center 輪輻 |
如要進一步瞭解如何設定以服務帳戶和附加至 Google Cloud VM 資源的標記為依據的授權政策,請參閱「以服務帳戶或標記為依據的授權政策」。
配額
如要瞭解授權政策的配額,請參閱「授權政策的配額和限制」。
定價
預先發布期間不會收取授權政策費用。不過,使用 Google Cloud 負載平衡器時會產生網路費用。如需價格資訊,請參閱「定價」。