Cloud Load Balancing 的機構政策限制

機構政策服務可讓您透過程式以集中方式控管機構的資源。身為機構政策管理員,您可以定義機構政策,也就是一組稱為限制的限制,適用於Google Cloud 資源和 Google Cloud 資源階層中這些資源的子系。

本頁面提供有關適用於 Cloud Load Balancing 的機構政策限制的補充資訊。您可以使用機構政策限制,在整個專案、資料夾或機構中強制執行設定。

機構政策僅適用於新資源。限制不會溯及既往。如果您有現有的負載平衡資源,且該資源違反新的機構政策,就必須手動處理這類違規情形。

如需可用限制的完整清單,請參閱「機構政策限制」。

限制負載平衡器類型

使用機構政策限制機構中可建立的 Cloud Load Balancing 類型。設定下列機構政策限制:

  • 名稱:根據負載平衡器類型限制負載平衡器的建立作業
  • ID:constraints/compute.restrictLoadBalancerCreationForTypes

設定 compute.restrictLoadBalancerCreationForTypes 限制時,您會指定 Cloud Load Balancing 類型的許可清單或拒絕清單。允許或拒絕值的清單只能包含下列清單中的值:

  • 應用程式負載平衡器

    • GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS (全域外部應用程式負載平衡器)
    • EXTERNAL_HTTP_HTTPS (適用於傳統版應用程式負載平衡器)
    • GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS (跨區域內部應用程式負載平衡器)
    • EXTERNAL_MANAGED_HTTP_HTTPS (區域性外部應用程式負載平衡器)
    • INTERNAL_HTTP_HTTPS (區域性內部應用程式負載平衡器)
  • Proxy 網路負載平衡器

    • GLOBAL_EXTERNAL_MANAGED_TCP_PROXY:全域外部 Proxy 網路負載平衡器 (含 TCP Proxy)
    • GLOBAL_EXTERNAL_MANAGED_SSL_PROXY:全域外部 Proxy 網路負載平衡器 (含 SSL Proxy)
    • EXTERNAL_TCP_PROXY:適用於採用 TCP Proxy 的傳統版 Proxy 網路負載平衡器
    • EXTERNAL_SSL_PROXY:適用於具有 SSL Proxy 的傳統版 Proxy 網路負載平衡器
    • GLOBAL_INTERNAL_MANAGED_TCP_PROXY:跨區域內部 Proxy 網路負載平衡器,搭配 TCP Proxy
    • REGIONAL_EXTERNAL_MANAGED_TCP_PROXY:區域性外部 Proxy 網路負載平衡器 (含 TCP Proxy)
    • REGIONAL_INTERNAL_MANAGED_TCP_PROXY:區域性內部 Proxy 網路負載平衡器,搭配 TCP Proxy
  • 直通式網路負載平衡器

    • EXTERNAL_NETWORK_TCP_UDP (適用於外部直通式網路負載平衡器)
    • INTERNAL_TCP_UDP (適用於內部直通式網路負載平衡器)

如要納入內部或外部的所有負載平衡器類型,請使用 in: 前置字串,並在後方加上 INTERNALEXTERNAL。舉例來說,允許 in:INTERNAL 即表示允許使用上方清單中的所有內部負載平衡器。

如需使用這項限制的操作說明範例,請參閱「使用機構政策設定清單限制」一文。

設定政策後,系統會在新增相應的Google Cloud 轉送規則時強制執行政策。這項限制不會套用至現有的 Cloud Load Balancing 設定。

如果您嘗試建立違反限制條件的負載平衡器類型,系統會失敗並產生錯誤訊息。錯誤訊息的格式如下:

Constraint constraints/compute.restrictLoadBalancerCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

如果您在不同資源層級設定多項 restrictLoadBalancerCreationForTypes 限制,這些限制會依據階層強制執行。因此建議您將 inheritFromParent 欄位設為 true,確保也將較高層級的政策列入考量。

GKE 錯誤訊息

