本頁說明如何使用 Google Cloud 控制台和 Google Cloud CLI,建立及管理 url-filtering 類型的安全性設定檔。
事前準備
- 您必須在專案中啟用 Network Security API。
- 如要執行本指南中的 gcloud指令列範例,請安裝 gcloud CLI。
角色
如要取得建立、查看、更新或刪除安全性設定檔所需的權限,請要求管理員授予您機構的必要 IAM 角色。如要進一步瞭解如何授予角色,請參閱管理存取權。
建立網址篩選安全性設定檔
建立網址篩選安全性設定檔 (類型為 url-filtering 的安全性設定檔) 時,您可以將安全性設定檔名稱指定為字串或專屬網址 ID。機構範圍安全性設定檔的專屬網址可採用下列格式:
organization/ORGANIZATION_ID/locations/LOCATION/securityProfiles/SECURITY_PROFILE_NAME
如果您使用安全性設定檔名稱的專屬網址 ID,網址 ID 中已包含安全性設定檔的機構和位置。不過,如果只使用安全性設定檔名稱,就必須分別指定機構和位置。如要進一步瞭解專屬網址 ID,請參閱安全性設定檔規格。
主控台
- 前往 Google Cloud 控制台的「Security profiles」頁面。 
- 在專案選取器選單中,選取您的機構。 
- 選取「安全性設定檔」分頁標籤。 
- 按一下 Create profile。 
- 在「名稱」欄位中輸入名稱。 
- 選用:在「說明」欄位中輸入說明。 
- 如要建立 Cloud Next Generation Firewall Enterprise 安全性設定檔,請在「用途」部分選取「Cloud NGFW Enterprise」。 
- 如要建立網址篩選安全性設定檔,請在「類型」部分選取「網址篩選」。 
- 在「網址篩選器」部分中,按一下「建立網址篩選器」按鈕。 
- 在「建立網址篩選器」窗格中,指定下列詳細資料: - 優先順序:指定網址篩選器的優先順序。
- 動作:指定 Cloud NGFW 對流量執行的動作。- 允許:允許符合網址的連線。
- 拒絕:拒絕與網址相符的連線。
 
- 網址清單:指定網址或比對字串清單。每個網址或比對字串項目必須各成一行,且不得使用空格或分隔符號。每個項目只能有一個網域。如要進一步瞭解比對字串,請參閱「網址的比對字串」。
 
- 點選「建立」。 
gcloud
- 建立含有下列內容的 YAML 檔案: - name: NAME type: PROFILE_TYPE urlFilteringProfile: urlFilters: - filteringAction: ACTION priority: PRIORITY urls: URL[,URL,...]- 更改下列內容: - NAME:網址篩選安全設定檔的名稱;您可以將名稱指定為字串或專屬網址 ID。
- PROFILE_TYPE:安全性設定檔類型,可以是- url-filtering或- threat-prevention。
- ACTION:指定下列其中一項動作:- allow:允許與網址相符的連線
- deny:拒絕與網址相符的連線
 
- PRIORITY:網址篩選器的優先順序,範圍為 0 到 2147483647。
- URLs:以半形逗號分隔的相符字串清單。例如- www.example.com和- www.altostrat.com。
 
- 如要建立網址篩選安全性設定檔,請執行 - gcloud beta network-security security-profiles import指令:- gcloud beta network-security security-profiles import NAME \ --location LOCATION \ --source FILE_NAME \ --organization = ORGANIZATION_ID- 或者,您也可以使用 - gcloud beta network-security security-profiles url-filtering create指令,建立網址篩選安全性設定檔,而不使用 YAML 檔案:- gcloud beta network-security security-profiles url-filtering create NAME \ --location LOCATION \ --organization ORGANIZATION_ID \ --description DESCRIPTION- 更改下列內容: - NAME:網址篩選安全設定檔的名稱;您可以將名稱指定為字串或專屬網址 ID。- 如果為 - NAME標記使用專屬網址 ID,可以省略- LOCATION和- ORGANIZATION標記。
- LOCATION:網址篩選安全性設定檔的位置。- 位置一律設為「 - global」。如果您使用專屬網址 ID 做為- NAME標記,可以省略- LOCATION標記。
- FILE_NAME:YAML 檔案的名稱。例如:- url-filtering-sp.yaml。
- ORGANIZATION_ID:建立網址篩選安全設定檔的機構。如果您使用不重複的網址 ID 做為- name標記,可以省略- ORGANIZATION_ID標記。
- DESCRIPTION:網址篩選安全設定檔的選用說明。
 - 舉例來說,下列程式碼片段顯示網址篩選安全設定檔範例,允許對 - www.example.com和- www.altostrat.com的要求,但拒絕所有其他網域的要求:- url_filtering_profile: url_filters: - filtering_action: ALLOW priority: 1000 urls: ['www.example.com', 'www.altostrat.com'] # the following URL filter is implicit and will be processed last - filtering_action: DENY priority: 2147483647 urls: ['*']
