实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

使用 Terraform 和 Cloud Shell 更改防火墙规则

实验 1 小时 30 分钟 universal_currency_alt 5 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。
重要图标 重要提示

桌面设备/笔记本电脑图标请务必仅在桌面设备/笔记本电脑上完成此实操实验。

勾选图标 每个实验仅允许尝试 5 次。

测验目标图标温馨提示:第一次尝试时,您可能无法答对所有问题,甚至可能需要重做任务,请不必担心,这都是学习过程的一部分。

计时器图标 实验一旦开始,计时器就无法暂停。1 小时 30 分钟后,实验将结束,您需要重新开始。

提示图标 如需了解详情,请阅读实验技术提示

活动概览

在云网络安全领域,防火墙规则发挥着至关重要的作用,因为它们用于控制哪些流量可以进出您的云环境。云网络环境瞬息万变,日益复杂。组织需求会发生变化,云资源常有增减,新漏洞也会不断出现。这意味着您需要不断调整和维护防火墙规则的配置,以适应这些变化。

跟踪和管理云环境中的关键更新可能是一项艰巨的任务。幸运的是,您可以利用基础设施即代码 (IaC) 技术来管理云资源的配置。IaC 是指利用可重用脚本来预配和管理基础设施的一种技术。它可用于自动执行更新防火墙规则等工作流。

借助 Terraform 和 Cloud Shell,您可以轻松高效地管理和更新防火墙规则。通过在 Terraform 配置文件中编写所需的防火墙规则,并在 Cloud Shell 中执行 Terraform 命令,您可以确保网络安全政策保持一致并进行版本控制。这有助于长期维护和跟踪防火墙规则的变化。

在本实验中,您将学习如何克隆 Terraform 代码库,以及如何部署 VPC 网络和防火墙。

场景

Cymbal Bank 有一款新的银行应用已准备好进行部署。它需要托管在虚拟私有云 (VPC) 上。您的团队负责人 Chloe 希望使用 Terraform 来定义和预配应用的网络基础设施。Terraform 可用于以可重复且一致的方式安全地预配云基础设施。这样,您就可以轻松快速地进行任何必要的更改。您的任务是使用 Terraform 创建网络和防火墙规则。

下面介绍如何完成此任务:首先,您需要激活 Cloud Shell。然后,您将克隆 Terraform 代码库。最后,您将部署 VPC 网络和防火墙。

设置

点击“开始实验”之前

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展活动,免受模拟或演示环境的限制。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有自己的个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。左侧是实验详细信息面板,其中包含以下各项:

    • 剩余时间
    • 打开 Google Cloud 控制台按钮
    • 进行该实验时必须使用的临时凭证
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
    注意:如果该实验需要付费,系统会打开一个弹出式窗口供您选择支付方式。
  2. 如果您使用的是 Chrome 浏览器,点击打开 Google Cloud 控制台(或右键点击并选择在无痕式窗口中打开链接)。系统会在新的浏览器标签页中打开登录页面。

    提示您可以将这些标签页分别放在不同的窗口中,并排显示,以便轻松切换。

    注意:如果您看到选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的 Google Cloud 用户名,然后将其粘贴到登录对话框中。点击下一步

{{{user_0.username | "Google Cloud username"}}}

您也可以在实验详细信息面板中找到 Google Cloud 用户名

  1. 复制下面的 Google Cloud 密码,然后将其粘贴到欢迎对话框中。点击下一步
{{{user_0.password | "Google Cloud password"}}}

您也可以在实验详细信息面板中找到 Google Cloud 密码

重要提示:您必须使用实验提供的凭证。请勿使用您的 Google Cloud 账号凭证。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  1. 依次点击后续页面,完成以下步骤:
    • 接受条款及条件
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证
    • 请勿用其注册免费试用服务

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:您可以点击左上角的导航菜单来查看列有 Google Cloud 产品和服务的菜单。Google Cloud 控制台菜单,其中突出显示了导航菜单图标

任务 1. 克隆 Terraform 代码库

在此任务中,您将使用 Cloud Shell 终端克隆 Terraform 示例代码库。Terraform 示例包含配置文件,您将使用该文件来预配防火墙规则。

  1. 在 Google Cloud 控制台中,点击激活 Cloud Shell “激活 Cloud Shell”图标
  2. 点击继续

预配和连接到 Cloud Shell 环境只需几分钟时间。

  1. 将以下命令复制到 Cloud Shell 终端中:
cloudshell_open --repo_url "https://github.com/terraform-google-modules/docs-examples.git" --print_file "./motd" --dir "firewall_basic" --page "editor" --tutorial "./tutorial.md" --open_in_editor "main.tf" --force_new_clone