如果您使用 Google Kubernetes Engine (GKE),且貴機構有人建立了機構政策,限制可建立的負載平衡器類型,您就會看到類似以下的錯誤訊息:

Warning  Sync    28s   loadbalancer-controller  Error during sync: error running
load balancer syncing routine: loadbalancer FORWARDING_RULE_NAME
does not exist: googleapi: Error 412:
Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for
projects/PROJECT_ID. Forwarding Rule
projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME
of type LOAD_BALANCER_TYPE is not allowed, conditionNotMet

視政策而定,這可能會限制您建立新的負載平衡器資源 (例如 ServiceIngressGateway) 的功能。請與貴機構的政策管理員聯絡,瞭解目前適用的限制。

您可以執行下列指令查看 GKE 錯誤訊息:

kubectl get events -w
kubectl describe RESOURCE_KIND NAME

更改下列內容:

  • RESOURCE_KIND:負載平衡器類型,可為 ingressservice
  • NAME:負載平衡器名稱

停用全球負載平衡

這項布林值限制會停用全球負載平衡產品的建立功能。如果強制執行這項限制,則只能建立不含全球性依附元件的區域性負載平衡產品。

  • 名稱:停用全球負載平衡
  • ID:constraints/compute.disableGlobalLoadBalancing

根據預設,使用者可以建立全球負載平衡產品。

如需使用這項限制的操作說明範例,請參閱「使用機構政策設定布林值限制」。

限制通訊協定轉送部署作業的類型

使用機構政策,限制機構內可建立的通訊協定轉送部署類型 (內部或外部)。設定下列機構政策限制:

  • 名稱:依據 IP 位址類型限制通訊協定轉送
  • ID:constraints/compute.restrictProtocolForwardingCreationForTypes

如要設定 compute.restrictProtocolForwardingCreationForTypes 限制,請指定要允許或拒絕的協定轉送部署類型的許可清單或拒絕清單。允許或拒絕值的清單只能包含下列值:

  • INTERNAL
  • EXTERNAL

根據預設,新建立的機構會將這項政策設為只允許 INTERNAL 通訊協定轉送。也就是說,與目標執行個體相關聯的任何轉送規則都只能使用內部 IP 位址。如果您想使用外部 IP 位址的通訊協定轉送功能,或是想禁止使用者使用內部 IP 位址的通訊協定轉送功能,則需要更新這個機構政策。

更新政策後,您建立任何與目標執行個體相關的新轉送規則時,系統就會強制套用變更。這項限制不會在現有通訊協定轉送設定中溯及既往。

如需使用這項限制的操作說明範例,請參閱「使用機構政策設定清單限制」一文。

如果您嘗試建立違反限制條件的類型通訊協定轉送部署,系統會失敗並產生錯誤訊息。錯誤訊息的格式如下:

Constraint constraints/compute.restrictProtocolForwardingCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule
projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

如果您在不同資源層級設定多項 restrictProtocolForwardingCreationForTypes 限制,並將 inheritFromParent 欄位設為 true,系統就會依階層強制執行限制。

強制執行共用虛擬私有雲限制

使用下列機構政策,限制使用者設定共用 VPC 部署的方式。

限制共用虛擬私有雲主專案

這項清單限制可讓您限制資源可連接的共用虛擬私有雲主專案。

  • 名稱:限制共用虛擬私有雲主專案
  • ID:constraints/compute.restrictSharedVpcHostProjects

根據預設,專案可連接至相同機構中的任何主專案,並因此成為服務專案。設定 compute.restrictSharedVpcHostProjects 限制時,您可以透過下列方式指定主專案的許可清單或拒絕清單:

  • 請使用下列格式指定專案:
    • projects/PROJECT_ID
  • 指定專案、資料夾或機構。限制會套用至資源階層中指定資源下的所有專案。請使用下列格式:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID

如需使用這項限制的操作說明範例,請參閱「使用機構政策設定清單限制」一文。

