appengineウェブアプリケーション内からGoogle Cloud Storageにアクセスする際に認証に問題があります。私は、アプリケーションの既定の資格情報を使用します。たぶん誰かが私に助言することができます。gcloud:クラウドストレージ用appengineのデフォルトのアプリケーション認証情報(java)
私は、サービスアカウント「[email protected]」を持ったプロジェクトを持っています。
IAMのセクションでは、このプロジェクトのメンバーは、所有者がロールのyメンバーyygmail.com(自分のメールアドレス)のみです。
私は2つのCloud Storageバケットstaging.x.appspot.comとx.appspot.comを持っています。私はその権限を編集していません。
私はJavaで書かれたappengineウェブアプリを持っています。私は
mvn clean appengine:devserver
で開発用サーバを起動して
mvn clean appengine:update
で展開Mavenの依存関係
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>1.9.38</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-appengine</artifactId>
<version>0.4.0</version>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>gcloud-java</artifactId>
<version>0.2.3</version>
</dependency>
と
import com.google.cloud.AuthCredentials;
import com.google.cloud.storage.Storage;
AuthCredentials credentials=AuthCredentials.createApplicationDefaults();
Storage storage=StorageOptions.builder().authCredentials(credentials).build().service();
:そのコードから、私はこのようなクラウドストレージにアクセスしたいです
それだけで十分だと思った。
しかし、あるコンピュータではdevserverで動作しますが、別のコンピュータでは「401無効な認証」などの例外が発生します。私はコンピュータの違いは何か分かりません。
デプロイされたアプリでは、禁止403例外が発生します。
に起因:com.google.api.client.googleapis.json.GoogleJsonResponseException:403 { "コード":403、 "エラー":[{ "ドメイン": "グローバル"、 「メッセージ": ""、 "禁じられた理由": "禁じられた" }]、 "メッセージ": "禁断" }
私が間違って何をしているのですか?
https://developers.google.com/identity/protocols/application-default-credentials#toolsupportで、App Engine自体で実行しているときにアプリケーションのデフォルトの認証情報が正常に動作するはずですが、Appengineを起動するとデフォルトでローカルでしか動作しません「gcloud preview app run」を使用します。または、サンプルを実行する前に 'gcloud auth login'を実行してみてください。 –
^^これをエコーします。デフォルトの資格情報が有効になる前に 'gcloud auth login'または' gcloud auth activate-service-account'([docs](https://cloud.google.com/sdk/gcloud/reference/auth/))を実行する必要があります開発者の仕事。 – Nick
このスレッドのアップデートはありますか? – Nick