准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Deploy the application to App Engine
/ 25
Restrict access with IAP
/ 25
Allow member to access application
/ 25
Access User Identity Information
/ 25
在零信任安全模型中,任何人、任何设备或任何网络都不是默认可信的。是否授予访问权限取决于诸多因素,包括但不限于身份、设备、位置和时段。执行零信任政策的一个主要应用场景是安全访问 Web 应用,例如托管在 Google Cloud 或本地数据中心且基于 HTTP/HTTPS 协议的应用。每个 Web 应用均可设置独立的访问控制机制,以实现精确的安全管控并降低安全风险。要想保护 Web 应用,您不必设置访问控制列表 (ACL),而是可以通过设置 IP 范围,在不降低安全性的前提下实现快速接入。在整个架构中,能提供零信任访问的主要组件是:
在本实验中,您将在 App Engine 中部署一个示例应用,并使用 Identity-Aware Proxy (IAP) 强制执行政策。您还将在 IAP 所保护的应用中获取用户身份信息。
编程语言基础知识 (Python)
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
您也可以在“实验详细信息”窗格中找到“用户名”。
点击下一步。
复制下面的密码,然后将其粘贴到欢迎对话框中。
您也可以在“实验详细信息”窗格中找到“密码”。
点击下一步。
继续在后续页面中点击以完成相应操作:
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
点击 Google Cloud 控制台顶部的激活 Cloud Shell 。
在弹出的窗口中执行以下操作:
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID
gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
输出:
输出:
gcloud 的完整文档,请参阅 gcloud CLI 概览指南。
您将使用 Google App Engine 构建一个很小的 Web 应用,然后尝试通过多种方式使用 Identity-Aware Proxy 限制对该应用的访问并向该应用提供用户身份信息。您的应用将:
该应用是使用 Python 3.8 编写的 App Engine 标准应用,只会显示“Hello, World”欢迎页面。您要部署和测试它,然后使用 IAP 限制对它的访问。
应用代码在 main.py 文件中。它使用 Flask Web 框架,通过在模板中动态填充内容来响应 Web 请求。该模板文件位于 templates/index.html。在此步骤中,它仅包含纯 HTML。第二个模板文件位于 templates/privacy.html,它包含框架性的隐私权政策示例。
另外还有两个文件:requirements.txt 和 app.yaml,前者列出应用所使用的所有非默认 Python 库,后者告诉 Google Cloud Platform 这是一个 Python 3.8 App Engine 应用。
您可以使用 cat 命令在 Cloud Shell 中列出每个文件:
您还可以点击 Cloud Shell 窗口右上角的修改 () 打开 Cloud Shell 代码编辑器,并在编辑器加载完成后使用它来检查代码。
在这一步您无需更改任何文件。
现在,将应用部署到适用于 Python 3.8 的 App Engine 标准环境。
当系统询问您是否要继续时,请输入 Y(表示“是”)。
1-HelloWorld 文件夹中的 app.yaml 文件,并更新运行时 Python 版本。如果系统询问您是否继续,请输入 Y 并按 Enter 键。
几分钟后,部署就会完成,此时您将看到一条消息,提示您可以使用以下命令查看应用:
点击“检查我的进度”,以验证是否完成了以下目标:
前往导航菜单 > 查看所有产品 > 安全 > Identity-Aware Proxy,然后点击启用 API 按钮,再点击转到 Identity-Aware Proxy。
如需配置项目的 OAuth 权限请求页面,请依次点击导航菜单 () > API 和服务 > OAuth 权限请求页面,以进入该页面。
在“OAuth 概览”页面上,点击开始,然后在应用名称中输入:IAP Example
提供用户支持邮箱:
在受众群体类型部分,选择内部,然后点击下一步。
在联系信息下方,输入第 4 步中提供的邮箱,然后点击下一步。
在完成下方,选中接受条款及条件复选框,然后点击创建。
返回第一个浏览器标签页,在 Cloud Shell 中运行以下命令:
复制该网址,因为您需要将这些命令的输出结果输入到 OAuth 权限请求标签页上的表单中。
在 OAuth 概览页面上,点击创建 OAuth 客户端,在“应用类型”下选择Web 应用。
在已获授权的重定向 URI 下,点击 + 添加网址,输入在命令输出中收到的网址,然后点击创建。
在未使用的标签页中,前往导航菜单 > 查看所有产品 > 安全 > Identity-Aware Proxy。
必要时请刷新页面。
按住 Ctrl/Command 键,在 IAP 控制台中选择 App Engine 应用的网址,以访问该应用。
使用登录表单中列出的学生用户账号登录。
您会在屏幕中看到,您无权访问该应用。
您已成功使用 IAP 保护您的应用,但尚未指示 IAP 允许哪些账号访问。
点击“检查我的进度”,以验证是否完成了以下目标:
前往导航菜单 > 查看所有产品 > 安全 > Identity-Aware Proxy,返回到控制台的 Identity-Aware Proxy 页面。
选中 App Engine 应用旁边的复选框,查看页面右侧的边栏,然后点击添加主账号。
从实验左上角的实验控制台中复制 Username,然后粘贴到新的主账号输入框中。
点击 Cloud IAP > IAP-secured Web App User,设置其角色。
点击“检查我的进度”,以验证是否完成了以下目标:
不过,由于系统存储了登录 Cookie,IAP 可能不会重新检查您是否获得授权,因此您可能仍然会看到“您没有访问权限”页面。
在这种情况下,请执行以下步骤:
/_gcp_iap/clear_login_cookie,例如输入 https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie。您将看到新的“使用 Google 账号登录”屏幕,并且您的账号已显示在其中。
这会让 IAP 重新检查您的访问权限,您现在应该能看到应用的首页。
一旦应用受到 IAP 保护,它就可以使用 IAP 在所传递的 Web 请求标头中提供的身份信息。在此步骤中,该应用将获取已登录用户的邮箱,以及 Google Identity 服务分配给该用户的永久性唯一身份用户 ID。该数据将在欢迎页面中显示给用户。
2-HelloUser 文件夹中的 app.yaml 文件,并更新运行时 Python 版本:如果系统询问您是否继续,请输入 Y。
部署就绪后,输入以下命令:
如果浏览器中没有打开新标签页,请复制所显示的链接,在新标签页中打开它。您应该会看到如下所示的页面:
点击“检查我的进度”,以验证是否完成了以下目标:
2-HelloUser 文件夹包含的文件集与 1-HelloWorld 文件夹相同,但有两个文件发生了改变:main.py 和 templates/index.html。程序已改为检索 IAP 在请求标头中提供的用户信息,并且模板现在会显示这些数据。
cat main.py 以查看 main.py 文件的内容。main.py 中有两行代码用于获取 IAP 提供的身份数据:
X-Goog-Authenticated-User- 标头由 IAP 提供,并且名称不区分大小写,因此,如果您愿意,可以将它们全部小写或全部大写。render_template 语句现在包含这些值,因此应用可以显示这些信息:
index.html 模板可以通过将名称括在双花括号中来显示这些值:
提供的数据带有 accounts.google.com: 前缀,用于指示信息来源。如果需要,您的应用可以移除冒号前的所有内容(包括冒号)以获取原始值。
您已了解如何使用 Identity-Aware Proxy (IAP) 来保护部署到 Google Cloud 的 HTTP(s) 应用。
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2025 年 11 月 12 日
上次测试实验的时间:2025 年 11 月 12 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验