限制 TLS 版本

本页面介绍如何通过以下方式阻止对 Google Cloud 资源的访问: 拒绝使用传输层安全协议 (TLS) 1.0 或 1.1 发出的请求。

概览

Google Cloud 支持多种 TLS 协议 版本。接收者 则您可能需要拒绝来自 使用较低 TLS 版本的客户端。为此,您可以使用 gcp.restrictTLSVersion 组织政策 约束条件

gcp.restrictTLSVersion 限制条件可应用于 资源层次结构。 该限制条件使用 拒绝名单、 这会拒绝显式值并允许所有其他值。如果您修改了 尝试使用许可名单

由于 组织政策层次结构评估、 TLS 版本限制适用于指定的资源节点 子项。举例来说,如果您为某个组织拒绝 TLS 1.0 版, 对于其下的所有文件夹和项目(子项目),也会被拒绝 组织。

您可以通过更新 组织政策。例如,如果贵组织 政策在组织级别拒绝 TLS 1.0,您可以移除限制 为该文件夹设置单独的组织政策。如果 该文件夹包含任何子级,则此文件夹的政策也将应用于每个子级 子资源。

准备工作

  • 要设置、更改或删除组织政策,必须先获得相应授权 Organization Policy Administrator (roles/orgpolicy.policyAdmin) Identity and Access Management (IAM) 角色。

限制 TLS 版本

如需限制一个或多个 TLS 版本,请完成以下步骤:

控制台

  1. 在 Google Cloud 控制台中打开组织政策页面。

    转到“组织政策”

  2. 选择页面顶部的项目选择器。

  3. 在项目选择器中,选择要为其设置组织政策的资源。

  4. 从显示的列表中选择限制 TLS 版本限制条件, 组织政策页面。

  5. 如需更新该资源的组织政策,请点击修改

  6. 修改页面,选择自定义

  7. 强制执行下,选择强制执行选项:

    • 要合并和评估组织政策,请选择与父资源规则合并。如需详细了解继承和 请参阅 了解层次结构评估

    • 如需覆盖从父资源继承的政策,请选择替换

  8. 点击添加规则

  9. 政策值下,默认值会设为全部拒绝。选择 改为自定义

  10. 政策类型下,选择拒绝

  11. 自定义值下方,输入要拒绝的 TLS 版本。以下值 是有效的自定义值:

    • TLS_VERSION_1(适用于 TLS 1.0)
    • TLS_VERSION_1_1(适用于 TLS 1.1)

    如果您要限制多个 TLS 版本,请点击添加值,然后 请在其他字段中输入该值

  12. 要完成并应用组织政策,请点击保存

gcloud

使用 gcloud org-policies set-policy 命令为资源设置组织政策:

gcloud org-policies set-policy POLICY_PATH

POLICY_PATH 是组织政策文件的完整路径, 如果使用 YAML 格式,则代码应如下所示:

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictTLSVersion
spec:
  rules:
  - values:
    deniedValues:
    - TLS_VERSION_1
    - TLS_VERSION_1_1

将其替换为以下内容:

  • RESOURCE_TYPEorganizationsfoldersprojects

  • RESOURCE_ID 是您的组织 ID、文件夹 ID、项目 ID 或项目编号,具体取决于在 RESOURCE_TYPE 中指定的资源类型。

运行以下命令,验证您的政策是否已应用:

gcloud org-policies describe gcp.restrictTLSVersion --RESOURCE_TYPE=RESOURCE_ID --effective

将其替换为以下内容:

  • RESOURCE_TYPEorganizationfolderproject

  • RESOURCE_ID 是您的组织 ID、文件夹 ID、项目 ID 或项目编号,具体取决于在 RESOURCE_TYPE 中指定的资源类型。

测试政策

可以针对任何 范围内的服务。以下示例 curl 命令 验证 Cloud Storage 存储桶的 TLS 版本限制。

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/GCS_BUCKET_NAME/o" \
  --tlsvTLS_VERSION --tls-max TLS_VERSION --ciphers DEFAULT@SECLEVEL=0

--tlsv 和值之间没有空格。例如 --tlsv1.1

将其替换为以下内容:

  • GCS_BUCKET_NAME 是 Cloud Storage 存储桶名称 例如 mybucketname

  • TLS_VERSION 采用 TLS 版本,例如 1.01.1 拒绝。

以下示例 curl 请求显示了 GCS_BUCKET_NAME 集 设置为 mybucketname,将 TLS_VERSION 设置为 1.1

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/mybucketname/o" \
  --tlsv1.1 --tls-max 1.1 --ciphers DEFAULT@SECLEVEL=0

如果组织政策配置为限制 TLS_VERSION_X,则任何 尝试在政策限制中使用 TLS_VERSION_X 访问资源 项目将失败。系统会返回一条错误消息 说明了此次失败的原因。

Request is disallowed by organization's constraints/gcp.restrictTLSVersion
constraint for 'projects/PROJECT_NUMBER' to use service
'SERVICE_NAME.googleapis.com' by violated TLS version `TLS_VERSION_X`

此输出包括以下值:

  • PROJECT_NUMBER:托管 上述命令中引用的资源。
  • SERVICE_NAME范围内的服务的名称 被 TLS 限制政策屏蔽

支持的服务

任何 Google Cloud 资源 API 都支持 TLS 版本限制 标头中包含 Google Front End (GFE)

不支持的服务

TLS 版本限制组织政策限制条件 适用于以下服务:

  • App Engine (*.appspot.com)
  • Cloud Functions (*.cloudfunctions.net)、
  • Cloud Run (*.run.app)
  • Private Service Connect
  • 自定义网域

如需限制这些服务的 TLS 版本,请使用 Cloud Load Balancing 以及 SSL 政策。您还可以 请使用预定义的 constraints/compute.requireSslPolicy 限制条件 以及 SSL 政策的自定义限制条件 为您的负载平衡器强制执行 TLS 版本和加密套件限制。

后续步骤