我用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相关的权限,但是它仍然不起作用。任何想法
答案 0 :(得分:3)
这不是真正的直观或逻辑,因为Firestore没有权限或角色。
不幸的是,我花了很长时间才弄清楚。希望对其他人有帮助!
答案 1 :(得分:1)
尝试使用所需的与Firestore相关的权限创建一个新的服务帐户,并在新创建的环境中使用该帐户。 https://cloud.google.com/composer/docs/how-to/access-control
其他调试思路:*尝试在Composer环境中ssh-入Kubernetes worker并运行命令。 *您的项目是否启用了Firestore API?
答案 2 :(得分:0)
可能是您没有特定项目的权限。
我遇到的错误是:PERMISSION_DENIED: Caller does not have required permission to use project project:random-id-11111.
解决问题的方法是先运行gcloud config set project 'the-right-project-id'
,然后运行实际的gcloud
命令。
答案 3 :(得分:0)
类似于Roy的回答,对我来说,问题是gcloud
被设置为另一个项目。
gcloud config list
gcloud项目列表
gcloud配置设置项目'foo-project'
答案 4 :(得分:0)
您需要首先将项目设置为所有者 gcloud config设置项目project-id 您可以通过单击gcloud控制台找到您的项目ID,该项目ID将出现在弹出的project-name-somerandomnumbers
中。答案 5 :(得分:0)
我认为您需要Cloud Datastore导入导出访问。按照当前的当前Google Cloud平台布局,执行以下步骤。
https://console.cloud.google.com>左抽屉> IAM和管理员>针对用户-编辑图标>添加其他角色>数据存储> Cloud Datastore导入和导出>保存
答案 6 :(得分:0)
将firebase管理员角色授予服务正在使用的默认服务帐户。
将所有者角色添加到服务帐户似乎对于仅进行备份有太多特权。
答案 7 :(得分:0)
我今天被抓住了。问题是我已经在IAM设置中正确设置了服务帐户,但是没有意识到已经将邀请发送到了我需要接受的电子邮件地址。我接受邀请后立即工作。
答案 8 :(得分:0)