15

我用 BashOperator 实现了一些任务。带有“gsutil rm”和“gsutil cp”的效果很好。但是带有“gcloud alpha firestore export”的会生成此错误:

{bash_operator.py:101} INFO - ERROR: (gcloud.alpha.firestore.export) PERMISSION_DENIED: The caller does not have permission

该命令本身在 gcloud shell 中运行良好。我试图为 Composer 使用的服务帐户提供一些与 Firestore 相关的权限,但它仍然不起作用。任何的想法

4

9 回答 9

9

可能是您没有特定项目的权限。

我得到的错误是:PERMISSION_DENIED: Caller does not have required permission to use project project:random-id-11111.

我解决它的方法是先运行gcloud config set project 'the-right-project-id'然后再执行实际gcloud命令。

于 2019-05-23T16:29:39.673 回答
5

我认为您需要 Cloud Datastore Import Export 访问权限。以下是按照当前 Google Cloud 平台布局的步骤。

https://console.cloud.google.com > 左侧抽屉 > IAM 和管理员 > 针对用户 - 编辑图标 > 添加另一个角色 > 数据存储 > 云数据存储导入和导出 > 保存

于 2019-09-10T08:03:29.847 回答
3

尝试使用所需的 Firestore 相关权限创建一个新服务帐户,并在新创建的环境中使用该服务帐户。https://cloud.google.com/composer/docs/how-to/access-control

其他调试想法: * 尝试 ssh-ing 到 Composer 环境中的 Kubernetes 工作人员并运行命令。*您的项目是否启用了 Firestore API?

于 2018-09-10T21:19:20.883 回答
2
  1. 打开https://console.cloud.google.com/iam-admin/iam
  2. 找到您用于备份的服务帐户
  3. Owner 角色添加到服务帐号

这不是很直观或逻辑,因为 Firestore 没有权限或角色。

不幸的是,我花了很长时间才弄清楚。我希望它可以帮助别人!

于 2018-09-26T18:13:31.813 回答
1

与罗伊的回答类似,对我来说,问题gcloud是设置为不同的项目。

检查它设置为哪个项目

gcloud config list

列出您有权访问的项目

gcloud 项目列表

设置正确的项目

gcloud 配置设置项目'foo-project'

于 2019-07-12T19:14:01.053 回答
1

将 firebase 管理员角色授予您的服务正在使用的默认服务帐户。

将 Owner 角色添加到服务帐户似乎对仅进行备份具有太多特权。

于 2020-06-24T05:07:47.783 回答
0

您需要首先在您的所有者位置设置您的项目 gcloud config set project project-id 您可以通过单击 gcloud 控制台找到您的项目 ID,它将在 project-name-somerandomnumbers 的弹出窗口中

于 2019-08-20T09:21:22.740 回答
0

我今天被抓住了。问题是我在 IAM 设置中正确设置了我的服务帐户,但没有意识到邀请已发送到我需要接受的那个电子邮件地址。接受邀请后立即工作。

于 2020-07-20T02:09:38.813 回答
0

在 IAM & Admin 中确保您的 @appspot.gserviceaccount.com 必须有权访问 3 件事:

  • 云功能管理员
  • Cloud Datastore 导入导出管理员
  • 存储管理员

在此处输入图像描述

于 2020-11-20T15:38:04.077 回答