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

使用 Apigee X 和 Cloud Armor 保护 API

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

GSP909

Google Cloud 自学实验的徽标

概览

在本实验中,您将使用 Apigee X 威胁防护政策来保护 API 免受基于内容的威胁。您还要将 Cloud Armor 添加到全球外部 HTTPS 负载均衡器,以提供 Web 应用防火墙功能,例如分布式拒绝服务攻击 (DDoS) 防护、OWASP 十大风险缓解以及基于 IP 和地理位置的访问权限控制。

负载均衡器和桥接虚拟机的托管式实例组已创建完毕,可供您访问运行时实例。此配置的架构如下所示:

显示配置架构的流程图

传入的 API 调用通过全球外部 HTTPS 负载均衡器进入客户项目。外部 HTTPS 负载均衡器无法将调用转发到租户项目,而是将请求转发到客户项目中桥接虚拟机的托管式实例组。这些桥接虚拟机位于连接到 Apigee 运行时实例的对等互连网络中,从而允许虚拟机将 API 调用转发到运行时实例。

发送到负载均衡器的任何 HTTP 流量都将转发到桥接虚拟机,然后转发到 Apigee 运行时实例。您将添加 Cloud Armor 安全政策,以阻止特定流量直接发送到运行时实例。

JSON 和 XML 攻击会使用精心构造的载荷压垮 JSON 和 XML 解析器,引发应用级的拒绝服务攻击。Cloud Armor 不能检测这些类型的攻击,但 Apigee 可以。利用 JSONThreatProtectionXMLThreatProtection 政策,无需将载荷加载到解析器中,即可检测到这些恶意载荷。您将使用 JSONThreatProtection 政策来防范畸形的 JSON 载荷。

本实验中的说明对于付费组织和评估组织均适用。

目标

在本实验中,您将学习如何执行以下任务:

  • 使用 Apigee 威胁防护政策阻止 JSON 和 XML 恶意载荷
  • 创建 Cloud Armor 政策
  • 创建 Cloud Armor 规则以阻止和允许请求
  • 将 Cloud Armor 政策应用于负载均衡器
  • 使用 HTTP 流量测试 Cloud Armor 政策

设置

点击“开始实验”按钮前的注意事项

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

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

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。 注意:建议您使用新的无痕式窗口完成本实验。

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

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

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

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

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

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 Cloud Shell 信息窗口中的设置。
    • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 创建 JSON 威胁防护政策共享流

在此任务中,您将创建一个包含 JSONThreatProtection 政策的共享流,然后使用流程钩子为所有 Apigee API 启用该共享流。

JSONThreatProtection 政策将拒绝超出指定限制的传入 JSON 请求。将该政策放在一个共享流中,然后使用流程钩子附加该共享流,就能保护向环境中部署的所有代理发出的任何请求。

打开 Apigee 控制台

如需打开 Apigee 控制台,请执行以下操作:

  • 在 Google Cloud 控制台中,在搜索字段中输入 Apigee,然后点击搜索结果中的 Apigee API Management

Apigee 控制台会随即打开,着陆页会显示指向常用位置的快捷链接

  • 导航菜单 (导航菜单) 中,点击 Apigee 旁边的收藏 (收藏图标)。

Apigee 现在已作为收藏项添加到导航菜单中。

创建共享流

  1. 在导航菜单中,依次选择代理开发 > 共享流

  2. 点击创建

    共享流可包含一组政策和条件,并可借助 FlowCallout 政策在 API 代理或其他共享流中执行。在本实验中,您将使用流程钩子中的共享流,该钩子将共享流附加到评估组织中部署的每个代理。

  3. 将共享流命名为 protect-json,然后点击创建

  4. 点击开发标签页。

  5. 在共享流的左侧菜单中,点击共享流部分中的默认

  6. sharedflows/default.xml 窗格中,点击添加政策步骤 (“添加政策步骤”图标)。

  7. 对于选择政策,选择创建新政策

  8. 选择 JSON 威胁防护,然后将显示名称名称设置为 JTP-Protect

  9. 点击添加

    JSONThreatProtection 政策包含多个元素,以便对传入的 JSON 请求施加限制。通常根据 API 的最大值来设置这些限制。在本例中,请保留该政策的默认配置。

    仅当请求的 Content-Type 标头设置为 application/json(表示传入的请求包含 JSON 载荷)时,该政策才会执行。

  10. 点击保存

  11. 点击部署,对于环境,请选择评估

  12. 点击部署,然后点击确认

