使用 IAM 授予对项目的访问权限

1. 准备工作

本 Codelab 将向您介绍如何设置 OAuth 客户端,以及如何使用 Google Cloud 控制台向项目的主账号授予 Identity and Access Management (IAM) 角色。

前提条件

  • 能够浏览 Cloud 控制台。

学习内容

  • 如何将应用设置为 OAuth 客户端。
  • 如何使用 Identity and Access Management (IAM) 限制对应用的访问权限。

所需条件

2. 创建 Google Cloud 项目并设置结算账号

  1. 登录 Cloud 控制台
  1. 前往 项目选择器 页面。
  2. 点击 Create project
  3. 为项目命名,然后记下生成的项目 ID。
  4. 根据需要修改其他字段。
  1. 点击创建
  2. 如果您尚未在 Cloud 控制台中启用结算功能,请启用该功能,以便使用 Google Cloud 资源。

虽然此 Codelab 应该不会产生太多的费用(如果有费用的话),但请按照清理 部分中的说明关闭资源,以免产生超出此 Codelab 范围的费用。请注意,Google Cloud 的新用户有资格获享 300 美元的免费试用

3. 使用 IAM 授予访问权限

借助 IAM,您可以向用户授予对项目和资源的基于角色的访问权限。在本部分中,您将使用 IAM 向用户授予对项目的几个角色的访问权限。

启用 IAM 和 Resource Manager API

  1. 在 Cloud 控制台的导航菜单中,点击 API 和服务

Cloud 控制台中的导航菜单,其中显示了“API 和服务”选项。

  1. 选择启用 API 和服务

“启用 API 和服务”选项

  1. 搜索 IAM API,然后启用该 API。
  2. 搜索 Resource Manager API,然后启用该 API。

使用 IAM 授予角色

  1. 前往 IAM 页面

您的项目名称会显示在项目选择器中。项目选择器会显示您所在的项目。

显示项目名称选择器的 IAM 页面。

如果您没有看到项目名称,请使用项目选择器选择您的项目。

  1. 点击添加
  2. 输入主账号的电子邮件地址。
  3. 选择角色 下拉菜单中,选择日志记录 > Logs Viewer > 保存

显示 IAM 页面的

  1. 验证主账号和角色是否在 IAM 页面中列出。

大功告成,您已向主账号授予了 Identity and Access Management 角色!

观察 Identity and Access Management 角色的影响

在本部分中,您将验证您为其授予了角色的主账号能否访问预期的 Cloud 控制台页面:

  1. 将此网址发送给您为其授予了角色的主账号:

https://console.cloud.google.com/logs?project=PROJECT_ID

  1. 验证该主账号是否能够访问和查看该网址。

主账号无法访问尚未获得相应角色的 Cloud 控制台页面。相反,他们会看到如下示例所示的错误消息:

You don't have permissions to view logs.

向同一正文授予其他角色

  1. 在 Cloud 控制台中,前往 IAM 页面
  2. 找到您要向其授予另一个角色的正文,然后点击修改 d489bd059474ae59.png
  3. 修改权限 窗格中,点击添加其他角色

“修改权限”窗格,其中显示了“添加其他角色”选项。

  1. 选择角色 下拉菜单中,点击项目 > Viewer > 保存

“修改权限”窗格,显示角色选项。

现在,该主账号具有第二个 Identity and Access Management 角色了。

撤消授予主账号的角色

  1. 找到要撤消其角色的主账号,然后点击 d489bd059474ae59.png修改
  2. 修改权限 窗格中,点击您之前授予该主账号的两个角色旁边的 17033682fbdcca9c.png
  3. 点击保存

您已撤消该主账号的这两个角色。如果此人尝试查看之前有权访问的任何页面,都将看到错误消息。

4. 清理

为避免因本 Codelab 中使用的资源导致您的 Google Cloud 账号产生费用,请执行以下操作:

  1. 在 Cloud 控制台中,前往 管理资源 页面。
  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关停 以删除项目。

5. 恭喜

恭喜!您已了解如何设置 OAuth 客户端,以及如何使用 Cloud 控制台向项目的正文授予 Identity and Access Management 角色。