為 SSL 和 TLS 通訊協定使用 SSL 政策

SSL 政策會指定負載平衡器與用戶端進行 SSL 通訊時使用的 SSL 功能組合。 Google Cloud 在本文件中,「SSL」一詞指的是 SSL 和 TLS 通訊協定。SSL

下列負載平衡器支援 SSL 政策:

  • 全域 SSL 政策
    • 全域外部應用程式負載平衡器
    • 傳統版應用程式負載平衡器
    • 外部 Proxy 網路負載平衡器 (含目標 SSL Proxy)
    • 跨區域內部應用程式負載平衡器
  • 區域性 SSL 政策
    • 區域性外部應用程式負載平衡器
    • 區域性內部應用程式負載平衡器

如要進一步瞭解 SSL 政策的運作方式,請參閱 SSL 政策總覽

在建立 HTTPS 或 SSL 負載平衡器時,或是在建立負載平衡器後,都可以使用 Google Cloud 控制台或 Google Cloud CLI 建立及管理 SSL 政策。

建立安全資料傳輸層 (SSL) 政策

您可以使用 Google 代管的設定檔或自訂設定檔建立 SSL 政策。

使用 Google 代管的設定檔建立 SSL 政策

主控台

全域 SSL 政策

如要使用 Google 代管的設定檔建立全域 SSL 政策,請按照下列步驟操作:

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

    前往 SSL 政策

  2. 按一下「建立政策」

  3. 針對「全域 SSL 政策」,請按一下旁邊的「建立」按鈕。系統隨即會顯示「Create policy」頁面。

  4. 輸入名稱

  5. 選取 [Minimum TLS Version] (最低 TLS 版本)

  6. 在「Profile」(設定檔) 下方,選取「Compatible」(相容)、「Modern」(當前版本)或「Restricted」(受限)。該設定檔的「Enabled features」(已啟用的功能) 與「Disabled features」(已停用的功能),會顯示在頁面右邊。

  7. 如有想要附加政策的負載平衡器,請按一下「Apply to targets」(套用至目標),然後選取一項轉送規則,做為 SSL 政策的目標。視需要新增更多目標。

  8. 按一下 [建立]。

區域性 SSL 政策

如要使用 Google 代管的設定檔建立區域性 SSL 政策,請按照下列步驟操作:

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

    前往 SSL 政策

  2. 按一下「建立政策」

  3. 針對「區域性 SSL 政策」,請點選旁邊的「建立」按鈕。系統隨即會顯示「Create policy」頁面。

  4. 輸入名稱

  5. 選擇一個 [Region] (地區)

  6. 選取 [Minimum TLS Version] (最低 TLS 版本)

  7. 在「Profile」(設定檔) 下方,選取「Compatible」(相容)、「Modern」(當前版本)或「Restricted」(受限)。該設定檔的「Enabled features」(已啟用的功能) 與「Disabled features」(已停用的功能),會顯示在頁面右邊。

  8. 如有想要附加政策的負載平衡器,請按一下「Apply to targets」(套用至目標),然後選取一項轉送規則,做為 SSL 政策的目標。視需要新增更多目標。

  9. 按一下 [建立]。

gcloud

全域 SSL 政策

以下是使用 Google 代管的設定檔建立全域 SSL 政策的一般語法:

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile COMPATIBLE | MODERN | RESTRICTED \
    --min-tls-version 1.0 | 1.1 | 1.2

下列指令會使用 MODERN 設定檔建立全域 SSL 政策:

gcloud compute ssl-policies create my-ssl-policy \
    --profile MODERN \
    --min-tls-version 1.0

區域性 SSL 政策

以下是使用 Google 代管的設定檔建立區域性 SSL 政策的一般語法:

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile COMPATIBLE | MODERN | RESTRICTED \
    --min-tls-version 1.0 | 1.1 | 1.2 \
    --region REGION