将共享流附加到流程钩子

共享流将附加到代理前的流程钩子,以便先于代理执行。

  1. 前往管理 > 环境

  2. 点击评估 > 流程钩子

  3. 代理前这一行的下拉菜单中,选择 protect-json 共享流,然后点击保存

    您将在后面的任务中测试该流程钩子。

点击“检查我的进度”以验证是否完成了以下目标: 创建共享流和流程钩子

任务 2. 添加 Cloud Armor 安全政策

在此任务中,您将添加 Cloud Armor 安全政策来保护负载均衡器并控制对 API 的访问。

Cloud Armor 是 Google Cloud 的 Web 应用防火墙。您可以为一个负载均衡器指定单一 Cloud Armor 政策。在本实验中,您将使用 Cloud Armor 安全政策在特定流量到达 Apigee 运行时实例之前拒绝该流量,从而保护您的 API。

显示配置架构的流程图,其中突出显示了 Cloud Armor

注意:负载均衡器只有在得知 Apigee 运行时实例的 IP 地址之后才能完成全部配置,因此在负载均衡器配置完成之前,您可能会看到负载均衡器中存在健康状况不佳的实例。

创建新的安全政策

  1. 在 Cloud 控制台标签页中,点击导航菜单 (导航菜单按钮) 中的查看所有产品,然后在网络部分中选择网络安全,然后前往 Cloud Armor 政策

  2. 点击创建政策

  3. 对于名称,指定为 protect-apis

    该安全政策将使用规则来阻止发往 Apigee API 的特定流量。

  4. 对于默认规则操作,选择拒绝

    用户如不符合明确允许流量通过的规则,将被拒绝访问 API。

  5. 拒绝状态下拉菜单中,选择 403(已禁止)

    如果请求不符合允许流量通过的规则,则向用户返回状态代码“403 禁止访问”。

  6. 点击下一步

添加按来源国家/地区代码允许请求的安全政策规则

该规则将仅允许来自指定国家/地区的请求。

  1. 点击添加规则

  2. 点击高级模式

    基本模式规则只能指定要匹配的 IP 地址或 IP 地址范围。在本例中,您需要指定允许的国家/地区代码。

  3. 对于匹配部分,指定以下表达式:

    origin.region_code == 'US'

    对于 Cloud Armor,region_code 指定为 ISO 3166-2 区域。该规则匹配的对象是来自美国的请求。

  4. 对于操作,指定为允许

  5. 优先级设置为 1000,然后点击保存对规则的更改

添加规则以阻止 SQL 注入攻击

