arrow_back

探索 IAM (Azure)

登录 加入
访问 700 多个实验和课程

探索 IAM (Azure)

实验 1 小时 universal_currency_alt 5 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

作为一名云专业人员,您或许已熟知 Azure 标识和访问管理 (IAM) 架构,并运用过以下某些最佳实践。对于 IAM,人们一般关心的问题有:

  • 管理资源访问权限的最佳方法是什么?
  • 如何管理访问权限,使用户只能访问其真正需要的资源?

在 Azure 中,您的组织可以综合使用 IAM、Azure Active Directory (Azure AD)、用户和角色以及附带的政策来控制对不同 Azure 账号的访问权限。

Azure AD 是一项多租户云目录和身份管理服务,提供 Azure 资源的访问权限控制和管理机制。

Azure 示意图

现在,您将探索如何在 Google Cloud 中实施 IAM 控制。

概览

在本实验中,您将学习如何使用 Service Account User 角色,以及如何授予角色。

目标

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

  • 使用 IAM 实施访问权限控制
  • 限制对特定功能或资源的访问权限
  • 使用 Service Account User 角色

实验设置

对于每个实验,您都会免费获得一个新的 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 产品和服务的菜单,请点击左上角的导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标

任务 1. 设置两位用户

以第一位用户的身份登录 Cloud 控制台

  1. 本实验提供了两个用户名,您可在连接详情对话框中找到它们。在一个无痕式窗口中照常登录 Cloud 控制台,使用 Qwiklabs 中提供的用户名 1。请注意,两个用户名使用的密码是相同的。

以第二位用户的身份登录 Cloud 控制台

  1. 在无痕式窗口中打开另一个标签页。
  2. 访问 console.cloud.google.com
  3. 点击屏幕右上角的用户图标,然后点击添加账号
  4. 使用 Qwiklabs 中提供的用户名 2 登录 Cloud 控制台。
注意:如果您在进行本实验的过程中退出用户名 1 账号,Qwiklabs 会删除用户名 2 账号。因此请保持用户名 1 的登录状态,直至您完成使用用户名 2 执行的任务。

任务 2. 浏览 IAM 控制台

确保您所在的是用户名 1 的 Cloud 控制台对应的标签页。

前往 IAM 控制台并浏览角色

  1. 导航菜单 (“导航菜单”图标) 中,依次点击 IAM 和管理 > IAM
  2. 点击授予访问权限,然后在下拉菜单中浏览角色。 浏览角色菜单,留意与各资源关联的不同角色。
  3. 点击取消
  4. 切换至用户名 2 的 Cloud 控制台对应的标签页。
  5. 导航菜单 (“导航菜单”图标) 中,依次点击 IAM 和管理 > IAM。在 Qwiklabs 的 连接详情对话框中浏览列表,寻找包含与用户名 1用户名 2 相关联的名称的行。
注意用户名 2 目前能访问项目,但没有 Project Owner 角色,因此无法修改任何角色。将光标悬停在用户名 2 的铅笔图标上方可确认这一点。
  1. 切换回用户名 1 的 Cloud 控制台对应的标签页。
  2. 在 IAM 控制台中,点击用户名 2 对应的铅笔图标。用户名 2 目前具有 Viewer 角色。切勿更改这个项目角色。
  3. 点击取消

任务 3. 准备资源以进行访问权限测试

创建存储桶并上传示例文件

  1. 如果您目前未在用户名 1 的 Cloud 控制台对应的标签页上,请切换到此标签页。

  2. 导航菜单 (“导航菜单”图标) 中,依次点击 Cloud Storage > 存储桶

  3. 点击创建存储桶

  4. 指定以下信息,将其他设置保留默认值:

属性 值(按照说明输入值或选择选项)
名称 输入全局唯一的名称
位置类型 多区域
注意:请记下存储桶名称:稍后的步骤中需要用到此信息,届时我们会称之为 [您的存储桶名称]
  1. 点击创建
注意:如果您看到系统将禁止公开访问提示,并且禁止公开访问此存储桶选项处于选中状态,请点击确认
  1. 点击上传文件
  2. 上传您本地机器上的任意示例文件。
  3. 文件上传完毕后,点击包含该文件的行末尾处的三个点,然后点击重命名
  4. 将该文件重命名为 sample.txt,然后点击重命名

点击“检查我的进度”,验证已完成以下目标: 创建存储桶并上传示例文件

验证 Project Viewer 访问权限

  1. 切换至用户名 2 的 Cloud 控制台对应的标签页。

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

  3. 验证用户名 2 可以查看存储桶。

任务 4. 移除项目访问权限

移除“用户名 2”的 Project Viewer 访问权限

  1. 切换至用户名 1 的 Cloud 控制台对应的标签页。
  2. 导航菜单 (“导航菜单”图标) 中,依次点击 IAM 和管理 > IAM
  3. 选择用户名 2,点击移除访问权限
