网络最佳实践

本文档介绍了如何为 AI Hypercomputer 工作负载创建安全且富有弹性的网络环境的最佳实践。这些建议适用于希望在 AI Hypercomputer 上配置和部署人工智能 (AI) 和机器学习 (ML) 工作负载的网络架构师、网络工程师和开发者。

建立清晰且受限的 IAM 角色

正确配置 IAM 有助于提高 AI Hypercomputer 部署的安全性并确保部署成功。在生产环境中,权限不足或配置有误可能会导致部署失败。AI Hypercomputer 部署(尤其是使用集群工具包的部署)在安全强化型环境中经常会失败,因为在这些环境中,默认 Compute Engine 服务账号没有广泛的 Editor 角色。

为帮助缓解因权限问题而可能发生的部署问题,请遵循本部分中列出的最佳实践。

使用专用服务账号

为了提高安全性和控制力,请避免使用默认的 Compute Engine 服务账号。请改为为 AI Hypercomputer 部署创建专用服务账号。

授予必要的 IAM 角色

向您创建的专用服务账号授予以下 IAM 角色:

  • Compute Admin (roles/compute.admin):提供对 Compute Engine 资源的完全控制权限。
  • Service Account User (roles/iam.serviceAccountUser):允许将服务账号附加到其他资源,这对于使用 Packer 等工具构建自定义映像至关重要。
  • Storage Admin (roles/storage.admin):需要访问和管理 Cloud Storage 存储分区,例如存储 Packer 映像或其他制品。
  • Logging Admin (roles/logging.admin):允许服务账号配置日志记录和查看日志,这对于调试至关重要。

在部署之前验证权限

在开始部署之前,请验证您的服务账号是否具有必要的权限。运行 gcloud projects get-iam-policy 命令

gcloud projects get-iam-policy PROJECT_ID \
    --flatten="bindings[].members" \ format='table(bindings.role)' \
    --filter="bindings.members:serviceAccount:SERVICE_ACCOUNT_EMAIL"

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • SERVICE_ACCOUNT_EMAIL:您要验证的服务账号的电子邮件地址。

此命令会列出指定项目中的服务账号所获的所有角色。确保输出中显示了授予必要的 IAM 角色 中列出的角色。

限制公共网络访问权限并强化防火墙配置

限制公共网络访问权限并强化防火墙配置,以提高安全性。这种基本的安全实践可降低默认防火墙规则过于宽松的风险。

由于内部测试中不存在的限制性防火墙配置,生产环境中可能会发生虚拟机 (VM) 设置失败的情况。如果不了解具体的防火墙规则,工程师可能难以诊断这些故障。

检查并更新防火墙规则,以尽可能减少直接暴露于互联网的风险。如需详细了解 VPC 防火墙规则,请参阅 VPC 防火墙规则

标准化内部网络默认设置

标准化内部网络默认设置,以降低风险和配置难题。在复杂或安全加固的环境中,默认网络行为可能会带来风险或配置难题。Google 建议采用以下配置:

  • 使用可用区级 DNS:对于新项目,将内部域名系统 (DNS) 设置为仅限可用区级 DNS。这种方法有助于减少潜在的全球 DNS 中断的影响。如需详细了解如何使用可用区级 DNS,请参阅使用可用区级 DNS 概览
  • 停用外部 IP 地址:尽可能停用外部 IP 地址。在停用 IP 地址之前,您必须在预演环境中仔细规划和测试,因为某些服务(例如具有公共节点的受管实例组 [MIG] 或 GKE 集群)依赖于这些 IP 地址。如需详细了解如何限制公共 IP 地址,请参阅 Google Cloud 上的公共 IP 地址限制

最佳做法摘要

下表总结了本文档中建议的最佳做法。

主题 任务
IAM 建立清晰且受限的 IAM 角色
防火墙 限制公共网络访问并强化防火墙配置
网络默认设置 标准化内部网络默认设置

后续步骤