该规则将阻止包含 SQL 输入并可能导致 SQL 注入的请求。

  1. 点击添加规则

  2. 点击高级模式

  3. 对于匹配部分,指定以下表达式:

    evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942251-sqli', 'owasp-crs-v030001-id942420-sqli', 'owasp-crs-v030001-id942431-sqli', 'owasp-crs-v030001-id942460-sqli', 'owasp-crs-v030001-id942421-sqli', 'owasp-crs-v030001-id942432-sqli'])

    该表达式指定了预配置的 Cloud Armor 规则。预配置的规则使用开源的业界标准签名来检测恶意请求。要停用特定签名,请提供要停用的签名名称。

    在本例中,敏感度级别为 3 和 4 的签名已停用。签名的敏感度级别也称为偏执级别,它指定了以更多误报数量换取更高安全级别的一种权衡结果。

    级别 1 是默认的安全级别,几乎不会出现误报。级别 2 提供额外的保护,抵御高级攻击和混淆攻击。级别 3 和 4 的签名更为激进,导致误报的可能性显著更高。例如,级别 3 或 4 的签名可能会标记包含简单 JSON 载荷的 POST 请求。

  4. 操作保留为拒绝,并且拒绝状态保留为 403(已禁止)

  5. 优先级设置为 500

    在评估 Cloud Armor 政策规则时,遇到的第一个与请求匹配的规则决定了将要执行的操作。SQL 注入检查需要发生在区域检查之前,因为我们希望拒绝来自允许的区域但包含 SQL 注入模式的请求。通过选择数字较小的优先级,就能在区域检查之前完成 SQL 注入检查。

  6. 点击保存对规则的更改

    请看右边的摘要。该政策包含 3 条规则。系统会按优先级数字从小到大的顺序评估规则,并使用第一个匹配的规则。

    第一条规则在检测到 SQL 注入模式时拒绝访问。

    第二条规则允许来源于美国的访问。

    最后一条规则拒绝所有流量的访问。

  7. 点击创建政策

    政策标签页显示,新 protect-apis 政策的目标数为 0,因为您尚未将其附加到负载均衡器。

将政策附加到负载均衡器

  1. 点击 protect-apis 旁边的政策菜单按钮 (政策菜单按钮),然后点击将政策应用于目标

  2. 后端服务 1 下拉菜单中,选择 apigee-proxy-backend,然后点击添加

    protect-apis 政策详情页面很快会显示,该政策应用于 1 个目标。

    注意:Cloud Armor 的更改可能需要几分钟时间才能传播到目标。

点击“检查我的进度”以验证是否完成了以下目标: 添加 Cloud Armor 安全政策

任务 3. 等待 Apigee 实例预配完毕

在此任务中,您将等待 Apigee 评估组织预配完毕。

Apigee 组织预配可能需要相当长的时间才能完成。您可以使用 Apigee API 监控组织预配进度。

启动监控脚本

  1. 在 Cloud Shell 中,使用以下命令验证 GOOGLE_CLOUD_PROJECT 变量是否包含您的项目名称:

    echo ${GOOGLE_CLOUD_PROJECT}

    变量 GOOGLE_CLOUD_PROJECT 应包含您的项目名称,它与您的 Apigee 组织名称相同。

  2. 如果未设置 GOOGLE_CLOUD_PROJECT 变量,请使用如下所示的命令手动设置该变量,并将 {project} 替换为您的项目名称:

    export GOOGLE_CLOUD_PROJECT={project} 注意:在此步骤中,应移除花括号。
  3. 将以下命令粘贴到 Cloud Shell 中:

    export INSTANCE_NAME=eval-instance; export ENV_NAME=eval; export PREV_INSTANCE_STATE=; echo "waiting for runtime instance ${INSTANCE_NAME} to be active"; while : ; do export INSTANCE_STATE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}" | jq "select(.state != null) | .state" --raw-output); [[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (echo; echo "INSTANCE_STATE=${INSTANCE_STATE}"); export PREV_INSTANCE_STATE=${INSTANCE_STATE}; [[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break; echo -n "."; sleep 5; done; echo; echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\") | .environment" --join-output); [[ "${ATTACHMENT_DONE}" != "${ENV_NAME}" ]] || break; echo -n "."; sleep 5; done; echo; echo "${ENV_NAME} environment attached, waiting for hello-world to be deployed"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\") | .environment" --join-output); [[ "${ATTACHMENT_DONE}" != "${ENV_NAME}" ]] || break; echo -n "."; sleep 5; done; echo "***ORG IS READY TO USE***";

    这组命令使用 Apigee API 来判断运行时实例是否已创建,以及评估环境是否已关联至该实例。

  4. 等待实例准备就绪。

    当屏幕上打出文本 ***ORG IS READY TO USE*** 时,表示实例已准备就绪。

    注意:如果该命令立即指示组织可供使用,那么可能是因为在您进入实验之前已经预热过实验。

    在等待组织就绪期间,您可以浏览 Cloud Armor 的概览自定义规则预配置规则

