安全性方面的最佳做法

本页面介绍了保护 Google Distributed Cloud 安装的最佳实践。

实体硬件安全

您负责分布式云连接硬件的物理安全,例如限制只有授权人员才能访问。

Distributed Cloud Connected 贴片形态规格具有以下安全功能:

  • 只能通过机架前门和后门访问安装在机架上的硬件。
  • 机架无法轻松拆卸。没有可从外部触及的结构紧固件,例如螺钉、螺母、闩锁或铆钉。
  • 机架门配有钥匙锁。Google 会向您提供密钥副本,并保留一份副本以确保安全。
  • 对于多机架安装,所有机架锁的钥匙都相同。
  • 机架门采用带孔的防篡改金属网罩,可实现通风。
  • 在安装过程中,使用机架的运输支架和托架将机架牢固地用螺栓固定到安装地点的地面上。

Distributed Cloud 连接服务器规格具有以下安全功能:

  • 入侵传感器。如果有未经授权的方在实体上打开机器,您和 Google 会立即收到实体入侵通知。

如果您对实体机架的安全性有其他疑问,请与您的 Google Cloud 销售代表联系。

平台安全

Distributed Cloud 连接的硬件平台具有以下安全功能:

  • 可信平台模块 (TPM)。TPM 是信任根,用于为存储在 Distributed Cloud Connected 上以及由其接收和传输的所有数据生成和存储加密密钥。

  • 平台证书。平台证书是制造和 TPM 身份的加密安全记录。该证书可作为 Distributed Cloud connected 硬件供应链完整性的证明。

  • 端口锁定。除以太网端口之外的所有外部和内部端口(例如 USB 和 RS-232 控制台端口)均在固件级别停用,仅在维修时启用。

本地存储空间安全性

Distributed Cloud 连接的硬件随附以下类型的内部存储空间,具体取决于设备规格:

  • Distributed Cloud Connected 机架随附固态硬盘 (SSD) 驱动器。
  • Distributed Cloud Connected 服务器随附自加密磁盘 (SED) 驱动器。

Distributed Cloud Connected 使用 Linux 统一密钥设置 (LUKS) 来加密每个 Distributed Cloud Connected 节点上的逻辑卷。您可以选择使用客户管理的加密密钥 (CMEK) 或Google-owned and managed keys 来封装 LUKS 磁盘加密密钥 (DEK)。将节点分配给节点池时,节点会生成 LUKS DEK,并使用 Google 管理的 LUKS 口令(也称为密钥加密密钥 [KEK])或您通过 Cloud KMS 提供的口令来封装该 DEK。您可以在创建节点池时选择是否使用 Cloud KMS。 Distributed Cloud Connected 通过使用信封加密模型与 Cloud KMS 集成。

Distributed Cloud Connected 会定期自动轮替 LUKS 和 SED 密码。

此外,每个 Distributed Cloud 连接的机器在每次冷启动时都会执行以下操作:

  • 如果您未使用 Cloud KMS,机器会生成新的 KEK (LUKS 密码),并从一开始就设置加密存储。

  • 如果您使用的是 Cloud KMS,机器会从 Cloud KMS 中提取 KEK,并解锁包含数据的现有逻辑卷。

为本地存储配置对客户管理的加密密钥 (CMEK) 的支持

默认情况下,Google Distributed Cloud Connected 1.8.0 版会对静态客户内容进行加密。Distributed Cloud connected 会为您处理加密,您无需执行任何其他操作。此选项称为“Google 默认加密”

如果您想要控制加密密钥,则可以将 Cloud KMS 中客户管理的加密密钥 (CMEK) 与集成 CMEK 的服务(包括 Distributed Cloud Connected)搭配使用。使用 Cloud KMS 密钥时,您可以控制其保护级别、位置、轮替时间表、使用和访问权限以及加密边界。此外,您还可使用 Cloud KMS 查看审核日志并控制密钥生命周期。这样您就可以在 Cloud KMS 中控制和管理用于保护数据的对称密钥加密密钥 (KEK),而不是由 Google 拥有和管理这些密钥。

使用 CMEK 设置资源后,访问 Distributed Cloud 连接资源的体验与使用 Google 默认加密功能类似。如需详细了解加密选项,请参阅客户管理的加密密钥 (CMEK)

如需启用 Cloud KMS 与 Distributed Cloud Connected 的集成,请完成以下步骤:

  1. 创建密钥环、对称密钥和一个或多个密钥版本,以用于 Distributed Cloud Connected。您必须在与 Distributed Cloud Connected 安装相同的 Google Cloud 区域中创建这些制品。如需了解相关说明,请参阅创建密钥

  2. 向Google Cloud 项目中的 Distributed Cloud Connected 服务账号授予 Cloud KMS CryptoKey Encrypter/Decrypter 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter)。您必须针对要与 Distributed Cloud connected 搭配使用的每个密钥版本执行此操作。如果您在将 Distributed Cloud 连接的安装与 Cloud KMS 集成后撤消此角色,您将无法访问存储在 Distributed Cloud 连接的机器上的数据

  3. 使用 --local-disk-kms-key 标志创建节点池,并提供您要用于该节点池的密钥版本的完整路径。

  4. 使用 --control-plane-kms-key 标志创建集群,并提供要用于运行集群控制平面的节点的密钥版本的完整路径。

  5. (可选)在创建集群时使用 --offline-reboot-ttl 标志指定一个时间窗口,在此期间,已重新启动的节点可以在集群以可存活节点模式运行时重新加入集群。如果您未指定此窗口,则重新启动的节点在退出可存活模式之前无法重新加入集群。

    注意:如果您指定了重启超时时限,即使您在指定时间内停用或删除存储密钥,离线节点也可以重启并重新加入集群。