注意:请确认您移除的是用户名 2 的访问权限。如果您不小心移除了用户名 1 的访问权限,则必须重新开始本实验!
  1. 点击确认进行确认。

您会发现该用户已从列表中消失!该用户现在已经失去了访问权限。

点击“检查我的进度”,验证已完成以下目标: 移除项目访问权限

验证“用户名 2”已失去访问权限

  1. 切换至用户名 2 的 Cloud 控制台对应的标签页。

  2. 导航菜单 (“导航菜单”图标) 中,依次点击 Cloud 概览 > 信息中心

  3. 导航菜单 (“导航菜单”图标) 中,依次点击 Cloud Storage > 存储桶。 此时会显示一个错误。如果未看到错误,请刷新页面。用户名 2 仍有一个 Google Cloud 账号,但无权访问项目。

任务 5. 添加存储访问权限

添加存储权限

  1. 从 Qwiklabs 的连接详情对话框中复制用户名 2 的值。
  2. 切换至用户名 1 的 Cloud 控制台对应的标签页。
  3. 导航菜单 (“导航菜单”图标) 中,依次点击 IAM 和管理 > IAM
  4. 点击授予访问权限以添加用户。
  5. 将您从 Qwiklabs 的连接详情对话框中复制的用户名 2 值粘贴到新的主账号中。
  6. 选择角色中,依次选择 Cloud Storage > Storage Object Viewer
  7. 点击保存

点击“检查我的进度”,验证已完成以下目标: 添加存储权限

验证“用户名 2”已失去访问权限

  1. 切换至用户名 2 的 Cloud 控制台对应的标签页。
注意用户名 2 没有 Project Viewer 角色,因此该用户无法在控制台中查看该项目,也无法查看其任何资源。不过,此用户对 Cloud Storage 拥有特定的访问权限。
  1. 如需启动 Cloud Shell,请点击激活 Cloud Shell (“激活 Cloud Shell”图标)。如果看到提示,点击继续
  2. 如需查看您先前创建的存储桶的内容,请运行以下命令,并将 [您的存储桶] 替换为之前创建的 Cloud Storage 存储桶的唯一名称:
gcloud storage ls gs://[您的存储桶名称]

如您所见,用户名 2 对 Cloud Storage 具有有限的访问权限。

  1. 关闭用户名 2 的 Cloud 控制台对应的标签页。本实验的其余部分将在用户名 1 的 Cloud 控制台对应的标签页中执行。
  2. 切换至用户名 1 的 Cloud 控制台对应的标签页。

任务 6. 设置 Service Account User 角色

在本实验的这一部分,您将为服务账号分配较小的权限范围,并了解如何使用 Service Account User 角色。

创建服务账号

  1. 导航菜单 (“导航菜单”图标) 中,依次点击 IAM 和管理 > 服务账号
  2. 点击 + 创建服务账号
  3. 服务账号名称指定为 read-bucket-objects
  4. 点击创建并继续
  5. 选择角色中,依次选择 Cloud Storage > Storage Object Viewer
  6. 点击继续
  7. 点击完成

向服务账号添加用户

  1. 选择 read-bucket-objects 服务账号。
  2. 点击服务账号名称右侧的三个点。随后点击管理权限
注意:您将为该用户授予 Service Account User 角色,这样该用户便可在自己有权访问的虚拟机中使用服务账号。您可以为特定用户、群组或网域执行此活动。出于培训目的,您将向一家名为 Altostrat.com 的公司中的每位员工授予 Service Account User 角色。Altostrat.com 是一家用于演示和培训的虚构公司。
  1. 点击授予访问权限按钮。指定以下信息,将其他设置保留默认值:
属性 值(按照说明输入值或选择选项)
新的主账号 altostrat.com
角色 服务账号 > Service Account User
  1. 点击保存

授予 Compute Engine 访问权限

现在,您要为 Altostrat 的整个组织授予 Compute Engine Admin 角色。

  1. 导航菜单 (“导航菜单”图标) 中,依次点击 IAM 和管理 > IAM
  2. 点击授予访问权限
  3. 指定以下信息,将其他设置保留默认值:
属性 值(按照说明输入值或选择选项)
新的主账号 altostrat.com
选择角色 Compute Engine > Compute Instance Admin (v1)
  1. 点击保存
注意:此步骤用来练习针对特定用户执行的活动。 此操作会向用户授予针对一个虚拟机实例的有限能力。之后,用户将可通过 SSH 连接到虚拟机,并执行一些管理任务。

使用具有 Service Account User 角色的账号创建一个虚拟机

  1. 导航菜单 (“导航菜单”图标) 中,点击 Compute Engine > 虚拟机实例
  2. 点击创建实例
  3. 指定以下信息,将其他设置保留默认值:
属性 值(按照说明输入值或选择选项)
名称 demoiam
区域
可用区
系列 E2
机器类型 e2-micro(2 个 vCPU,1 GB 内存)
启动磁盘 Debian GNU/Linux 11 (bullseye)
服务账号 read-bucket-objects
访问权限范围 针对每个 API 设置访问权限
存储 读写
  1. 点击创建

点击“检查我的进度”,验证已完成以下目标: 设置 Service Account User 并创建一个虚拟机

任务 7. 探索 Service Account User 角色

此时,您可以测试该用户的访问权限,只需使用此用户通过 SSH 连接到虚拟机并执行后续操作即可。作为项目所有者,您已拥有 Service Account User 角色。因此您可以通过 Cloud 控制台使用 SSH 访问虚拟机,从而模拟该用户将会获得的体验。

您执行的操作和获得的结果与目标用户的体验完全相同。

使用 Service Account User 角色

  1. 对于 demoiam,点击 SSH 以启动一个终端并进行连接。
  2. 运行以下命令:
gcloud compute instances list

结果(输出示例)

ERROR: (gcloud.compute.instances.list) Some requests did not succeed: - Required 'compute.zones.list' permission for 'projects/qwiklabs-gcp'

发生了什么情况?这是为什么?

  1. 从您先前创建的存储桶中复制 sample.txt 文件。请注意,下面的命令末尾处包含一个英文句点。它表示复制到“此位置”:
gcloud storage cp gs://[您的存储桶名称]/sample.txt .

结果(输出示例)

Copying gs://train-test-iam/sample.txt... / [1 files][ 28.0 B/ 28.0 B] Operation completed over 1 objects/28.0 B.
  1. 如需重命名您复制的文件,请运行以下命令:
mv sample.txt sample2.txt
  1. 如需将重命名的文件复制回存储桶,请运行以下命令:
gcloud storage cp sample2.txt gs://[您的存储桶名称]

结果(输出示例)

AccessDeniedException: 403 Caller does not have storage.objects.create access to bucket train-test-iam. 注意:发生了什么情况? 您通过 SSH 连接到了实例,因此您可以充当服务账号,实际上可获得相同的权限。 启动实例的服务账号具有 Storage Viewer 角色,这允许该账号从项目的 GCS 存储桶下载对象。 若要列出一个项目内的实例,您需要授予 compute.instance.list 权限。该服务账号没有此权限,因此您无法列出项目内运行的实例。 不过该服务账号确实拥有对象下载权限,可以从存储桶下载对象。它没有对象写入权限,因此您收到了 403 访问遭拒消息。
  1. 导航菜单 (“导航菜单”图标) 中,依次点击 IAM 和管理 > IAM
  2. 浏览列表,找到包含 read-bucket-objects 的行,点击铅笔图标。read-bucket-objects 目前具有 Storage Object Viewer 角色。在角色处依次选择 Cloud Storage > Storage Object Creator,以更改角色。
  3. 点击保存
  4. 返回到 demoiam 的 SSH 窗口
  5. 如需将重命名的文件复制回存储桶,请运行以下命令:
gcloud storage cp sample2.txt gs://[您的存储桶名称]

这次该命令可以成功执行,因为该服务账号拥有正确的权限。

任务 8. 回顾

在此实验中,您练习了授予和撤消 IAM 角色的步骤,首先是为用户名 2 这个用户授予和撤消了角色,然后为 Service Account User 账户授予了 IAM 角色。您可以分配 Service Account User 凭据,将其“融入”虚拟机,从而创建特定用途的授权堡垒主机。

总结

无论是在 Azure 中还是在 Google Cloud 中,IAM 都是一项可帮助您安全地控制对不同服务和资源的访问权限的 Web 服务。您可以使用此工具来管理身份验证(谁可以访问?)和授权(他们可以执行哪些操作?)。

您还可以创建和管理不同的主体,例如:

  • 用户
  • 角色
  • 政策

Google Cloud IAM 和 Azure AD 在运作方式上有很多相似之处。两个系统均提供基于角色的访问控制、多重身份验证和用户管理等众多功能,这些功能可让您轻松地保护云基础设施的安全。在这两个系统中,您还可以将管理任务委托给他人,也能通过精细的政策控制对资源的访问权限。

两个系统之间也有一些不同之处。Google Cloud IAM 使用直观而简单的界面,而 Azure AD 则包含一些独特的功能,比如条件式访问权限,以及与其他应用集成的单点登录机制。

结束实验

完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。

系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交

星级数的含义如下:

  • 1 颗星 = 非常不满意
  • 2 颗星 = 不满意
  • 3 颗星 = 一般
  • 4 颗星 = 满意
  • 5 颗星 = 非常满意

如果您不想提供反馈,可以关闭该对话框。

如果要留言反馈、提出建议或做出更正,请使用支持标签页。

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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