点击“检查我的进度”以验证是否完成了以下目标: 等待实例准备就绪

任务 4. 从允许的区域进行测试

在此任务中,您将验证 Cloud Armor 安全政策是否保护您的 API,同时对来自允许区域的合规流量予以放行,并验证流程钩子能否防范 JSON 威胁。

系统自动为您创建了一个名为 apigeex-test-vm 的虚拟机。您可以使用此虚拟机从美国调用 API。

  1. 在 Cloud Shell 中,建立与美国测试虚拟机的 SSH 连接:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. 如果系统提示 Do you want to continue (Y/n)?,请按 Y 继续。

  3. 对于 Cloud Shell 中提出的每个问题,按 Enter 键或 Return 键来指定默认输入。

    您的登录身份是项目的所有者,因此可以通过 SSH 连接到此虚拟机。

    您的 Cloud Shell 会话现在正在虚拟机内运行。

  4. 验证 hello-world API 代理现在是否可访问:

    export PREV_STATUS_CODE=; echo "waiting for hello-world to be accessible"; while : ; do export STATUS_CODE=$(curl -k -s -o /dev/null -w "%{http_code}" --max-time 5 -X GET "https://eval.example.com/hello-world"); [[ "${STATUS_CODE}" == "${PREV_STATUS_CODE}" ]] || (echo; echo "STATUS_CODE=${STATUS_CODE}"); export PREV_STATUS_CODE=${STATUS_CODE}; [[ "${STATUS_CODE}" != "200" ]] || break; echo -n "."; sleep 5; done; echo; echo "***HELLO-WORLD IS ACCESSIBLE***";

    hello-world 代理可能需要一小段时间才能部署完成,然后通过外部负载均衡器供您使用。当这些命令返回 ***HELLO-WORLD IS ACCESSIBLE*** 时,即可使用 hello-world 代理。

  5. 调用评估环境中部署的 hello-world API 代理:

    curl -i -k "https://eval.example.com/hello-world"

    系统已为主机名 eval.example.com 创建 DNS 条目,其中包含负载均衡器的传入 IP 地址。

    -i 选项显示响应的状态代码和标头。

    -k 选项会跳过对负载均衡器 TLS 证书的验证,因为负载均衡器使用的 TLS 证书是自签名证书,而非由已知证书授权机构验证的证书。

    注意:在生产环境中,不应使用 -k 选项绕过证书验证。

    该虚拟机位于美国,因此您的 curl 命令应成功返回 hello-world 代理生成的 Hello, Guest! 响应消息:

    HTTP/2 200 x-powered-by: Apigee access-control-allow-origin: * x-frame-options: ALLOW-FROM RESOURCE-URL x-xss-protection: 1 x-content-type-options: nosniff content-type: text/plain; charset=utf-8 content-length: 13 etag: W/"d-GHB1ZrJKk/wdVTdB/jgBsw" date: Mon, 30 Aug 2021 19:14:45 GMT alt-svc: clear alt-svc: clear x-request-id: b5532b95-c051-4f21-a131-07da1574edc3 server: apigee via: 1.1 google, 1.1 google Hello, Guest!
  6. 使用以下命令调用 hello-world 代理:

    curl -i -k -X POST "https://eval.example.com/hello-world" -H "Content-Type: application/json" -d '{ "ThisIsAReallyLongElementNameIMeanReallyReallyReallyLong": 42 }'

    此请求超出了共享流中包含的 JSONThreatProtection 政策所指定的 ObjectEntryNameLength 限制。共享流使用代理前的流程钩子附加到所有 API 代理。

    响应内容应如下所示:

    HTTP/2 500 content-type: application/json x-request-id: 5360a9fb-b0b9-4fce-968c-22c2d3fd57dd content-length: 235 date: Mon, 30 Aug 2021 19:16:17 GMT server: apigee via: 1.1 google alt-svc: clear {"fault":{"faultstring":"JSONThreatProtection[JTP-Protect]: Execution failed. reason: JSONThreatProtection[JTP-Protect]: Exceeded object entry name length at line 1","detail":{"errorcode":"steps.jsonthreatprotection.ExecutionFailed"}}} 注意:返回的默认状态代码为 500,指示服务器错误。在生产环境中使用该政策时,比较合理的做法是重写错误,使其指示请求有问题(如 400 Bad Request),而非服务器错误。
  7. 尝试使用以下命令调用 hello-world API 代理:

    curl -i -k "https://eval.example.com/hello-world?item=name'%20OR%20'a'='a"

    item 查询参数使用 SQL 注入模式,如果 SQL 查询是通过串联字符串构建的,可能会产生意想不到的后果。

    Cloud Armor 成功检测到 SQL 注入模式并阻止了该请求,返回的响应结果为“403 禁止访问”:

    HTTP/2 403 content-length: 134 content-type: text/html; charset=UTF-8 date: Thu, 22 Jul 2021 18:50:03 GMT alt-svc: clear <!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden 注意:Cloud Armor 规则可能需要几分钟才能传播完毕。如果未阻止请求,请再调用一次,直到阻止请求为止。
  8. 输入 exit 关闭与美国虚拟机的 SSH 连接。

