web-dev-qa-db-ja.com

クラウドコンポーザー:「PERMISSION_DENIED:呼び出し元に許可がありません」

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関連の権限をいくつか与えようとしましたが、それでも機能しません。

5
kee

必要なFirestore関連の権限を持つ新しいサービスアカウントを作成し、新しく作成した環境でそれを使用してみてください。 https://cloud.google.com/composer/docs/how-to/access-control

その他のデバッグのアイデア:* Composer環境でKubernetesワーカーにssh-ingし、コマンドを実行します。* Firestore APIはプロジェクトで有効になっていますか?

3
Crystal Qian

特定のprojectに対する権限がない可能性があります。

私が得ていたエラーは:PERMISSION_DENIED: Caller does not have required permission to use project project:random-id-11111.

私が解決した方法は、gcloud config set project 'the-right-project-id'その後、実際のgcloudコマンド。

5
Roy Shilkrot
  1. 開く https://console.cloud.google.com/iam-admin/iam
  2. バックアップに使用しているサービスアカウントを見つける
  3. サービスアカウントに所有者ロールを追加します

Firestoreには権限や役割がないため、実際には直感的でも論理的でもありません。

残念ながら、それを理解するのに時間がかかりました。他の人にも役立つことを願っています!

3
Gambo

ロイの答えと同様に、私にとっての問題は、gcloudが別のプロジェクトに設定されていたことです。

設定されているプロジェクトを確認する

gcloud config list

アクセスできるプロジェクトのリスト

gcloudプロジェクトリスト

正しいプロジェクトを設定する

gcloud config set project 'foo-project'

0
Julian Orinyol

所有者であるプロジェクトを最初に設定する必要がありますgcloud config set project project-id gcloud consoleをクリックしてプロジェクトIDを見つけることができます。

0
Sakshi Chauhan

Cloud Datastore Import Exportアクセスが必要だと思います。以下は、現在のGoogle Cloudプラットフォームの現在のレイアウトによる手順です。

https://console.cloud.google.com >左の引き出し> IAMと管理者>ユーザーに対して-編集アイコン>別のロールを追加>データストア>クラウドデータストアのインポートとエクスポート>保存

0
Sanket Patel