限制共用虛擬私有雲子網路

這項清單限制定義了可供合格資源使用的共用虛擬私有雲端子網路組合。該限制不適用於相同專案中的資源。

  • 名稱:受限制的共用虛擬私有雲子網路
  • ID:constraints/compute.restrictSharedVpcSubnetworks

根據預設,符合資格的資源可使用任何共用虛擬私有雲子網路。設定 compute.restrictSharedVpcSubnetworks 限制時,您可以透過下列方式指定受限的子網路清單:

  • 請使用下列格式指定子網路:
    • projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.
  • 指定專案、資料夾或機構。這項限制會套用至資源階層中指定資源下的所有子網路。請使用下列格式:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

如需使用這項限制的操作說明範例,請參閱「使用機構政策設定清單限制」一文。

限制跨專案的後端值區和後端服務

您可以使用這項限制,限制網址對應可參照的後端服務和後端值區。不適用於位於網址對應所在專案的後端服務和後端值區。

  • 名稱:限制跨專案的後端值區和後端服務
  • ID:constraints/compute.restrictCrossProjectServices

根據預設,只要執行動作的使用者具備 compute.backendServices.usecompute.regionBackendServices.usecompute.backendBuckets.use 權限,專案中的網址對應就能參照相同機構內其他專案中的相容後端服務和後端 bucket。

如要設定 restrictCrossProjectServices 限制,您可以按照下列方式指定後端服務或後端值區的許可清單或拒絕清單:

  • 請使用以下格式指定後端服務:

    • projects/PROJECT_ID/regions/REGION/backendservices/BACKEND_SERVICE_NAME
    • projects/PROJECT_ID/global/backendservices/BACKEND_SERVICE_NAME
  • 請使用下列格式指定後端值區:

    • projects/PROJECT_ID/regions/REGION/backendbuckets/BACKEND_BUCKET_NAME
    • projects/PROJECT_ID/global/backendbuckets/BACKEND_BUCKET_NAME
  • 指定專案、資料夾或機構。這項限制會套用至資源階層中指定資源下的所有後端服務和後端值區。請使用下列格式:

    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

設定含有這項限制的機構政策後,下次使用 gcloud compute url-maps 指令將後端服務或後端值區附加至網址對應時,這項限制就會生效。這項限制不會對任何跨專案後端服務或後端值區的現有參照產生追溯影響。

這項限制適用於所有部署類型,包括共用虛擬私有雲端。為避免衝突,建議您不要同時使用這項限制和下一節所述的 compute.restrictSharedVpcBackendServices 限制。

如需使用這項限制的操作說明範例,請參閱「使用機構政策設定清單限制」一文。

限制共用虛擬私有雲後端服務

您可以使用這項限制,限制共用虛擬私有雲部署中 URL 對應項目可參照的後端服務,這些部署會使用跨專案服務參照。不適用於位於網址對應所在專案的後端服務。

  • 名稱:限制共用虛擬私有雲後端服務
  • ID:constraints/compute.restrictSharedVpcBackendServices

建議您改用上一節所述的 compute.restrictCrossProjectServices 限制。compute.restrictCrossProjectServices 限制適用於所有部署類型 (共用虛擬私有雲或其他類型),也適用於後端桶和後端服務。

限制共用虛擬私有雲專案的防刪除鎖定移除作業

如果這項布林限制已設為 True,可限制無機構層級權限但能移除共用虛擬私有雲主專案防刪除鎖定的一組使用者。

  • 名稱:限制共用虛擬私有雲專案的防刪除鎖定移除作業
  • ID:constraints/compute.restrictXpnProjectLienRemoval

根據預設,任何具有更新防刪除鎖定權限的使用者,都可以移除共用虛擬私有雲主專案防刪除鎖定。強制執行此限制需要在機構層級授予該權限。

如需使用這項限制的操作說明範例,請參閱「使用機構政策設定布林值限制」。

