1

Compute Engineインスタンスからバケットにファイルを書き込もうとしています(両方とも同じプロジェクトに属しています)。GSResponseError:GSResponseError:403バケットへの書き込み中に禁止されています

サービスアカウントを使用して、ここで説明した手順Python Exampleに従っています。

しかし、それは次のエラー与えている:

GSResponseError: GSResponseError: 403 Forbidden 
[Fri Apr 01 07:12:11 2016] [error] <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message><Details>Provided scope(s) are not authorized</Details></Error> 

をしかし、私は同じ資格情報、コードやバケツを使って自分のローカルマシンからバケットに書き込みをしようとすると、それはファイルを書き込みます。

サービスアカウントに可能なすべての権限を付与して、バケットにアカウントを追加しようとしました。

+0

あなたがdevstorage.full_controlするストレージスコープを設定しましたか? – jterrace

+0

@jterrace私はそれをやっていることを覚えていない、後でこれを行うことができますか? – ofnowhere

+1

実行時にスコープを変更することはできません。 VM作成時にのみ設定できます。 – jterrace

答えて

1

これに最も一般的な原因は、GCEインスタンスが必要なクラウドストレージスコープなしで作成されたことです。

現在のスコープについて読むことができます。 https://cloud.google.com/compute/docs/authentication#settingupinstances

具体的には、この場合には、インスタンスがhttps://www.googleapis.com/auth/devstorage.read_onlyで作成された、バケットの作成を許可しません。

現在利用可能なスコープの完全なリストを見ることができます:あなたはVMを作成したとき https://cloud.google.com/storage/docs/authentication#oauth-scopes

関連する問題