以下指令可使用 COMPATIBLE 設定檔建立區域性 SSL 政策:

gcloud compute ssl-policies create my-ssl-policy \
    --profile COMPATIBLE \
    --min-tls-version 1.1 \
    --region us-west1

使用自訂設定檔建立 SSL 政策

主控台

全域 SSL 政策

如要使用自訂設定檔建立全域 SSL 政策,請按照下列步驟操作:

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

    前往 SSL 政策

  2. 按一下「建立政策」

  3. 針對「全域 SSL 政策」,請按一下旁邊的「建立」按鈕。系統隨即會顯示「Create policy」頁面。

  4. 輸入名稱

  5. 選取 [Minimum TLS Version] (最低 TLS 版本)

  6. 在「Profile」(設定檔) 部分,選取「Custom」(自訂)。所有功能都會顯示為「Disabled features」(已停用的功能),並出現在頁面右邊。

  7. 在「Features」清單中,選取想要啟用的加密套件。您啟用的加密套件會列入「Enabled features」(已啟用的功能)

  8. 如有想要附加政策的負載平衡器,請按一下「Apply to targets」(套用至目標),然後選取一項轉送規則,做為 SSL 政策的目標。視需要新增更多目標。

  9. 按一下 [建立]。

區域性 SSL 政策

如要使用自訂設定檔建立區域性 SSL 政策,請執行下列操作:

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

    前往 SSL 政策

  2. 按一下「建立政策」

  3. 針對「區域性 SSL 政策」,請點選旁邊的「建立」按鈕。系統隨即會顯示「Create policy」頁面。

  4. 輸入名稱

  5. 選擇一個 [Region] (地區)

  6. 選取 [Minimum TLS Version] (最低 TLS 版本)

  7. 在「Profile」(設定檔) 部分,選取「Custom」(自訂)。所有功能都會顯示為「Disabled features」(已停用的功能),並出現在頁面右邊。

  8. 在「Features」清單中,選取想要啟用的加密套件。您啟用的加密套件會列入「Enabled features」(已啟用的功能)

  9. 如有想要附加政策的負載平衡器,請按一下「Apply to targets」(套用至目標),然後選取一項轉送規則,做為 SSL 政策的目標。視需要新增更多目標。

  10. 按一下 [建立]。

gcloud

當您使用 CUSTOM 設定檔建立 SSL 政策時,僅會支援在 create 指令中指定的功能,其他功能不受支援。

全域 SSL 政策

以下是使用自訂設定檔建立全域 SSL 政策的一般語法:

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile CUSTOM \
    --min-tls-version 1.0 | 1.1 | 1.2 \
    --custom-features SSL_FEATURE_1[,SSL_FEATURE_2,SSL_FEATURE_3]

以下範例使用 CUSTOM 設定檔建立全域 SSL 政策,採用的最低 TLS 版本為 1.2 版,且具備 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile CUSTOM \
    --min-tls-version 1.2 \
    --custom-features TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

區域性 SSL 政策

以下是使用自訂設定檔建立區域性 SSL 政策的一般語法:

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile CUSTOM \
    --min-tls-version 1.0 | 1.1 | 1.2 \
    --custom-features SSL_FEATURE_1[,SSL_FEATURE_2,SSL_FEATURE_3] \
    --region REGION

以下範例使用 CUSTOM 設定檔建立區域性 SSL 政策,採用的最低 TLS 版本為 1.2 版,且具備 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile CUSTOM \
    --min-tls-version 1.2 \
    --custom-features TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 \
    --region us-west1

列出 SSL 政策

主控台

在 Google Cloud 控制台中,前往「SSL policies」(SSL 政策) 頁面。

前往 SSL 政策

您可以查看所有可用 SSL 政策的清單。「範圍」欄位會指出 SSL 政策是全域還是區域。

gcloud

如要列出全域和區域 SSL 政策,請執行:

  gcloud compute ssl-policies list

