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,適用於具有 TCP Proxy 的全域外部 Proxy 網路負載平衡器
    • GLOBAL_EXTERNAL_MANAGED_SSL_PROXY,適用於使用 SSL Proxy 的全域外部 Proxy 網路負載平衡器
    • EXTERNAL_TCP_PROXY,適用於採用 TCP Proxy 的傳統版 Proxy 網路負載平衡器
    • EXTERNAL_SSL_PROXY 適用於具有 SSL Proxy 的傳統版 Proxy 網路負載平衡器
    • GLOBAL_INTERNAL_MANAGED_TCP_PROXY,適用於具有 TCP Proxy 的跨區域內部 Proxy 網路負載平衡器
    • REGIONAL_EXTERNAL_MANAGED_TCP_PROXY 適用於具有 TCP Proxy 的區域性外部 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

視政策而定,這可能會限制您建立新的負載平衡器資源,例如服務輸入閘道。請與貴機構的政策管理員聯絡,瞭解有哪些限制。

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

kubectl get events -w
kubectl describe RESOURCE_KIND NAME

更改下列內容:

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

停用全域負載平衡

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

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

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

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

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

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

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

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

  • INTERNAL
  • EXTERNAL

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

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

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

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

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

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

強制執行共用 VPC 限制

使用下列機構政策,限制使用者設定共用 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

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

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

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

  • 名稱:限制跨專案的後端 bucket 和後端服務
  • 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
  • 請以下列格式指定後端 bucket:

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

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

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

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

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

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

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

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

建議改用上一節所述的 compute.restrictCrossProjectServices 限制。這項compute.restrictCrossProjectServices限制適用於所有部署類型 (包括共用虛擬私有雲),以及後端儲存空間和後端服務。

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

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

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

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

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

使用自訂限制條件限制 TLS 功能

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

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

搭配使用 compute.requireSslPolicy 限制和SSL 政策欄位的自訂限制,即可建立適合部署作業的限制。舉例來說,您可以執行下列操作:

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

如要對應用程式負載平衡器或 Proxy 網路負載平衡器強制執行 SSL 政策,請將政策附加至負載平衡器的目標 HTTPS Proxy 或目標 SSL Proxy

如要更新現有的 SSL 政策,請參閱「管理 SSL 政策」。

在機構政策中使用布林值規則

控制台

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

  1. 前往 Google Cloud 控制台的「Organization policies」(組織政策) 頁面。

    前往「Organization policies」頁面

  2. 在「篩選」欄位中,依「名稱」或「ID」搜尋限制。
  3. 按一下限制的名稱。
  4. 按一下「編輯」即可編輯限制。
  5. 在「Edit」(編輯) 頁面選取 [Customize] (自訂)
  6. 在「Enforcement」(強制執行) 下方,選取強制執行選項:
    • 如要強制執行這項限制,請選取 [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」(組織政策) 頁面。

    前往「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"
        }
        }
        
    • 限制通訊協定轉送類型

      • 拒絕所有通訊協定轉送

        {
        "name": "RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.restrictProtocolForwardingCreationForTypes",
        "spec": {
          "rules": [
            {
              "enforce": ["true"],
              "parameters": {
                "denyAll": "true"
              }
            }
          ]
        }
        }
        
      • 僅允許轉送內部通訊協定

        {
        "name": "RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.restrictProtocolForwardingCreationForTypes",
        "spec": {
          "rules": [
            {
              "enforce": ["true"],
              "parameters": {
                "allowedSchemes": "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
    

    更改下列內容:

    • POLICY_FILE:組織政策 YAML 檔案的完整路徑。
    • ORGANIZATION_ID:您的機構 ID
    • FOLDER_ID:您的資料夾 ID
    • PROJECT_ID:您的專案 ID

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

控制台

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

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

    前往組織政策

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

  3. 按一下限制的名稱。

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

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

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

gcloud

本節提供幾個設定範例,說明如何使用 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
    

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

後續步驟