設定網路邊緣安全性政策

網路邊緣安全性政策可讓您設定規則,允許或封鎖 Google 網路邊緣的流量。您可以為下列前端類型設定網路邊緣安全政策:

  • 外部直通式網路負載平衡器
  • 通訊協定轉送
  • 具有公開 IP 位址的 VM

您可以透過網路邊緣安全政策,依來源和目的地 IP 位址範圍進行篩選,做法與 Cloud Next Generation Firewall 類似,但不會耗用資源。此外,網路邊緣安全性政策是唯一支援位元組偏移篩選的安全性政策類型。

設定網路邊緣安全政策的自訂規則

與後端和邊緣安全性政策一樣,您可以為網路邊緣安全性政策設定自訂規則。在下列範例中,您會建立網路邊緣安全性政策、設定自訂規則,只允許來自特定來源 IP 位址範圍的流量,並將政策附加至後端服務。

網路邊緣安全性政策支援多種 Google Cloud Armor 篩選器,包括位元組偏移篩選器等獨特篩選器。如要進一步瞭解網路邊緣安全政策支援哪些功能,請參閱安全政策總覽。 此外,您也可以在預覽模式中部署網路邊緣安全性政策。

繼續操作前,請務必註冊 Google Cloud Armor Enterprise,並設定進階網路 DDoS 防護功能。如要使用網路邊緣安全性政策的自訂規則,您必須啟用 Cloud Armor Enterprise 訂閱方案和進階網路分散式阻斷服務防護功能。

如要設定自訂規則,請按照下列步驟操作:

  1. REGION 區域中,建立名為 POLICY_NAME 的新網路邊緣安全性政策。請勿使用啟用進階網路 DDoS 防護功能時所用的安全性政策。

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION
    
  2. 將政策的預設規則allow 變更為 deny,封鎖其他規則未明確允許的流量。

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION
    
  3. 在同一個安全性政策中,新增優先順序為 RULE_PRIORITY 的規則,允許來源 IP 位址範圍 RANGE 中的要求。

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-src-ip-ranges=RANGE \
       --action=allow \
       --region=REGION
    
  4. 將安全性政策與後端服務建立關聯 BACKEND_SERVICE_NAME

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION
    

    或者,您也可以使用下列指令,將安全防護政策與單一 VM 執行個體建立關聯:

    gcloud beta compute instances network-interfaces update VM_NAME \
       --security-policy=POLICY_NAME \
       --security-policy-region=REGION \
       --network-interface=NETWORK_INTERFACE \
       --zone=ZONE_NAME
    
  5. 選用:您可以使用下列指令,確認安全政策已附加。如果成功,輸出內容中的 securityPolicy 欄位會顯示安全性政策資源的連結。

    gcloud compute instances describe VM_NAME --zone=ZONE_NAME
    

建立上述範例後,您可以使用 security-policies rules update 指令,繼續在網路邊緣安全政策中新增規則。網路邊緣安全性政策支援的欄位如下:

欄位 旗標 說明
來源 IP 位址 --network-src-ip-ranges 標準文字格式的來源 IPv4/6 位址或 CIDR 前置碼。
來源通訊埠 --network-src-ports TCP/UDP/SCTP 的來源通訊埠編號。每個元素都可以是 (16 位元) 數字 (例如「80」) 或範圍 (例如「0-1023」)。
來源區碼 --network-src-region-codes 兩個英文字母的國家/地區代碼 (ISO 3166-1 alpha 2)。
來源 ASN --network-src-asns 來源 IP 位址的 BGP 自治系統編號。
目的地 IP 位址範圍 --network-dest-ip-ranges 標準文字格式的目的地 IPv4/6 位址或 CIDR 前置碼。
目的地通訊埠 --network-dest-ports TCP/UDP/SCTP 的目標通訊埠編號。每個元素都可以是 (16 位元) 數字 (例如「80」) 或範圍 (例如「0-1023」)。
IP 位址通訊協定 --network-ip-protocols IPv4 通訊協定 / IPv6 下一個標頭 (擴充標頭之後)。每個元素可以是 8 位元數字 (例如「6」)、範圍 (例如「253-254」),或下列其中一個通訊協定名稱:
  • tcp
  • udp
  • icmp
  • esp
  • ah
  • ipip
  • sctp
