Create a Cloud Storage bucket and upload an object

检查我的进度

/ 30

Create a Load Balancer

检查我的进度

/ 30

Delete the object from Cloud Storage bucket

检查我的进度

/ 20

Create Edge Security Policy for your CDN Cache and Validate Policy

检查我的进度

/ 20

此实验可能会提供 AI 工具来支持您学习。

GSP878

概览

借助 Google Cloud Armor 边缘安全政策,您可以限制对 Cloud CDN(内容分发网络)和 Cloud Storage 中缓存对象的访问。边缘安全政策在 Google 网络的最外层、Cloud CDN 缓存所在的上游位置部署和强制执行。这样做的原因包括:防止受限地区的用户访问存储桶内的对象,以及确保仅在获得授权的地区分发媒体内容。

在本实验中,您将创建一个 Google Cloud Storage 存储桶,向其中上传图片,将其与负载均衡器绑定,然后在其上启用 Cloud CDN 和 Cloud Armor 边缘安全政策。

学习内容

在本实验中,您将学习如何完成以下操作:

  • 设置包含可缓存内容的 Cloud Storage 存储桶
  • 创建边缘安全政策来保护内容
  • 验证边缘安全政策是否按预期正常生效

设置和要求

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

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 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 中,设置您的项目 ID 并为其创建环境变量:
export PROJECT_ID=$(gcloud config get-value project) echo $PROJECT_ID gcloud config set project $PROJECT_ID

任务 1. 创建 Cloud Storage 存储桶并上传对象

Cloud Storage 存储桶将是 Cloud CDN 的来源。

  1. 在控制台中,前往导航菜单 (导航菜单) > Cloud Storage > 存储桶

  2. 如需创建新的 Cloud Storage 存储桶,请点击创建

  3. 将存储桶名称设置为 -bucket。

  4. 点击继续

  5. 对于位置类型,选择区域,然后选择

  6. 点击继续

  7. 存储桶的默认存储类别是“标准”。点击继续

  8. 取消选中禁止公开访问下的“禁止公开访问此存储桶”复选框。

  9. 选择访问权限控制下的精细控制

  10. 点击继续

  11. 点击创建

大功告成,您成功创建了 Cloud Storage 存储桶!

将对象上传到存储桶

现在,将一个对象上传到存储桶,稍后您将使用该对象。默认情况下,Cloud Storage 存储桶是不公开的。在本实验中,您需要将该对象设置为向互联网公开。

  1. 在 Cloud Shell 中运行以下命令,将一张图片下载到 Cloud Shell。本实验使用一张来自 Google 首页的图片。
wget --output-document google.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
  1. 使用 gsutil cp 命令,将该图片从 Cloud Shell 上传到您创建的存储桶中:
gsutil cp google.png gs://{{{project_0.startup_script.project_id|Bucket Name}}}
  1. 从 Cloud Shell 中移除下载的图片:
rm google.png
  1. 依次前往 Cloud Storage > 存储桶 > ,找到您上传到存储桶的对象。

  2. 现在,点击所上传对象右侧的三点状图标,然后点击编辑权限

  3. 点击添加条目,然后从下拉列表中将相应实体设为公开

  4. 点击保存

“编辑权限”页面,其中列出了相关实体,并包含“保存”和“取消”按钮

点击检查我的进度,验证是否完成了以下目标: 创建 Cloud Storage 存储桶并上传对象

任务 2. 创建负载均衡器

Cloud CDN 和 Cloud Armor 都是可与 Google 的全球 Cloud Load Balancing 结合使用的组件。在本部分中,您将创建一个 HTTP 负载均衡器。

  1. 导航菜单 (“导航菜单”图标) 中,依次点击查看所有产品 > 网络服务 > 负载均衡
  2. 点击 +创建负载均衡器
  3. 负载均衡器的类型下,选择应用负载均衡器 (HTTP/HTTPS),然后点击下一步
  4. 公共或内部下,选择公共(外部),然后点击下一步
  5. 全球或单区域部署字段中,选择最适合全球性工作负载,然后点击下一步
  6. 负载均衡器世代字段中,选择全球外部应用负载均衡器,然后点击下一步
  7. 点击配置按钮。
  8. 将负载均衡器命名为 edge-cache-lb