任务 5. 从禁止区域测试安全政策

在此任务中,您将验证 Cloud Armor 安全政策是否禁止区域不在允许清单内的流量。

系统自动在区域 中创建了一个名为 apigeex-outside-us 的虚拟机。您可以使用该虚拟机从美国境外调用 API。

  1. 在 Cloud Shell 中,建立与美国境外测试虚拟机的 SSH 连接:
export SECOND_VM_NAME=apigeex-outside-us export SECOND_VM_ZONE={{{project_0.default_zone_2| Secondary Zone}}} gcloud compute ssh ${SECOND_VM_NAME} --zone=${SECOND_VM_ZONE} --force-key-file-overwrite
  1. 如果系统提示您进行授权,请点击授权

  2. 对于 Cloud Shell 中提出的每个问题,按 Enter 键或 Return 键来指定默认输入。

    您的登录身份是项目的所有者,因此可以通过 SSH 连接到此虚拟机。

    您的 Cloud Shell 会话现在正在虚拟机内运行。

  3. 调用评估环境中部署的 hello-world API 代理:

    curl -i -k "https://eval.example.com/hello-world"

    该虚拟机不在美国境内,因此 Cloud Armor 应阻止该请求,并返回 403 错误:

    HTTP/2 403 content-length: 134 content-type: text/html; charset=UTF-8 date: Thu, 22 Jul 2021 22:47:06 GMT alt-svc: clear <!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden

任务 6. 探索 Cloud Armor 的政策监控

在此任务中,您将在 Cloud Monitoring 中查看 Cloud Armor 政策信息中心。

  1. Cloud 控制台标签页中,前往 Monitoring > 信息中心

  2. 点击 Cloud Armor 政策概览

    此信息中心显示所有 Cloud Armor 政策的请求允许率和阻止率。您目前只有一项政策。

  3. 政策窗格中,点击 protect-apis

    此信息中心显示 protect-apis 政策的请求允许率和阻止率。

    如需记录各个请求的详细信息,您需要为负载均衡器启用请求日志记录

恭喜!

在本实验中,您创建了 Cloud Armor 政策,并使用该政策基于 Cloud Armor 规则拒绝或允许了传入流量。

后续步骤/了解详情

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2025 年 9 月 17 日

上次测试实验的时间:2025 年 9 月 17 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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