位元組偏移篩選 不適用 請參閱下節。

使用 --network-src-region-codes 旗標搭配網路邊緣安全政策時,您可以針對下列受美國全面制裁的地區使用區域代碼:

地域 指派代碼
克里米亞 XC
所謂的頓內次克人民共和國 (DNR) 和盧干斯克人民共和國 (LNR)
XD

設定位元組偏移篩選條件

如果您使用外部直通式網路負載平衡器、通訊協定轉送或具備公開 IP 位址的 VM,Google Cloud Armor 就能對傳入的流量執行深層封包檢查。您可以設定安全性政策規則,比對特定 TCP/UDP 位元組偏移值。您可以設定規則,在設定的值存在時套用規則動作,也可以在值不存在時套用。

以下範例允許流量 (如果值存在),並拒絕所有其他流量:

  1. 建立新的網路邊緣安全性政策。如果已有網路邊緣安全性政策,可以略過這個步驟。

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION_NAME
    
  2. 更新網路邊緣安全性政策,使用下列參數新增使用者定義的欄位:

    • 基本:值可以是 IPv4IPv6TCPUDP
    • 偏移:欄位從基準開始的偏移量 (以位元組為單位)
    • 大小:欄位大小 (以位元組為單位,最大值為 4)
    • 遮罩:要比對的欄位中位元的遮罩

    每項政策最多可使用八個使用者定義欄位。在下列範例中,您會建立兩個使用者定義的欄位。

    gcloud compute security-policies add-user-defined-field POLICY_NAME \
       --user-defined-field-name=USER_DEFINED_FIELD_NAME_TCP \
       --base=TCP \
       --offset=OFFSET \
       --size=SIZE \
       --mask=MASK \
       --region=REGION_NAME
    
    gcloud compute security-policies add-user-defined-field POLICY_NAME \
       --user-defined-field-name=USER_DEFINED_FIELD_NAME_UDP \
       --base=UDP \
       --offset=OFFSET \
       --size=SIZE \
       --mask=MASK \
       --region=REGION_NAME
    
  3. 在網路邊緣安全性政策中,新增與上一個範例中使用的自訂欄位名稱相同的規則。將 VALUE1VALUE2 替換為要允許的流量值。

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-user-defined-fields="USER_DEFINED_FIELD_NAME_TCP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1,VALUE2" \
       --action=allow \
       --region=REGION_NAME
    
  4. 將網路邊緣安全性政策中的預設規則設為拒絕規則。如果安全政策中的預設規則已是拒絕規則,則可略過這個步驟。

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION_NAME
    
  5. 將網路邊緣安全政策與外部直通式網路負載平衡器的後端服務建立關聯。

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION_NAME
    

監控

Google Cloud Armor 會將下列指標匯出至 Cloud Monitoring,供您查看各項網路邊緣安全性政策規則:

  • packet_count
    • Blocked:布林值,代表 allowdeny
      規則動作的結果
    • Count:每 10,000 個封包,packet_count 的值就會遞增一次。舉例來說,packet_count 值為 5 表示至少有 50,000 個封包符合規則
  • preview_packet_count:與 packet_count 相同,用於預覽模式中的規則

如要查看網路邊緣安全政策的指標,請先啟用 Network Security API (networksecurity.googleapis.com)。這項權限包含在 Compute Security Admin 角色 (roles/compute.securityAdmin) 中。啟用 Network Security API 後,您可以在控制台的「監控」部分查看指標。 Google Cloud

前往「Monitoring」頁面