隱含拒絕網址篩選器
網址篩選安全性設定檔一律會包含優先順序最低 (2147483647) 的預設網址篩選器,拒絕所有不符合優先順序較高網址篩選器的連線。下列程式碼片段顯示隱含拒絕網址篩選器的範例:
  url_filtering_profile:
  url_filters:
    # user-specified URL filters
    - filtering_action: DENY
      priority: 1000
      urls: ['www.example.com','www.altostrat.com']
    - filtering_action: ALLOW
      priority: 2000
      urls: ['www.example.org','www.example.net']
    # implicit deny URL filter that will be processed last
    - filtering_action: DENY
      priority: 2147483647
      urls: ['*']
  查看或匯出網址篩選器安全設定檔時,您會看到隱含拒絕網址篩選器。您無法修改或移除隱含篩選器。舉例來說,如要將設定檔的預設動作從 DENY (由隱含篩選器強制執行) 變更為 ALLOW,您必須新增明確篩選器,讓 Cloud NGFW 在隱含篩選器之前處理。
  url_filtering_profile:
  url_filters:
    # user-specified filters
    - filtering_action: DENY
      priority: 1000
      urls: ['www.example.com','www.altostrat.com']
    # explicit allow URL filter that you can add
    - filtering_action: ALLOW
      priority: 2000
      urls: ['*']
    # implicit deny URL filter that will be processed last
    - filtering_action: DENY
      priority: 2147483647
      urls: ['*']
  網址的比對器字串
比對字串是您在網址篩選器的 urls 欄位中指定的值。您可以在網址篩選器中指定一或多個比對字串。
萬用字元
網址清單中的每個比對字串都支援萬用字元 (*),但使用方式有限制。
- 每個比對字串只能有一個星號 (*),而且必須是第一個或唯一的字元。
- 星號 (*) 可有下列解讀方式: - 在半形句號 (.) 前加上星號 (*),即代表要比對該網域的所有子網域。 - 舉例來說,比對字串「*.domain.com」與「a.domain.com」和「a.b.c.domain.com」相符,但與「domain.com」不相符。 - *.example.com- a.example.com- a.b.c.example.com- example.com- url_filtering_profile: url_filters: # user-specified filters - filtering_action: ALLOW priority: 1000 urls: ['*.example.com'] # implicit deny URL filter that will be processed last - filtering_action: DENY priority: 2147483647 urls: ['*']- 在上述範例中,Cloud NGFW 允許前往 - example.com子網域的流量,但拒絕其餘輸出流量。
- 在標籤前加上星號 (*),即代表要比對網域和所有子網域。 - 舉例來說,比對字串「*domain.com」與「a.domain.com」、「a.b.c.domain.com」和「domain.com」均相符。 - *example.com- a.example.com- a.b.c.example.com- example.com- url_filtering_profile: url_filters: # user-specified filters - filtering_action: ALLOW priority: 1000 urls: ['*example.com'] # implicit deny URL filter that will be processed last - filtering_action: DENY priority: 2147483647 urls: ['*']- 在上述範例中,Cloud NGFW 允許前往 - example.com和- example.com子網域的流量,但拒絕其餘輸出流量。
- Cloud NGFW 不會將星號 (*) 解讀為規則運算式萬用字元。 - 舉例來說, - *example.test與- newexample.test或- a.newexample.test不相符。只有- example.test及其子網域才符合。- example.test
- 如果只有一個星號 (*) 而沒有其他字元,則代表所有要求都符合。 - 舉例來說,優先順序最低的明確允許網址篩選器中的比對字串只包含星號 (*),且具有 - ALLOW動作,可覆寫- DENY的預設動作。這是因為隱含拒絕網址篩選器會針對不符合較高優先順序網址篩選器的任何要求,強制執行預設- DENY。- 如果 Cloud NGFW 缺少 SNI 或網域資訊,系統會根據優先順序最高的網址篩選器 (明確 - ALLOW或隱含- DENY),判斷是否允許或拒絕連線。如果流量未加密 (HTTP 流量),或是加密訊息標頭的 TLS 檢查功能已停用,就可能發生這種情況。- url_filtering_profile: url_filters: # user-specified filters - filtering_action: DENY priority: 1000 urls: ['www.example.com','www.altostrat.com'] # explicit allow URL filter that you can add - filtering_action: ALLOW priority: 2000 urls: ['*'] # implicit deny URL filter that will be processed last - filtering_action: DENY priority: 2147483647 urls: ['*']
 
