为 SSL 和 TLS 协议使用 SSL 政策

SSL 政策指定 Google Cloud 负载均衡器在与客户端协商 SSL 时使用的一组 SSL 功能。在本文档中,术语“SSL”是指 SSL 和 TLS 协议。

以下负载均衡器支持 SSL 政策:

  • 全球 SSL 政策
    • 全球外部应用负载均衡器
    • 传统应用负载均衡器
    • 外部代理网络负载均衡器(使用目标 SSL 代理)
    • 跨区域内部应用负载均衡器
  • 区域 SSL 政策
    • 区域级外部应用负载均衡器
    • 区域级内部应用负载均衡器

如需详细了解 SSL 政策的工作原理,请参阅 SSL 政策概览

您可以在创建 HTTPS 或 SSL 负载均衡器时,或者在创建负载均衡器之后的任何时间,使用 Google Cloud 控制台或 Google Cloud CLI 创建和管理 SSL 政策。

创建 SSL 政策

您可以创建使用 Google 管理的配置文件或自定义配置文件的 SSL 政策。

创建使用 Google 管理的配置文件的 SSL 政策

控制台

全球 SSL 政策

如需创建使用 Google 管理的配置文件的全球 SSL 政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 SSL 政策页面。

    转到“SSL 政策”页面

  2. 点击创建政策

  3. 对于全球 SSL 政策,请点击它旁边的创建按钮。系统会显示创建政策页面。

  4. 输入名称

  5. 选择最低的 TLS 版本

  6. 对于配置文件,请选择兼容新型受限。相应配置文件的已启用的功能已停用的功能会显示在页面的右侧。

  7. 如果存在一个负载均衡器,并且您要向其中附加政策,请点击应用到目标,然后选择转发规则作为 SSL 政策的目标。如有必要,请添加更多目标。

  8. 点击创建

区域级 SSL 政策

如需创建使用 Google 管理的配置文件的区域级 SSL 政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 SSL 政策页面。

    转到“SSL 政策”页面

  2. 点击创建政策

  3. 对于区域 SSL 政策,请点击它旁边的创建按钮。系统会显示创建政策页面。

  4. 输入名称

  5. 选择区域

  6. 选择最低的 TLS 版本

  7. 对于配置文件,请选择兼容新型受限。相应配置文件的已启用的功能已停用的功能会显示在页面的右侧。

  8. 如果存在一个负载均衡器,并且您要向其中附加政策,请点击应用到目标,然后选择转发规则作为 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 政策页面。

    转到“SSL 政策”页面

  2. 点击创建政策

  3. 对于全球 SSL 政策,请点击它旁边的创建按钮。系统会显示创建政策页面。

  4. 输入名称

  5. 选择最低的 TLS 版本

  6. 配置文件字段中,选择自定义。所有功能都会在页面右侧显示为已停用的功能

  7. 功能列表中,选择要启用的每个加密套件。 您启用的加密套件会被列为已启用的功能

  8. 如果存在一个负载均衡器,并且您要向其中附加政策,请点击应用到目标,然后选择转发规则作为 SSL 政策的目标。如有必要,请添加更多目标。

  9. 点击创建

区域级 SSL 政策

如需创建使用自定义配置文件的区域级 SSL 政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 SSL 政策页面。

    转到“SSL 政策”页面

  2. 点击创建政策

  3. 对于区域 SSL 政策,请点击它旁边的创建按钮。系统会显示创建政策页面。

  4. 输入名称

  5. 选择区域

  6. 选择最低的 TLS 版本

  7. 配置文件字段中,选择自定义。所有功能都会在页面右侧显示为已停用的功能

  8. 功能列表中,选择要启用的每个加密套件。 您启用的加密套件会被列为已启用的功能

  9. 如果存在一个负载均衡器,并且您要向其中附加政策,请点击应用到目标,然后选择转发规则作为 SSL 政策的目标。如有必要,请添加更多目标。

  10. 点击创建

gcloud

在创建使用自定义配置文件的 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]

以下示例创建了一个全球 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

以下示例创建了一个区域 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 政策页面。

转到“SSL 政策”页面

您可以查看所有可用 SSL 政策的列表。范围字段指示 SSL 政策是全局性还是区域性的。

gcloud

如需列出全局 SSL 政策和区域 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 政策页面。

    转到“SSL 政策”页面

  2. 点击您想要查看其功能的政策的名称。 此时页面右侧将显示已启用和已停用的加密套件。

gcloud

如需列出全球 SSL 政策中可用的功能,请运行以下命令:

gcloud compute ssl-policies list-available-features

如需列出区域 SSL 政策中可用的功能,请运行以下命令:

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

修改 SSL 政策

控制台

如需修改 全局 SSL 政策或 区域 SSL 政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 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 政策的目标代理

控制台

创建或更新负载均衡器时,您可以使用 Google Cloud 控制台创建目标代理,如以下文档所示:

gcloud