如要只列出全域 SSL 政策,請執行:

  gcloud compute ssl-policies list --global

如要只列出區域性 SSL 政策,請執行:

  gcloud compute ssl-policies list --regions REGION

列出 SSL 政策中可用的功能

主控台

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

    前往 SSL 政策

  2. 按一下您想要查看功能的政策名稱。頁面右側會列出已啟用與停用的加密套件。

gcloud

如要列出全域 SSL 政策中的可用功能,請按照下列步驟操作:

gcloud compute ssl-policies list-available-features

如要列出區域性 SSL 政策中的可用功能,請按照下列步驟操作:

gcloud compute ssl-policies list-available-features \
    --region REGION

修改 SSL 政策

主控台

如要修改 全域或 區域性 SSL 政策,請按照下列步驟操作:

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

    前往 SSL 政策

  2. 按一下要修改的政策名稱。

  3. 按一下 [編輯]

  4. 視需要加以變更。

  5. 按一下 [儲存]

gcloud

如果要修改現有的 SSL 政策,請傳遞對應到欲更新欄位的任何旗標 (或全部的旗標)。不會更新未指定的欄位。

若您更新功能,會刪除先前已啟用的功能,取代為您指定的新功能。

全域 SSL 政策

gcloud compute ssl-policies update SSL_POLICY_NAME \
    --profile COMPATIBLE|MODERN|RESTRICTED|CUSTOM \
    --min-tls-version 1.0|1.1|1.2 \
    --custom-features FEATURES

區域性 SSL 政策

gcloud compute ssl-policies update SSL_POLICY_NAME \
    --profile COMPATIBLE|MODERN|RESTRICTED|CUSTOM \
    --min-tls-version 1.0|1.1|1.2 \
    [--custom-features FEATURES \]
    --region REGION

使用 SSL 政策建立目標 Proxy

主控台

如要建立目標 Proxy,請在建立或更新負載平衡器時使用 Google Cloud 主控台,如以下文件所示:

gcloud

如要使用全域 SSL 政策建立目標 SSL Proxy,請按照下列步驟操作:

gcloud compute target-ssl-proxies create TARGET_SSL_PROXY_NAME \
  --backend-service BACKEND_SERVICE_NAME \
  --ssl-certificate SSL_CERTIFICATE_NAME \
  --ssl-policy SSL_POLICY_NAME

如要使用全域 SSL 政策建立全域目標 HTTPS Proxy,請按照下列步驟操作:

gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
  --ssl-certificate SSL_CERTIFICATE_NAME \
  --url-map URL_MAP_NAME \
  --ssl-policy SSL_POLICY_NAME

如要使用區域性 SSL 政策建立區域性目標 HTTPS Proxy,請按照下列步驟操作:

gcloud compute target-https-proxies create REGIONAL_TARGET_HTTPS_PROXY_NAME \
  --ssl-certificates SSL_CERTIFICATE_NAME \
  --url-map URL_MAP_NAME \
  --url-map-region REGION \
  --ssl-policy SSL_POLICY_NAME \
  --region REGION

將現有的 SSL 政策附加至現有的目標 Proxy

主控台

gcloud

