本页面记录了您必须应用于用户帐号的最低 IAM 权限,以便用户可以导入或导出 RDB 备份。如果您不想将广泛的 IAM 角色及其关联权限授予某个用户帐号,则应在此类场景中使用这些最低权限。
如果您需要同时启用导入和导出的简单权限,请对需要导入或导出的用户帐号应用 Cloud Memorystore Redis Admin 角色和 Storage Admin 角色。
导入和导出所需的最低权限
您必须将下面列出的权限添加到为用户帐号指定的自定义角色,以便以最低权限执行导入和导出操作。如需了解如何创建自定义角色,请参阅创建自定义角色。
此外,您还需要为实例的服务帐号创建另外一个自定义角色,并将其应用于 Cloud Storage 存储分区的存储分区级层权限。
如需查找实例的服务帐号,请运行以下命令并记下 persistenceIamIdentity
下列出的服务帐号:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
该服务帐号将采用以下格式:“xxxxxxxxxxxx-compute@developer.gserviceaccount.com”。
服务帐号所需的权限
请注意,您只需在存储分区级层(而不是整个项目范围内)授予服务帐号的存储权限。如需查看说明,请参阅将成员添加到存储分区级层政策中。
为您的服务帐号授予存储分区层级权限后,您可以忽略如下消息:“Memorystore 无法验证服务帐号 xxxxxxxxxxxx-compute@developer.gserviceaccount.com 是否具有导入/导出所需的权限。如需有关验证或更新权限的帮助,请与项目管理员联系。如需了解所需的权限,请参阅导入/导出权限文档。”如果您将下面列出的权限应用于用户帐号和服务帐号的自定义角色,则导入/导出将成功。
服务帐户的自定义角色的权限 | 使用 gcloud 导入 | 使用 gcloud 导出 | 使用 Cloud Console 导入 | 使用 Cloud Console 导出 |
---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | 可选。 (授予覆盖现有 RDB 文件的权限)。 |
X | 可选。 (授予覆盖现有 RDB 文件的权限)。 |
用户帐号所需的权限
用户帐号的自定义角色的权限 | 使用 gcloud 导入 | 使用 gcloud 导出 | 使用 Cloud Console 导入 | 使用 Cloud Console 导出 |
---|---|---|---|---|
resourcemanager.projects.get |
X | X | ✓ | ✓ |
redis.instances.get |
✓ | ✓ | ✓ | ✓ |
redis.instances.list |
X | X | X | X |
redis.instances.import |
✓ | X | ✓ | X |
redis.instances.export |
X | ✓ | X | ✓ |
redis.operations.get |
X | X | ✓ | ✓ |
redis.operations.list |
X | X | ✓ | ✓ |
redis.operations.cancel |
✓ | ✓ | ✓ | ✓ |
storage.buckets.list |
X | X | ✓ | ✓ |
storage.buckets.get |
X | X | ✓ | ✓ |
storage.objects.list |
X | X | ✓ | ✓ |
storage.objects.get |
X | X | ✓ | ✓ |
后续步骤
- 如需详细了解导入和导出,请参阅导入和导出概览。
- 按照将数据导入 Redis 实例中的导入步骤执行操作。
- 按照从 Redis 实例导出数据中的导出步骤执行操作。