使用自訂限制限制 TLS 功能

如要符合法規遵循規定並限制特定的傳輸層安全性 (TLS) 功能,您可以建立下列機構政策限制,並搭配SSL 政策資源的自訂限制使用:

  • 名稱:須有 SSL 政策
  • ID:constraints/compute.requireSslPolicy

您可以使用 constraints/compute.requireSslPolicy 限制,搭配SSL 政策欄位的自訂限制,為部署作業建立客製化限制。舉例來說,您可以執行下列操作:

  • 限制使用較舊的 TLS 版本 (例如 1.0 和 1.1) 和加密套件,以提升安全性並符合法規遵循要求。
  • 減少所需握手次數,並改善負載平衡器與用戶端的相容性,進而提升效能。
  • 為特定資源節點及其子項套用限制。舉例來說,如果您為某機構拒絕 TLS 1.0 版本,則該機構的所有子資料夾和專案 (子項) 也會遭到拒絕。

如要為應用程式負載平衡器或 Proxy 網路負載平衡器套用 SSL 政策,您必須將政策附加至負載平衡器的目標 HTTPS Proxy 或目標 SSL Proxy

如要更新現有的 SSL 政策,請參閱「更新附加至目標 Proxy 的現有 SSL 政策」。

使用機構政策設定布林值限制

主控台

如要透過主控台設定組織政策,請完成下列步驟:

  1. 在 Google Cloud 控制台中,前往「Organization policies」(機構政策) 頁面。

    前往「機構政策」

  2. 在「篩選」欄位中,依據「名稱」或「ID」搜尋限制條件。
  3. 按一下限制名稱。
  4. 按一下「編輯」即可編輯限制條件。
  5. 在「Edit」(編輯) 頁面選取 [Customize] (自訂)
  6. 在「強制執行」下方,選取強制執行選項:
    • 如要強制執行這項限制,請選取 [On] (開啟)
    • 如要停止強制執行限制條件,請選取 [Off] (關閉)
  7. 完成變更後,按一下「儲存」即可套用限制設定。

如要進一步瞭解如何使用 Google Cloud 控制台自訂機構政策,請參閱「自訂布林值限制條件的政策」。

gcloud

如要為機構政策啟用布林值限制,請使用 gcloud resource-manager org-policies enable-enforce 指令,如下所示。

如要啟用共用虛擬私有雲專案的防刪除鎖定移除作業,請按照下列步驟操作:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.restrictXpnProjectLienRemoval

如要停用全球負載平衡,請按照下列步驟操作:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.disableGlobalLoadBalancing

如要進一步瞭解如何在 gcloud 中使用布林值限制條件,請參閱「使用限制條件」一文。

使用機構政策設定清單限制

主控台

如要透過主控台設定組織政策,請完成下列步驟:

  1. 在 Google Cloud 控制台中,前往「Organization policies」(機構政策) 頁面。

    前往「機構政策」

  2. 在「篩選」欄位中,輸入限制的名稱ID 進行搜尋。舉例來說,如要限制共用虛擬私有雲主專案,請搜尋 ID:constraints/compute.restrictSharedVpcHostProjects
  3. 按一下限制名稱。
  4. 按一下「編輯」即可編輯限制條件。
  5. 如要建立自訂政策,請選取「自訂」,然後指定資源的許可清單或拒絕清單。如要進一步瞭解如何使用 Google Cloud 控制台自訂機構政策,請參閱「自訂清單限制的政策」。
  6. 完成變更後,按一下「儲存」即可套用限制設定。

gcloud