创建前端配置

如需创建前端配置,请执行以下操作:

  1. 点击前端配置

  2. 对于前端配置,请使用 HTTP(如果您有证书,也可以使用 HTTPS)和临时 IP 地址,并确保您已选择高级层级网络。此选项为默认设置。

  3. 点击完成

前端配置页面,其中包含对负载均衡器的说明

创建后端配置

如需创建后端配置,请执行以下操作:

  1. 点击后端配置

  2. 对于后端服务和后端存储桶,点击创建后端存储桶

  3. 后端存储桶名称设置为 lb-backend-bucket

  4. 在下一个字段中,点击浏览按钮,选择之前创建的 Cloud Storage 存储桶。

  5. 将所有其他值保留为默认值。

  6. 点击创建

创建主机和路径规则

如需创建主机和路径规则,请执行以下操作:

  1. 点击左侧的路由规则

  2. 在“模式”下选择简单主机和路径规则,以便将所有请求发送到该存储桶。这是默认选项。

检查并创建 HTTP 负载均衡器

如需检查并创建 HTTP 负载均衡器,请执行以下操作:

  1. 点击检查并最终确定
  2. 检查后端服务前端
  3. 点击创建

获取负载均衡器 IP 地址

如需从控制台获取负载均衡器 IP 地址,请执行以下操作:

  • 点击项目负载均衡器列表中的负载均衡器名称。记下负载均衡器的 IPv4 地址,以便在下一个任务中使用。将其记作 [LOAD_BALANCER_IP]

详情页面,其中突出显示了 IP:Port 地址

对负载均衡器运行查询

几分钟后,通过负载均衡器查询您上传的对象。您需要用到负载均衡器的 IP 地址以及图片的名称。

  1. 在 Cloud Shell 中运行以下命令,并将 LOAD_BALANCER_IP 替换为负载均衡器的 IPv4 地址:
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png 注意:最长可能需要 5 分钟时间才能访问 HTTP 负载均衡器。

输出:

student-cloudshell% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtoILI76KVsvBvdVGvSfzaxys1m3zYqCepBrmJxAI48ni24cWCRIdNu-53PX3DS6iycxp6xwFbMpwtcHHZQUQmEBxAgng < Expires: Mon, 13 Dec 2021 22:58:26 GMT < Date: Mon, 13 Dec 2021 21:58:26 GMT < Cache-Control: public, max-age=3600 < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer
  1. 使用以下命令运行若干查询:
for i in `seq 1 50`; do curl http://LOAD_BALANCER_IP/google.png; done

确认 Cloud CDN 传送的内容

  • 前往网络服务 > Cloud CDN,通过 CDN 或负载均衡监控功能,验证您的内容是否正通过 CDN 传送。

Cloud CDN 概览页面,其中显示了一条结果

您的缓存命中率有望接近 100%。

点击检查我的进度,验证是否完成了以下目标: 创建负载均衡器

任务 3. 从 Cloud Storage 存储桶中删除对象

现在缓存已填充完毕,接下来要从存储桶中删除该对象。这将进一步证明您是将政策应用于缓存,而非后端。

  1. 导航菜单 (“导航菜单”图标) 中,依次点击 Cloud Storage > 存储桶 > -bucket > 对象

  2. 选择该对象,然后点击顶部的删除按钮将其删除。

  3. 出现提示时,点击删除

点击检查我的进度,验证是否完成了以下目标: 从 Cloud Storage 存储桶中删除对象

任务 4. 创建边缘安全政策

Cloud Armor 政策是独立于 HTTP 负载均衡器定义的。部署 Cloud Armor 政策后,您可以将其与一个或多个 HTTP 负载均衡器后端服务或存储桶资源(称为“目标”)相关联。

  1. 导航菜单 (“导航菜单”图标) 中,依次点击查看所有产品 > 网络安全 > Cloud Armor 政策,然后点击创建政策
  1. 设置以下值,将所有其他值保留为默认值,然后点击下一步