如需创建使用全球 SSL 政策的目标 SSL 代理,请运行以下命令:

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 代理,请运行以下命令:

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 代理,请运行以下命令:

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 政策附加到现有目标代理

控制台

gcloud

可使用以下命令将现有 SSL 政策附加到 SSL 代理或 HTTPS 代理。

  • 如需查找组织中具有目标 SSL 代理的所有项目,请运行以下命令:

    gcloud asset search-all-resources \
        --scope=organizations/ORGANIZATION_ID \
        --asset-types=compute.googleapis.com/TargetSslProxy
    
  • 如需查找组织中具有目标 HTTPS 代理的所有项目,请运行以下命令:

    gcloud asset search-all-resources \
        --scope=organizations/ORGANIZATION_ID \
        --asset-types=compute.googleapis.com/TargetHttpsProxy
    
  • 如需列出项目中的所有全球目标 SSL 代理,请使用 targetSslProxies.aggregatedList 方法。然后,使用 filter 查询参数搜索未引用 SSL 政策的目标 SSL 代理。

    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 代理,请使用 targetHttpsProxies.aggregatedList 方法,并将 includeAllScopes 查询参数设置为 true。然后,使用 filter 查询参数搜索未引用 SSL 政策的目标 HTTPS 代理。

    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 代理,请运行以下命令:

    gcloud compute target-ssl-proxies update TARGET_SSL_PROXY_NAME \
        --ssl-policy SSL_POLICY_NAME
    
  • 如需将现有全球 SSL 政策附加到全球目标 HTTPS 代理,请运行以下命令:

    gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
        --ssl-policy SSL_POLICY_NAME
    
  • 如需将现有区域 SSL 政策附加到区域目标 HTTPS 代理,请运行以下命令:

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

如果您在更新目标代理时(例如,更新 SSL 证书时)未提供 --ssl-policy 标志或 --clear-ssl-policy 标志,则 SSL 政策会保持不变。从目标代理中删除 SSL 政策中介绍了 --clear-ssl-policy 标志。

API

如需为全球目标代理设置全球 SSL 政策,请使用 targetHttpsProxies.patch 方法。

如需为区域目标代理设置区域 SSL 政策,请使用 regionTargetHttpsProxies.patch 方法。

从目标代理中删除 SSL 政策

控制台

gcloud

可使用以下命令从 SSL 代理或 HTTPS 代理中移除 SSL 政策。如果您未将其他 SSL 政策附加到目标代理,则负载均衡器会使用默认 SSL 政策。请注意,使用 --clear-ssl-policy 标志相当于将 SSL 政策替换为默认 SSL 政策。

如需从目标 SSL 代理中移除全球 SSL 政策,请运行以下命令:

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

如需从全球目标 HTTPS 代理中移除全球 SSL 政策,请运行以下命令:

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

如需从区域目标 HTTPS 代理中移除区域 SSL 政策,请运行以下命令:

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

如果您在更新命令中提供 --clear-ssl-policy 标志,SSL 政策将从代理中移除。

如果您在更新目标代理时(例如,更新 SSL 证书时)未提供 --clear-ssl-policy 标志或 --ssl-policy 标志,则 SSL 政策会保持不变。将现有 SSL 政策附加到现有目标代理中介绍了 --ssl-policy 标志。

管理 SSL 政策

如果您使用自定义限制条件限制 TLS 功能,请手动检查附加到目标 SSL 代理和目标 HTTPS 代理的现有 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 代理,请运行以下命令:

    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 政策附加到这些目标代理,请参阅将现有 SSL 政策附加到现有目标代理

  • 您还可以使用 Cloud Asset Inventory 或 Google APIs Explorer 查找和更新不符合您的安全要求的资源。

    例如,如需查找与 SSL 政策不相关联的目标 SSL 代理的列表,您可以在 Cloud Asset Inventory 中按照以下步骤操作:

    1. 在 Google Cloud 控制台中,前往资产库存页面。

      前往“Asset Inventory”

    2. 点击素材资源查询

    3. 修改查询字段中,输入以下查询,然后点击运行

      select * from `compute_googleapis_com_TargetSslProxy` where resource.data.sslPolicy IS NULL
      
    4. 如需将 SSL 政策附加到这些目标代理,请参阅将现有 SSL 政策附加到现有目标代理

    5. 在 Cloud Asset Inventory 中运行查询,直到看到空响应。

限制

请参阅负载均衡器配额和限制

API 参考文档

如需了解通过 REST API 使用 SSL 政策时可用的属性和方法的说明,请参阅以下内容:

产品 API 文档
  • 全球外部应用负载均衡器
  • 传统应用负载均衡器
  • 跨区域内部应用负载均衡器
  • 全球外部代理网络负载均衡器
  • 传统代理网络负载均衡器
sslPolicies
  • 区域级外部应用负载均衡器
  • 区域级内部应用负载均衡器
regionSslPolicies

gcloud CLI 参考文档

对于 Google Cloud CLI 参考文档,请参阅以下内容:

后续步骤