使用下列指令將現有的 SSL 政策附加至 SSL Proxy 或 HTTPS Proxy。

  • 如要找出貴機構中所有設有目標安全資料傳輸層 (SSL) Proxy 的專案,請按照下列步驟操作:

    gcloud asset search-all-resources \
        --scope=organizations/ORGANIZATION_ID \
        --asset-types=compute.googleapis.com/TargetSslProxy
    
  • 如要找出貴機構中所有設有目標 HTTPS Proxy 的專案,請按照下列步驟操作:

    gcloud asset search-all-resources \
        --scope=organizations/ORGANIZATION_ID \
        --asset-types=compute.googleapis.com/TargetHttpsProxy
    
  • 如要列出專案中的所有全域目標 SSL Proxy,請使用 targetSslProxies.aggregatedList 方法。接著,使用 filter 查詢參數搜尋未參照 SSL 政策的目標 SSL Proxy。

    curl \
        'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies?filter=sslPolicy%3D%22%22&key=YOUR_API_KEY' \
        --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
        --header 'Accept: application/json' \
        --compressed
    
  • 如要列出專案中的所有 全球和 區域目標 HTTPS Proxy,請使用 targetHttpsProxies.aggregatedList 方法,並將 includeAllScopes 查詢參數設為 true。接著,使用 filter 查詢參數搜尋未參照 SSL 政策的目標 HTTPS Proxy。

    curl \
        'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/targetHttpsProxies?filter=sslPolicy%3D%22%22&includeAllScopes=true&key=YOUR_API_KEY' \
        --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
        --header 'Accept: application/json' \
        --compressed
    
  • 如要將現有的全域 SSL 政策附加至目標 SSL Proxy,請按照下列步驟操作:

    gcloud compute target-ssl-proxies update TARGET_SSL_PROXY_NAME \
        --ssl-policy SSL_POLICY_NAME
    
  • 如要將現有的全域 SSL 政策附加至全域目標 HTTPS Proxy,請按照下列步驟操作:

    gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
        --ssl-policy SSL_POLICY_NAME
    
  • 如要將現有的區域 SSL 政策附加至區域目標 HTTPS Proxy,請按照下列步驟操作:

    gcloud compute target-https-proxies update REGIONAL_TARGET_HTTPS_PROXY_NAME \
        --ssl-policy SSL_POLICY_NAME \
        --region REGION
    

如果您未在目標 Proxy 更新 (例如:更新 SSL 憑證時) 時提供 --ssl-policy 旗標或 --clear-ssl-policy 旗標,SSL 政策就不會變更。如要瞭解 --clear-ssl-policy 旗標,請參閱「從目標 Proxy 刪除 SSL 政策」一文。

API

如要為全域目標 Proxy 設定全域 SSL 政策,請使用 targetHttpsProxies.patch 方法。

如要為區域目標 Proxy 設定區域性 SSL 政策,請使用 regionTargetHttpsProxies.patch 方法。

從目標 Proxy 中刪除 SSL 政策

主控台

gcloud

您可以使用下列指令,從 SSL Proxy 或 HTTPS Proxy 移除 SSL 政策。如果並未將其他的 SSL 政策附加到目標 Proxy 上,負載平衡器會使用預設的 SSL 政策。使用 --clear-ssl-policy 旗標,就等同於使用預設的 SSL 政策取代現有的 SSL 政策。

如要從目標 SSL Proxy 中移除全球 SSL 政策,請按照下列步驟操作:

gcloud compute target-ssl-proxies update TARGET_SSL_PROXY_NAME \
    --clear-ssl-policy

如要從全球目標 HTTPS Proxy 移除全球 SSL 政策,請按照下列步驟操作:

gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
    --clear-ssl-policy

如要從地區目標 HTTPS Proxy 中移除地區 SSL 政策,請按照下列步驟操作:

gcloud compute target-https-proxies update REGIONAL_TARGET_HTTPS_PROXY_NAME \
    --clear-ssl-policy \
    --region REGION

在更新指令中提供 --clear-ssl-policy 旗標時,會從 Proxy 移除 SSL 政策。

如果您未在目標 Proxy 更新 (例如:更新 SSL 憑證時) 時提供 --clear-ssl-policy 旗標或 --ssl-policy 旗標,SSL 政策就不會變更。可在「將現有的 SSL 政策附加至現有的目標 Proxy」一節中,找到 --ssl-policy 旗標的說明。

管理 SSL 政策

如果您使用自訂限制來限制 TLS 功能,請手動檢查附加至目標 SSL Proxy 和目標 HTTPS Proxy 的現有 SSL 政策是否符合 TLS 規定。

