使用 IAM 进行访问权限控制

本页面介绍如何使用 Identity and Access Management (IAM) 控制 Memorystore for Memcached 的项目访问和权限。

概览

借助 IAM,您可以精细地控制对特定 Google Cloud 资源的访问权限,还可以防止意外访问这些资源。如需详细了解角色和权限,请参阅 IAM 文档

Memorystore for Memcached 提供了一组预定义角色,旨在帮您轻松控制对 Memcached 资源的访问权限。如果预定义角色未提供您所需的权限,您还可以创建自己的自定义角色。此外,旧版基本角色(Editor、Viewer 和 Owner)仍可供您使用,但这些角色提供的控制不如 Memorystore for Memcached 角色那样精细。具体而言,基本角色提供的是对整个 Google Cloud 资源的访问权限,而不仅仅是对 Memorystore for Memcached 的访问权限。如需详细了解基本角色,请参阅基本角色

权限和角色

本部分汇总了 Memorystore for Memcached 支持的各种权限和角色。

预定义角色

Memorystore for Memcached 提供了预定义角色,可供您用来为主账号提供更精细的权限。您授予主账号的角色决定了该主账号可以执行的操作。主账号可以是个人、群组或服务账号

您可以为同一主账号授予多个角色,并且可以随时更改这些角色。

范围越广的角色定义的权限范围越窄。例如,Memcached Editor 角色不但拥有 Memcached Viewer 角色的所有权限,而且还添加了 Memcached Editor 角色的若干权限。同样,Memcached Admin 角色不但拥有 Memcached Editor 角色的所有权限,而且还添加了一些专有权限。

基本角色(Owner、Editor、Viewer)提供对整个 Google Cloud 的权限。Memorystore for Memcached 专有角色仅提供 Memorystore for Memcached 权限,但以下 Google Cloud 权限除外,因为这些是 Google Cloud 常规使用所需的权限:

resourcemanager.projects.get
resourcemanager.projects.list

下表列出了适用于 Memorystore for Memcached 的预定义角色及其所含的 Memorystore for Memcached 权限:

角色 名称 Memcached 权限 说明

roles/owner

Owner

memcache.*

对所有 Google Cloud 资源拥有完整访问权限和控制权;可以管理用户访问权限

roles/editor

Editor 除以下权限以外的所有 memcache 权限: *.getIamPolicy.setIamPolicy 对所有 Google Cloud 和 Memcached 资源拥有读写权限(拥有完全控制权,但不能修改权限)

roles/viewer

Viewer

memcache.*.get memcache.*.list

对所有 Google Cloud 资源(包括 Memcached 资源)拥有只读权限

roles/memcache.admin

Memcached Admin

memcache.*

对所有 Memorystore for Memcached 资源拥有完全控制权。

roles/memcache.editor

Memcached Editor 除以下权限以外的所有 memcache 权限

memcache.instances.create memcache.instances.delete memcache.instances.applySoftwareUpdate memcache.instances.upgrade

管理 Memorystore for Memcached 实例。无法创建或删除实例。

roles/memcache.viewer

Memcached Viewer 除以下权限以外的所有 memcache 权限

memcache.instances.create memcache.instances.delete memcache.instances.update memcache.operations.delete memcache.instances.applyParameters memcache.instances.updateParameters memcache.instances.applySoftwareUpdate memcache.instances.upgrade

拥有对所有 Memorystore for Memcached 资源的只读权限。

权限及其对应的角色

下表列出了 Memorystore for Memcached 支持的权限以及拥有这些权限的 Memorystore for Memcached 角色:

权限 Memcached 角色 基本角色

memcache.instances.list

Memcached Admin
Memcached Editor
Memcached Viewer
Reader

memcache.instances.get

Memcached Admin
Memcached Editor
Memcached Viewer
Reader

memcache.instances.create

Memcached Admin Writer

memcache.instances.update

Memcached Admin
Memcached Editor
Writer

memcache.instances.delete

Memcached Admin Writer

memcache.instances.applyParameters

Memcached Admin
Memcached Editor
Writer

memcache.instances.updateParameters

Memcached Admin
Memcached Editor
Writer

memcache.instances.applySoftwareUpdate

Memcached Admin
Memcached Editor
写入者

