概览
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 的商标。其他所有公司名称和产品名称可能是其各自相关公司的商标。