如需将集群或节点池恢复为使用 Google-owned and Google-managed encryption key,请使用 --use-google-managed-key 标志,如以下任一说明中所述:

如需了解详情,请参阅 Cloud KMS 文档中的客户管理的加密密钥 (CMEK)

数据恢复和备份

您有责任维护您选择存储在分布式云连接硬件上的所有数据的冗余备份,并在您选择将分布式云连接硬件退回给 Google 或向您出售该硬件的 Google 认证系统集成商 (SI) 时导出这些数据。

如果 Distributed Cloud connected 硬件发生故障,并且 Google 或 Google 认证的 SI 执行现场维修,则会从正在维修的 Distributed Cloud connected 机器中移除所有存储介质,并在维修期间将其置于您的保管之下,或者安全地擦除这些介质,然后将其送去销毁。

如果您从经过 Google 认证的 SI 购买了 Distributed Cloud 硬件,并且不再使用 Distributed Cloud,但选择保留并重新利用该硬件,则 SI 会在停用期间从 Distributed Cloud 硬件中清除所有 Google 软件和您的数据。

网络安全

分布式云连接的硬件与 Google Cloud之间的网络流量使用 MASQUE 隧道或使用每台机器证书的 TLS 进行加密。Distributed Cloud Connected 会定期自动轮替这些证书。

您的业务需求和组织的网络安全政策决定了保护进出 Distributed Cloud 连接安装的网络流量所需的步骤。此外,我们还建议您执行以下操作:

  • 仅允许入站连接到 Distributed Cloud connected 内置负载均衡器公开的虚拟 IP 地址池和 Distributed Cloud 子网。

  • 禁止从外部网络资源到提供系统管理服务管理层的子网络的入站连接。

  • 禁止从外部网络资源到本地控制平面端点的 IP 地址的入站连接。如需了解详情,请参阅可维护性模式

如需详细了解如何准备本地网络以连接 Distributed Cloud 硬件,请参阅网络

对于多机架部署,Distributed Cloud Connected 支持在基本机架中的聚合器交换机与独立机架中的 ToR 交换机之间实现以太网帧级别的第 2 层媒体访问控制 (MAC) 安全性 (L2 MACsec)。

订购 Distributed Cloud connected 硬件时,您必须请求此功能。在本地部署 Distributed Cloud Connected 后,无法再启用此功能。

分布式云连接使用 MACsec 对以太网设备进行身份验证、验证每个传输的以太网帧的完整性,并对每个传输的帧进行加密。

这涉及在允许以太网流量流动之前,在以太网传输会话中涉及的所有设备之间建立一组经过验证的密钥。密钥协商验证通过后,发送方开始为每个传输的以太网帧添加安全标记和完整性检查值,接收方在收到每个帧时会验证这些标记和值。

每个配置了 MACsec 的设备都必须经过连接关联 (CA) 的身份验证并与 CA 相关联。CA 成员使用长生命周期的 CA 密钥 (CAK) 在网络上标识自己。每次 CA 成员需要在网络上与其他 CA 成员交换数据时,都会使用 CAK 生成会话加密密钥。

Distributed Cloud connected MACsec 政策

Distributed Cloud connected 会在基本机架聚合器交换机与独立机架 ToR 交换机之间的所有以太网链路上强制执行以下 MACsec 政策。这些政策无法修改或停用。

MACsec 配置

所有 Distributed Cloud 连接的 MACsec 配置(包括加密密钥)均由 Google 管理。

分布式云连接不允许在所有内部以太网链路上使用未加密的数据包。如果无法成功协商 MACsec 会话,受影响的以太网链路会自动关闭。

MACsec 钥匙串

MACsec 密钥链是密钥存储区,用于存储特定以太网链路所需的所有密钥。为软件包接口创建唯一的密钥链。每个密钥链包含 4 个主密钥和一个后备密钥。每个主密钥的有效性为 25%。

MACsec 回退

分布式云连接除了为每个内部以太网链路配置 4 个主密钥之外,还会配置一个 MACsec 回退密钥。如果 Distributed Cloud Connected 无法使用主密钥协商 MACsec 会话,则会尝试使用后备密钥协商后备会话。后备密钥不会过期。

MACsec 密钥轮替

分布式云连接的聚合器和 ToR 交换机会在主 MACsec 密钥过期时立即轮替这些密钥。为确保密钥轮替安全,轮替中的每个上一个密钥和下一个密钥的生命周期重叠时间为 5 天。

MACsec 安全关联密钥

Distributed Cloud connected 使用随机生成的 MACsec 安全关联密钥 (SAK) 来加密内部以太网链路承载的所有以太网帧。分布式云互联使用扩展数据包编号 (XPN) 执行基于流量的重新密钥交换。SAK 每 6 小时重新生成一次。

使用以下命令检查独立机架中基本机架聚合器交换机与 ToR 交换机之间特定以太网链路的 MACsec 状态:

gcloud edge-cloud networking networks get-status default --location=REGION --zone=us-ZONE_NAME

替换以下内容:

  • REGION:已创建目标Google Cloud 项目的 Google Cloud 区域。
  • ZONE_NAME:目标 Distributed Cloud 已连接区域的名称。

该命令会返回类似于以下内容的输出:

result:
  macsecStatusInternalLinks: SECURE

可能的关联状态值包括:

  • SECURE - 目标链路上的 MACsec 会话已启动。
  • UNSECURE - 目标链路上的 MACsec 会话已关闭。

后续步骤