限制
- 比對字串代表網域或子網域。
- 比對字串不支援正斜線字元 (/),例如「www.example.com/images」。
- 比對字串不支援網址格式或通訊協定名稱,例如 http://www.example.com。
- 比對字串不支援通訊埠編號,例如 www.example.com:80。
- 比對字串僅支援 ASCII 字母、數字和特殊字元:連字號 (-)、半形句號 (.) 和星號 (*)。
如果網域名稱包含 ASCII 字母、數字、連字號 (-)、半形句號 (.) 或星號 (*) 以外的字元,請使用 Punycode 轉換。Punycode 是一種編碼標準,可將 Unicode 網域名稱轉換為與 ASCII 相容的格式。
- 如有兩個以上的標籤,請使用半形句號 (.) 分隔。標籤可以包含一或多個連字號 (-),但不能位於開頭或結尾。每個標籤的長度上限為 63 個字元。 
- 網址篩選器不支援在網域名稱開頭使用半形句號, 也不支援在比對字串中使用連續半形句號。網址篩選器允許結尾有半形句號,不過 Cloud NGFW 會在儲存網址篩選器之前,先將這類句號移除。 
- Cloud NGFW 會先將比對字串轉換為小寫,再儲存網址篩選器。Cloud NGFW 不會執行任何其他正規化作業。 
- 每個網域名稱的長度上限為 255 個字元。 
查看網址篩選安全性設定檔
您可以查看機構中特定網址篩選安全性設定檔的詳細資料。
主控台
- 前往 Google Cloud 控制台的「Security profiles」頁面。 
- 選取「安全性設定檔」分頁標籤。這個分頁會顯示已設定的安全性設定檔清單。 
- 按一下「網址篩選」類型的安全性設定檔,即可查看設定檔詳細資料。 
gcloud
如要查看網址篩選安全性設定檔的詳細資料,請使用 gcloud beta network-security security-profiles url-filtering describe 指令:
gcloud beta network-security security-profiles url-filtering describe NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
更改下列內容:
- NAME:您要說明的- url-filtering類型安全設定檔名稱。您可以將名稱指定為字串或專屬網址 ID。
- ORGANIZATION_ID:建立網址篩選安全設定檔的機構。如果您使用專屬網址 ID 做為- NAME標記,可以省略- ORGANIZATION_ID標記。
- LOCATION:網址篩選安全設定檔的位置。位置一律設為「- global」。如果您使用專屬網址 ID 做為- NAME標記,可以省略- LOCATION標記。
列出網址篩選安全性設定檔
您可以列出機構中的所有網址篩選安全性設定檔。
主控台
- 前往 Google Cloud 控制台的「Security profiles」頁面。 
- 選取「安全性設定檔」分頁標籤。這個分頁會顯示已設定的安全性設定檔清單。 
gcloud
如要列出所有網址篩選安全性設定檔,請使用 gcloud beta network-security security-profiles url-filtering list 指令:
gcloud beta network-security security-profiles url-filtering list \
    --organization ORGANIZATION_ID \
    --location LOCATION
