1

Google Cloud サービス アカウントを非インタラクティブにアクティブ化できません。いくつかのSOスレッドを読んだ後でも。

  1. サービス アカウントの作成

gcloud iam service-accounts create my-awesome-acct ...

  1. サービス アカウントの役割の作成

gcloud iam roles create AwesomeRole \ --permissions storage.objects.create,storage.objects.delete ....

  1. キーの生成

gcloud iam service-accounts keys create ~/awesome-key.json ...

  1. サービス アカウントの有効化

gcloud auth activate-service-account my-awesome-acct ~/awesome-key.json

私の問題

上記の手順を実行した後でも、gsutil ...コマンドを実行すると、まだエラー メッセージが表示されます。

$ gsutil cp my_file.tgz gs://my_bucket

  Copying file://my_file.tgz [Content-Type=application/x-tar]...
  Your credentials are invalid. Please run

  $ gcloud auth login

これを機能させる唯一の方法は、実際に実行gcloud auth loginして Web ブラウザーで認証を許可することです。

私は何か間違ったことをしていますか?それとも、これはすべてのサービス アカウントを対象としていますか?

4

1 に答える 1

1

ここで私自身の質問に答えます。

私の解決策

を使用する代わりにgsutil、Google Cloud クライアント ライブラリを使用することにしました。

がしたこと

gsutil cp my_file.tgz gs://my_bucket

私がしていること:

from gcloud import storage

# key file is located in my current directory
os.environ.get('GOOGLE_APPLICATION_CREDENTIALS', 'gcloud-auth.json')

client = storage.Client()
bucket = client.get_bucket("my_bucket")
blob = bucket.blob("my_file.tgz")
blob.upload_from_filename("my_file.tgz")

後知恵 20/20

上記のソリューションを機能させた後、環境変数も設定した場合、私もGOOGLE_APPLICATION_CREDENTIALS機能gsutilするはずです。(未テスト)

于 2018-07-16T15:28:19.010 に答える