此命令会克隆 Terraform 示例目录。

  1. ENTER 键。

此命令将执行以下操作:

  • 克隆 terraform-google-modules
  • 输出 motd 文件名。
  • 切换到 firewall_basic 目录。
  • 检查克隆的文件,例如 tutorial.md
  • 在 Cloud Shell Editor 中打开 main.tf

克隆完成后,您将位于终端中的 ~/cloudshell_open/docs-examples/firewall_basic 位置。Cloud Shell 提示应显示类似于以下示例的输出:

student_01_c2e095df84e2@cloudshell:~/cloudshell_open/docs-examples/firewall_basic (qwiklabs-gcp-04-fde36f013e65)$
  1. 将以下命令复制到 Cloud Shell 终端中,以列出该目录中的内容:
ls

您应该会注意到,该目录中已下载了多个文件:backing_file.tfmain.tfmotdtutorial.md

  1. 将以下命令复制到 Cloud Shell 终端中,以分析防火墙规则的配置:
cat main.tf
  1. ENTER 键。

main.tf 是一个配置文件,用于定义 Terraform 将创建的资源。它会创建两个资源:一个名为 test-firewall-${local.name_suffix} 的防火墙规则 google_compute_firewall,其中包含允许 ICMP 和 TCP 流量通过端口 80、8080 和 1000-2000 的规则;以及一个名为 test-network-${local.name_suffix} 的 VPC 网络 google_compute_network。变量 ${local.name_suffix} 是一个局部变量,用于自动为资源生成唯一名称。

任务 2. 部署 VPC 网络和防火墙

在此任务中,您将部署一个新 VPC 网络和一条新防火墙规则。此任务可提供构建 VPC 网络和子网的实操体验。

注意:在 Cloud Shell 终端中按顺序运行以下命令。
  1. 将以下命令复制到 Cloud Shell 中。
export GOOGLE_CLOUD_PROJECT={{{project_0.project_id | Project ID}}}

此命令用于设置项目 ID。

  1. ENTER 键。

  2. 将以下命令复制到 Cloud Shell 终端中:

terraform init

此命令用于初始化 Terraform 脚本。

  1. ENTER 键。

输出应返回一条消息,指明 Terraform 已成功初始化。请花点时间检查输出。您会注意到,Terraform 将创建一个新防火墙和一个新 VPC 网络:

成功初始化 Terraform 后输出的消息。

  1. 初始化完成后,将以下命令复制到 Cloud Shell 终端中:
terraform apply

此命令会应用更改并部署 Terraform 脚本。

  1. ENTER 键。
注意:如果出现为 Cloud Shell 提供授权对话框,请点击授权,以授予使用您的凭证运行 gcloud 命令的权限。
  1. 命令提示符会提示您输入一个值。输入“yes”,然后按 Enter 键。

系统将开始创建 VPC 网络和防火墙规则。

完成后,输出应返回以下消息:

Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

这意味着该 VPC 和防火墙已成功部署。

点击检查我的进度,验证您是否已正确完成此任务。 检查我的进度

任务 3. 验证资源的部署

在此任务中,您将验证新创建的 VPC 和防火墙规则是否已成功部署。

  1. 在 Google Cloud 控制台中,从导航菜单 (“导航菜单”图标) 中依次选择 VPC 网络 > VPC 网络。系统会打开 VPC 网络页面。
  2. 您应该会看到两个 VPC 网络:default,以及您刚刚创建的最新网络 test-network。点击 test-network 以访问 VPC 网络详情。
  3. 点击防火墙。点击展开箭头以展开 vpc-firewall-rules。在协议和端口操作下,您应该会注意到,防火墙规则与配置文件中定义的规则相同:允许tcp:801000-20008080 icmp
注意:为确保资源名称是唯一的,test-networktest-firewall 名称末尾都会动态附加一个唯一标识符。例如 test-network-curly-penguin。此唯一标识符由配置文件中定义的 ${local.name_suffix} 局部变量自动生成。这有助于防止资源命名发生冲突,并确保基础设施组件的组织结构正确。

总结

太棒了!

您使用 Terraform 和 Cloud Shell 成功构建了 VPC 网络和子网。本实验为您打下了坚实基础,可帮助您开发先进的自动化解决方案,系统管理员可将这些方案与 Terraform 搭配使用。

通过创建 VPC 网络和防火墙,您更好地理解了 IaC 如何帮助您实现预配和修改防火墙规则流程的自动化。这有助于在各种环境中建立一致性,同时减少人为错误。

结束实验

结束实验之前,请确保您已完成所有任务。准备就绪后,点击结束实验,然后点击提交

结束实验后,您将无法再访问实验环境,也无法再访问您在其中完成的工作成果。

版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。