属性 值(按照说明输入值或选择选项)
名称 edge-security-policy
政策类型 边缘安全政策
默认规则操作 拒绝
  1. 将政策应用于目标部分,点击添加目标并设置以下值:
属性
类型 1 后端存储桶(外部应用负载均衡器)
后端存储桶目标 1 lb-backend-bucket
  1. 点击完成

  2. 点击创建政策

验证边缘安全政策

现在,您已在后端存储桶前创建了边缘安全政策,接下来请验证该政策是否按预期正常生效。

检查安全政策

几分钟后,您可以检查 Cloud Armor 政策是否已生效。

在命令行中运行以下命令,您将收到 403 错误:

curl -svo /dev/null http://LOAD_BALANCER_IP/google.png

当您无权访问网页或 Web 服务器上的某些内容时,就会出现 403 错误。

输出:

curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 403 Forbidden < X-GUploader-UploadID: ADPycdtS6FtJOGIsiWYDrAAE8VFeQuNutcvbGoQe2t8EZxsuspVtmCjyiTv_P3CNktroHMOGFXkTCfG-Jj-rUO60ZGPpEbpqcw < Content-Type: application/xml; charset=UTF-8 < Content-Length: 111 < Date: Mon, 13 Dec 2021 23:09:35 GMT < Expires: Mon, 13 Dec 2021 23:09:35 GMT < Cache-Control: private, max-age=0 < Server: UploadServer

查看日志

接下来,您需要查看日志,确认边缘安全政策的执行情况。

  1. 导航菜单 (“导航菜单”图标) 中,依次点击查看所有产品 > 可观测性 > 日志记录 > Logs Explorer

  2. 在查询框中输入以下代码段,然后点击运行查询

resource.type:(http_load_balancer) AND jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" AND severity>=WARNING
  1. 请注意 403 响应和强制执行的安全政策。

“查询”页面,其中突出显示了 403 响应消息及其安全政策

点击检查我的进度,验证是否完成了以下目标: 为 Cloud Armor 创建边缘安全政策

移除安全政策

为了证明对象是从 CDN 缓存分发的,请移除 Cloud Armor 安全政策并查询该对象。源对象已从 Cloud Storage 中移除,这表明该对象目前正通过边缘缓存进行分发。

  1. 导航菜单 (“导航菜单”图标) 中,依次点击查看所有产品 > 网络安全 > Cloud Armor 政策 > edge-security-policy > 目标
  2. 选择 lb-backend-bucket 目标,然后点击移除以移除目标存储桶。确认移除
  1. 等待几分钟,然后再次向 Cloud Storage 存储桶中的资源发送 curl 请求:
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png

这次您将收到 200 响应。网页的呈现符合预期。

输出:

student-cloudshell% curl -svo /dev/null http://34.98.81.123/google.png Trying 34.98.81.123... TCP_NODELAY set Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) GET /google.png HTTP/1.1 Host: YOUR_IP User-Agent: curl/7.64.1 Accept: */* HTTP/1.1 200 OK X-GUploader-UploadID: ADPycdtI7f49P3MSuZSZ8vl6RwfwmnIDJ59EeSKp7UPvLPawdaiRHXiNWLtseQTxUxceWOvSLvpYmT3pWVkV4qeIP7M Date: Mon, 13 Dec 2021 23:06:46 GMT Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT ETag: "8f9327db2597fa57d2f42b4a6c5a9855" x-goog-generation: 1639431957957903 x-goog-metageneration: 2 x-goog-stored-content-encoding: identity x-goog-stored-content-length: 5969 Content-Type: image/png x-goog-hash: crc32c=TeiHTA== x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== x-goog-storage-class: STANDARD Accept-Ranges: bytes Content-Length: 5969 Server: UploadServer Age: 1621 Cache-Control: public,max-age=3600 { [775 bytes data] Connection #0 to host 34.98.81.123 left intact Closing connection 0

多尝试几次,看看是否会收到 403 状态代码。

恭喜!

您已成功创建 Cloud Storage 存储桶,向其中上传了图片,将其与负载均衡器绑定,并在其上启用了 Cloud CDN 和边缘安全政策。

上次更新手册的时间:2024 年 12 月 10 日

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

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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

完成此快速步骤即可开始实验。