本節提供幾個設定範例,說明如何建立及設定含有清單限制的機構政策檔案。如要進一步瞭解如何在 gcloud 中使用清單限制和機構政策,請參閱「使用限制」一文。

  1. 建立政策檔案。請使用下列 JSON 設定範例,根據您的需求建立專屬政策檔案。

    • 限制負載平衡器類型

      • 只允許部分負載平衡器

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allowedValues": [
            "INTERNAL_TCP_UDP",
            "EXTERNAL_NETWORK_TCP_UDP"
          ]
        }
        }
        
      • 拒絕所有外部負載平衡器

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "in:EXTERNAL"
          ]
        }
        }
        
      • 拒絕所有負載平衡器

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
    • 限制通訊協定轉送類型

      • 拒絕所有通訊協定轉送

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
      • 僅允許內部通訊協定轉送

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "EXTERNAL"
          ]
        }
        }
        
    • 限制共用虛擬私有雲設定

      • 限制共用虛擬私有雲主專案

        {
        "constraint": "constraints/compute.restrictSharedVpcHostProjects",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID"
          ]
        }
        }
        
      • 限制共用虛擬私有雲子網路

        {
        "constraint": "constraints/compute.restrictSharedVpcSubnetworks",
        "listPolicy": {
          "deniedValues": [
            "under:organizations/ORGANIZATION_ID",
            "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
          ]
        }
        }
        
      • 限制共用虛擬私有雲後端服務

        {
        "constraint": "constraints/compute.restrictCrossProjectServices",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID",
            "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME"
          ]
        }
        }
        
  2. 將限制套用至資源:機構、資料夾或專案。

    如為機構,請執行下列指令:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --organization=ORGANIZATION_ID
    

    如要套用至資料夾,請執行下列指令:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --folder=FOLDER_ID
    

    如要套用至專案,請執行下列指令:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --project=PROJECT_ID
    

    更改下列內容:

設定機構政策,將 SSL 政策套用至目標 HTTPS Proxy 和目標 SSL Proxy

主控台

如要透過主控台設定組織政策,請完成下列步驟:

  1. 在 Google Cloud 控制台中,前往「Organization policies」(機構政策) 頁面。

    前往「機構政策」

  2. 在「篩選」欄位中,依據「名稱」或「ID」搜尋限制條件。

  3. 按一下限制名稱。

  4. 按一下「編輯」即可編輯限制條件。

  5. 如要建立自訂政策,請選取「自訂」,然後指定資源的許可清單或拒絕清單。

  6. 完成變更後,按一下「儲存」即可套用限制設定。

gcloud

本節提供幾個設定範例,說明如何使用 constraints/compute.requireSslPolicy 限制建立及設定組織政策檔案。

  • 建立政策檔案,禁止使用 SSL 政策。

    {
      "constraint": "constraints/compute.requireSslPolicy",
      "listPolicy": {
        "allValues": "DENY"
      }
    }
    
  • 建立政策檔案,將 SSL 政策套用至資源階層中指定資源下的所有目標 HTTPS 和 SSL Proxy:

    {
      "constraint": "constraints/compute.requireSslPolicy",
      "listPolicy": {
        "allowedValues": [
          "under:folders/FOLDER_ID",
          "under:projects/PROJECT_ID"
        ]
      }
    }
    
  • 將限制套用至目標 HTTPS 和 SSL Proxy:機構、資料夾或專案。

    如為機構,請執行下列指令:

    gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \
        --organization=ORGANIZATION_ID
    

    如要套用至資料夾,請執行下列指令:

    gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \
        --folder=FOLDER_ID
    

    如要套用至專案,請執行下列指令:

    gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \
        --project=PROJECT_ID
    

    更改下列內容:

  • 如要取得有效政策,以便驗證資源 (機構、資料夾或專案) 的預設行為,請執行下列指令:

    機構:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --organization=ORGANIZATION_ID
    

    針對資料夾:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --folder=FOLDER_ID
    

    專案:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --project=PROJECT_ID
    
  • 如要從資源 (機構、資料夾或專案) 中刪除政策,請執行下列指令:

    機構:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --organization=ORGANIZATION_ID
    

    針對資料夾:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --folder=FOLDER_ID
    

    專案:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --project=PROJECT_ID
    

如要設定自訂限制,請參閱「使用自訂限制」。

後續步驟