概览
Gemini for Google Cloud 是一款始终在线的 AI 协作工具,可为各种技能水平的用户提供帮助。在本实验中,您将学习如何使用 Security Command Center 的 Gemini 功能找出并修复 Google Cloud 环境中的安全配置错误。
注意:Duet AI 已更名为 Gemini,这是我们的新一代模型。此实验已更新,以反映此变化。在按照实验说明操作时,界面或文档中任何提到 Duet AI 的地方都应视为指的是 Gemini。
注意:作为一项尚处于早期发展阶段的技术,Gemini 可能会生成看似合理但实际上不正确的输出。我们建议您先验证 Gemini 的所有输出,然后再使用。如需了解详情,请参阅适用于 Google Cloud 的 Gemini 和 Responsible AI。
目标
在本实验中,您将学习如何执行以下任务:
- 在 Google Cloud 项目中启用 Gemini
- 将示例工作负载部署到 Google Cloud 环境中
- 使用 Gemini 找出安全配置错误
- 使用 Gemini 修复安全配置错误
场景
为了改善安全状况,在您监控基础设施的过程中,Gemini 能帮您确定实施哪些基础设施或配置变更可防止将来出现问题。
在这个例子中,假设您是一家电子商务公司的安全工程师,该公司会定期部署托管式 Kubernetes 集群。您需要找到一种方式来查看是否存在任何配置错误,还需要获得一些简短的说明来帮助解决云环境中的这些问题。
设置和要求
对于每个实验,您都会免费获得一个新的 Google Cloud 项目及一组资源,它们都有固定的使用时限。
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:
-
打开 Google Cloud 控制台按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示登录页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在实验详细信息面板中找到用户名。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在实验详细信息面板中找到密码。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需查看列有 Google Cloud 产品和服务的菜单,请点击左上角的导航菜单。
任务 1. 启用 Gemini
首先要在 Google Cloud 项目中启用 Gemini,并为 Google Cloud Qwiklabs 用户账号配置必要的权限。
-
点击 Google Cloud 控制台工具栏右上角的 Cloud Shell 图标 (
)。
-
如需设置项目 ID 和区域环境变量,请运行以下命令:
PROJECT_ID=$(gcloud config get-value project)
REGION={{{project_0.default_region|lab region}}}
echo "PROJECT_ID=${PROJECT_ID}"
echo "REGION=${REGION}"
- 如需将已登录的 Google 用户账号存储到环境变量中,请运行以下命令:
USER=$(gcloud config get-value account 2> /dev/null)
echo "USER=${USER}"
-
在系统提示时点击授权。
-
为 Gemini 启用 Cloud AI Companion API:
gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID}
- 如需使用 Gemini,请为您的 Google Cloud Qwiklabs 用户账号授予必要的 IAM 角色:
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer
添加这些角色后,用户即可开始使用 Gemini 助手。
点击检查我的进度以验证您已完成的任务。
启用 Gemini
任务 2:创建 GKE 集群并部署 Web 应用
现在,您将创建一个运行少量微服务的 Google Kubernetes Engine (GKE) 集群。
- 运行以下命令,创建一个名为
test
的 GKE 集群:
gcloud container clusters create test --region={{{project_0.default_region|lab region}}} --num-nodes=1
这应该需要几分钟才能完成。完成后,您应该会看到与以下内容类似的结果:
Creating cluster test in {{{project_0.default_region|lab region}}}... Cluster is being health-checked (master is healthy)...done.
Created [https://container.googleapis.com/v1/projects/agmsb-gke-lab/zones/us-central1/clusters/test].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1/test?project=agmsb-gke-lab
kubeconfig entry generated for test.
NAME: test
LOCATION: {{{project_0.default_region|lab region}}}
MASTER_VERSION: 1.27.3-gke.100
MASTER_IP: 34.66.224.143
MACHINE_TYPE: e2-medium
NODE_VERSION: 1.27.3-gke.100
NUM_NODES: 3
STATUS: RUNNING
- 现在,克隆一个包含 Web 应用代码的仓库:
git clone https://github.com/GoogleCloudPlatform/microservices-demo && cd microservices-demo
- 使用 kubectl 将一组微服务部署到 GKE 集群:
kubectl apply -f ./release/kubernetes-manifests.yaml
- 几分钟后,运行以下命令来获取公共 IP 地址,以便在浏览器中访问相应的 Web 应用:
kubectl get service frontend-external | awk '{print $4}'
- 从上述命令的输出中复制 IP 地址,并将其粘贴到新的浏览器标签页中。
您应该会看到一个与下面类似的 Web 应用:

点击检查我的进度以验证您已完成的任务。
创建 GKE 集群并部署 Web 应用
任务 3. 使用 Gemini 找出安全配置错误
现在,您已经有了一个运行电子商务应用的 GKE 集群,您将确定在哪些方面可以利用 Gemini 来改善安全状况。
-
返回 Google Cloud 控制台中的标签页。
-
刷新 Google Cloud 控制台页面。
-
最小化 Cloud Shell 窗格。
-
点击 Google Cloud 控制台工具栏右上角的 Gemini 图标 (
)。
-
点击开始聊天。
-
输入以下提示:
对于 GKE 集群中运行的一组微服务,Google Cloud 中的哪些服务可以帮我确定需要改进的安全领域?
Gemini 的回复应该与下面的示例类似:
对于 GKE 集群中运行的一组微服务,Google Cloud 中有多项服务可以帮您确定需要改进的安全领域。其中包括:
Google Cloud 中有很多服务都能帮助您提高微服务的安全性,这些只是其中一小部分。使用这些服务可以帮助您保护数据,防止遭到未经授权的访问,还可以逐步改善安全状况。
在这种情况下,您决定从 Security Command Center 入手。
- 打开导航菜单并选择安全 > 风险概览.
面对多张讨论漏洞的可视化图表,您希望 Gemini 帮助您快速了解 Security Command Center 内的各个漏洞是如何分类的。
- 输入以下提示:
Security Command Center 是如何定义漏洞的?
Gemini 的回复应该类似于以下内容:
Security Command Center 将漏洞定义为软件程序中的缺陷或弱点,攻击者可利用漏洞来访问或破坏您的 Google Cloud 环境。
资料来源:https://cloud.google.com/security-command-center/docs/finding-classes
-
点击文档链接可查看详细的发现结果类别。
-
读完相关信息后,关闭标签页并返回 Google Cloud 控制台。
-
点击 Google Cloud 控制台边栏中的发现结果。
-
如需查看 GKE 集群的发现结果,请找到“快速过滤条件”部分,选中“资源类型”下的 Google 容器集群。
您应该会看到一些严重级别为“中”的发现结果。
- 点击集群 Secret 加密已停用发现结果。
在此发现结果面板的顶部,您应会看到一个标题为“说明”的部分,其中有一条摘要,内容与下面类似:
应用层 Secret 加密为敏感数据提供了一层额外的安全防护,例如用户定义的 Secret 和集群操作所需的 Secret(如服务账号密钥),此类 Secret 均存储在 etcd 中...
-
退出此信息面板。
-
接下来,点击权限过高的账号发现结果,查看说明中的摘要,内容与下面类似:
此 GKE 节点使用 Compute Engine 默认服务节点,在默认情况下具有广泛的访问权限,运行 Kubernetes Engine 集群可能不需要这么高的权限....
-
退出此信息面板。
-
最后,点击主节点授权网络已停用发现结果。您应该会看到如下所示的说明:
控制平面授权网络通过阻止指定的 IP 地址访问集群的控制平面,来提高容器集群的安全性...
- 退出此信息面板。
至此,您已经了解了您环境中的一些安全配置错误。接下来,您将利用 Gemini 的建议来修复错误。
任务 4. 修复安全配置错误
现在,您有机会分析多个领域,开始改进 GKE 集群的安全性。接下来,您将使用 Security Command Center 中 Gemini 提供的说明,修复“主节点授权网络已停用”这一发现结果。
-
打开导航菜单,依次选择 Kubernetes Engine > 集群。
-
点击之前创建的集群名称(“test”)。
-
向下滚动到控制平面网络部分。
-
点击铅笔图标,以修改控制平面网络。
-
选中启用授权网络旁边的复选框。
-
选中向授权网络添加 Google Cloud 外部 IP 地址下方的复选框。
-
点击保存更改。
-
点击边栏中的集群。
您会看到集群正在更新,“状态”部分有一个旋转轮或绿色半圆图标。
-
在控制平面的网络政策更新期间,从 Google Cloud 控制台工具栏打开 Gemini。
-
输入以下提示:
控制平面授权网络如何在 GKE 中运行?
Gemini 的回复应该类似于以下内容:
控制平面授权网络允许您限制对 GKE 集群控制平面的访问权限。默认情况下,控制平面可从任何地址访问。不过,您可以添加一个或多个授权网络,以仅允许访问这些网络。
如需添加授权网络,请访问 Google Cloud 控制台中的 Google Kubernetes Engine 页面。点击要修改的集群的名称。在“网络”下的“控制平面授权网络”字段中,点击“修改控制平面授权网络”…
更新后的控制平面政策可能需要几分钟才能生效。
- 一旦在集群旁边的状态列中看到绿色对勾标记,即表示已成功更新集群配置。
点击检查我的进度以验证您已完成的任务。
修复安全配置错误
结束实验
完成实验后,请点击结束实验。Qwiklabs 会移除您使用过的资源并为您清理帐号。
系统会提示您为实验体验评分。请选择相应的评分星级,输入评论,然后点击提交。
星级的含义如下:
- 1 颗星 = 非常不满意
- 2 颗星 = 不满意
- 3 颗星 = 一般
- 4 颗星 = 满意
- 5 颗星 = 非常满意
如果您不想提供反馈,可以关闭该对话框。
如果要留言反馈、提出建议或做出更正,请使用支持标签页。
版权所有 2024 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名称和产品名称可能是其各自相关公司的商标。