更改下列內容:
- ORGANIZATION_ID:建立網址篩選安全設定檔的機構。
- LOCATION:網址篩選安全性設定檔的位置。 位置一律設為「- global」。
刪除網址篩選安全性設定檔
您可以指定網址篩選安全設定檔的名稱、位置和機構,藉此刪除設定檔。不過,如果安全性設定檔遭安全性設定檔群組參照,就無法刪除。
主控台
- 前往 Google Cloud 控制台的「Security profiles」頁面。 
- 選取「安全性設定檔」分頁標籤。這個分頁會顯示已設定的安全性設定檔清單。 
- 選取要刪除的安全設定檔,然後按一下「刪除」。 
- 再按一下 [刪除] 加以確認。 
gcloud
如要刪除網址篩選安全性設定檔,請使用 gcloud beta network-security security-profiles url-filtering delete 指令:
gcloud beta network-security security-profiles url-filtering delete NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION
更改下列內容:
- NAME:要刪除的網址篩選安全設定檔名稱,您可以將名稱指定為字串或專屬網址 ID。
- ORGANIZATION_ID:建立網址篩選安全設定檔的機構。如果您使用不重複的網址 ID 做為- NAME標記,可以省略- ORGANIZATION_ID標記。
- LOCATION:網址篩選安全性設定檔的位置。- 位置一律設為「 - global」。如果您使用專屬網址 ID 做為- NAME標記,可以省略- LOCATION標記。
匯入網址篩選安全性設定檔
您可以從 YAML 檔案匯入網址篩選安全性設定檔 (自訂建立或先前匯出)。匯入網址篩選安全性設定檔時,如果已有同名設定檔,Cloud NGFW 會更新現有設定檔。
gcloud
如要從 YAML 檔案匯入網址篩選安全性設定檔,請使用 gcloud beta network-security security-profiles import 指令:
gcloud beta network-security security-profiles import NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
    --source FILE_NAME
更改下列內容:
- NAME:要匯入的- url-filtering類型安全設定檔名稱。您可以將名稱指定為字串或專屬網址 ID。- 如果為 - NAME標記使用專屬網址 ID,可以省略- ORGANIZATION_ID和- LOCATION標記。
- ORGANIZATION_ID:建立網址篩選安全設定檔的機構。如果您使用專屬網址 ID 做為- NAME標記,可以省略- ORGANIZATION_ID標記。
- LOCATION:網址篩選安全設定檔的位置。位置一律設為「- global」。如果您使用專屬網址 ID 做為- NAME標記,可以省略- LOCATION標記。
- FILE_NAME:YAML 檔案的路徑,其中包含網址篩選安全設定檔的設定匯出資料。例如:- url-filtering-sp.yaml。- YAML 檔案不得包含任何僅供輸出的欄位。或者,您也可以省略 - source旗標,從標準輸入讀取資料。
匯出網址篩選安全性設定檔
您可以將網址篩選安全性設定檔匯出為 YAML 檔案。舉例來說,您可以使用這項功能匯出安全性設定檔、快速修改,然後匯回,不必透過使用者介面修改大型安全性設定檔。
gcloud
如要將網址篩選安全性設定檔匯出至 YAML 檔案,請使用 gcloud beta network-security security-profiles export 指令:
gcloud beta network-security security-profiles export NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
    --destination FILE_NAME
更改下列內容:
- NAME:要匯出的- url-filtering類型安全設定檔名稱。您可以將名稱指定為字串或專屬網址 ID。- 如果為 - NAME標記使用專屬網址 ID,可以省略- ORGANIZATION_ID和- LOCATION標記。
- ORGANIZATION_ID:建立網址篩選安全設定檔的機構。如果您使用專屬網址 ID 做為- NAME標記,可以省略- ORGANIZATION_ID標記。
- LOCATION:網址篩選安全設定檔的位置。位置一律設為「- global」。如果您使用專屬網址 ID 做為- NAME標記,可以省略- LOCATION標記。
- FILE_NAME:YAML 檔案的路徑,Cloud NGFW 會將網址篩選安全設定檔的設定匯出至該檔案。例如:- url-filtering-sp.yaml。- 匯出的設定資料不含任何僅供輸出的欄位。 或者,您也可以省略 - destination旗標,將內容寫入標準輸出。