請按照下列範例步驟,找出並更新不符合安全目標的 SSL 政策。

  • 如要找出貴機構中所有含有 SSL 政策資源的專案,請按照下列步驟操作:

    gcloud asset search-all-resources \
      --scope=organizations/ORGANIZATION_ID \
      --asset-types=compute.googleapis.com/SslPolicy
    
  • 如要列出專案中的所有 全域和 區域 SSL 政策,請使用 sslPolicies.aggregatedList 方法,並將 includeAllScopes 查詢參數設為 true。接著,使用 filter 查詢參數搜尋不符合安全目標的 SSL 政策。

    舉例來說,如要找出 TLS 版本低於 1.2 的 SSL 政策,請使用篩選器 minTlsVersion="TLS_1_0" OR minTlsVersion="TLS_1_1"

    curl \
    
      'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/sslPolicies?filter=minTlsVersion%3D%22TLS_1_0%22%20OR%20minTlsVersion%3D%22TLS_1_1%22&includeAllScopes=true&key=YOUR_API_KEY' \
      --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
      --header 'Accept: application/json' \
      --compressed
    

    如要取得 API 金鑰,請參閱「使用 API 金鑰進行驗證」。如要取得存取權杖,請使用 projects.serviceAccounts.generateAccessToken 方法。

    接著,請更新不符合最低 TLS 需求的 SSL 政策。

    如要更新全域 SSL 政策,您可以使用下列指令:

    gcloud compute ssl-policies update SSL_POLICY_NAME \
      --min-tls-version=TLS_1_2 \
      --global
    

    如要更新區域 SSL 政策,您可以使用下列指令:

    gcloud compute ssl-policies update SSL_POLICY_NAME \
      --min-tls-version=TLS_1_2 \
      --region REGION
    

  • 如要列出專案中未與 SSL 政策相關聯的所有目標 SSL Proxy,請執行下列指令:

    curl \
    
      'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies?filter=sslPolicy%3D%22%22&key=YOUR_API_KEY' \
        --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
        --header 'Accept: application/json' \
        --compressed
    

    如要將 SSL 政策附加至這些目標 Proxy,請參閱「將現有的 SSL 政策附加至現有的目標 Proxy

  • 您也可以使用 Cloud Asset Inventory 或 Google API Explorer,找出並更新不符合安全性規定的資源。

    舉例來說,如要查詢未與 SSL 政策相關聯的目標 SSL Proxy 清單,您可以在 Cloud Asset Inventory 中執行下列步驟:

    1. 前往 Google Cloud 控制台的「資產資源庫」頁面。

      前往 Asset Inventory

    2. 按一下「素材資源查詢」

    3. 在「Edit query」(編輯查詢) 欄位中輸入以下查詢,然後按一下「Run」(執行)

      select * from `compute_googleapis_com_TargetSslProxy` where resource.data.sslPolicy IS NULL
      
    4. 如要將 SSL 政策附加至這些目標 Proxy,請參閱「將現有的 SSL 政策附加至現有的目標 Proxy」。

    5. 在 Cloud Asset Inventory 中執行查詢,直到看到空白回應為止。

限制

請參閱負載平衡器配額與限制

API 參考資料

如需透過 REST API 使用 SSL 政策時可用的屬性和方法說明,請參閱以下內容:

產品 API 說明文件
  • 全域外部應用程式負載平衡器
  • 傳統版應用程式負載平衡器
  • 跨區域內部應用程式負載平衡器
  • 全域外部 Proxy 網路負載平衡器
  • 傳統版 Proxy 網路負載平衡器
sslPolicies
  • 區域性外部應用程式負載平衡器
  • 區域性內部應用程式負載平衡器
regionSslPolicies

gcloud CLI 參考資料

如需 Google Cloud CLI 參考資料,請參閱以下內容:

後續步驟