memcache.instances.upgrade

Memcached Admin 写入者

memcache.locations.list

Memcached Admin
Memcached Editor
Memcached Viewer
Reader

memcache.locations.get

Memcached Admin
Memcached Editor
Memcached Viewer
Reader

memcache.operations.list

Memcached Admin
Memcached Editor
Memcached Viewer
Reader

memcache.operations.get

Memcached Admin
Memcached Editor
Memcached Viewer
Reader

memcache.operations.delete

Memcached Admin
Memcached Editor
Writer

自定义角色

如果预定义角色不能满足您的独特业务需求,您可以使用指定的权限定义自己的自定义角色。在为 Memorystore for Memcached 创建自定义角色时,请务必同时包含 resourcemanager.projects.getresourcemanager.projects.list。如需了解详情,请参阅权限依赖项

Google Cloud 控制台中常见任务所需的权限

为了让用户能够通过 Google Cloud 控制台使用 Memorystore for Memcached,用户的角色必须包含 resourcemanager.projects.getresourcemanager.projects.list 权限。

下表提供了 Google Cloud 控制台中一些常见任务所需的其他权限:

任务 其他必需权限
显示实例列表页面

memcache.instances.get
memcache.instances.list

创建和修改实例

memcache.instances.create
memcache.instances.get
memcache.instances.list
memcache.instances.update
memcache.instances.applyParameters
memcache.instances.updateParameters
memcache.instances.applySoftwareUpdate
compute.networks.list

删除实例

memcache.instances.delete
memcache.instances.get
memcache.instances.list

使用 Cloud Shell 连接到实例

memcache.instances.get
memcache.instances.list
memcache.instances.update

升级实例的 Memcached 版本

memcache.instances.upgrade

查看实例信息

memcache.instances.get
monitoring.timeSeries.list

gcloud 命令所需的权限

为了让用户能够通过 gcloud 命令使用 Memorystore for Memcached,用户的角色必须包含 resourcemanager.projects.getresourcemanager.projects.list 权限。

下表列出了调用 gcloud 命令的用户必须对各个 gcloud memcache 子命令拥有的权限:

命令 所需权限
gcloud memcache instances create

memcache.instances.get
memcache.instances.create

gcloud memcache instances delete

memcache.instances.delete

gcloud memcache instances update

memcache.instances.get
memcache.instances.update
memcache.instances.updateParameters

gcloud memcache instances upgrade

memcache.instances.upgrade

gcloud memcache instances list

memcache.instances.list

gcloud memcache instances describe

memcache.instances.get

gcloud memcache instances apply-parameters

memcache.instances.applyParameters

gcloud beta memcache instances apply-software-update

memcache.instances.applySoftwareUpdate

gcloud memcache operations list

memcache.operations.list

gcloud memcache operations describe

memcache.operations.get

gcloud memcache regions list

memcache.locations.list

gcloud memcache regions describe

memcache.locations.get

gcloud memcache zones list

memcache.locations.list

API 方法所需的权限

下表列出了用户在调用 Memorystore for Memcached API 中的每种方法或通过使用该 API 的 Google Cloud 工具(例如 Google Cloud 控制台或 gcloud 命令行工具)执行任务时必须具备的权限:

方法 所需权限

locations.get

memcache.locations.get

locations.list

memcache.locations.list

instances.create

memcache.instances.create

instances.delete

memcache.instances.delete

instances.get

memcache.instances.get

instances.upgrade

memcache.instances.upgrade

instances.list

memcache.instances.list

instances.patch

memcache.instances.update

instances.updateParameters

memcache.instances.updateParameters

instances.applyParameters

memcache.instances.applyParameters

instances.applySoftwareUpdate

memcache.instances.applySoftwareUpdate

operations.get

memcache.operations.get

operations.list

memcache.operations.list

维护政策权限

下表显示了管理 Memorystore for Memcached 的维护政策所需的权限。

所需权限 创建启用了维护政策的 Memorystore 实例 在现有 Memorystore 实例上创建或修改维护政策 查看维护政策设置 重新安排维护
memcache.instances.create X X X
memcache.instances.update X X X
memcache.instances.get X X X
memcache.instances.rescheduleMaintenance X X X

后续步骤