4

Google Cloud Platformの新機能です。 Google VMインスタンスをセットアップしました。コマンドを実行している間、私は、ローカルマシン上の認証問題に直面しています:gcloud.exceptions.Forbidden:403権限がないか不足しています

python manage.py makemigrations

をあなたが同じことを解決するためにいくつかのヒント/手順を提案してくださいことはできますか?

エラートレース

File "/constants.py", line 18, in <module> 
    table_data = datastore_fetch(project_id, entity_kind) 
    File "/datastore_helper.py", line 23, in datastore_fetch 
    results = list(query.fetch()) 
    File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/query.py", line 463, in __iter__ 
    self.next_page() 
    File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/query.py", line 434, in next_page 
    transaction_id=transaction and transaction.id, 
    File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/connection.py", line 286, in run_query 
    _datastore_pb2.RunQueryResponse) 
    File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/connection.py", line 124, in _rpc 
    data=request_pb.SerializeToString()) 
    File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/connection.py", line 98, in _request 
    raise make_exception(headers, error_status.message, use_json=False) 
gcloud.exceptions.Forbidden: 403 Missing or insufficient permissions. 

その他インフォメーション:

gcloud auth list 
Credentialed Accounts: 
- [email protected] ACTIVE 
To set the active account, run: 
    $ gcloud config set account `ACCOUNT` 

gcloud config list 
Your active configuration is: [default] 

[core] 
account = [email protected] 
disable_usage_reporting = True 
project = user_project 

入力:(スタンドアロンPython関数)

from gcloud import datastore 
client = datastore.Client('user_project') 

print(vars(client.connection.credentials)) 

出力:

{'scopes': set([]), 'revoke_uri': 'https://accounts.google.com/o/oauth2/revoke', 'access_token': None, 'token_uri': 'https://www.googleapis.com/oauth2/v4/token', 'token_info_uri': None, 'token_response': None, 'invalid': False, 'refresh_token': u'1/t-V_pZicXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'client_id': u'3XXXXXXXX9.apps.googleusercontent.com', 'id_token': None, 'client_secret': u'ZXXXXXXXXXXXXXXXXXXX2', 'token_expiry': None, 'store': None, 'user_agent': 'Python client library'} 

VM詳細

Firewalls 
Allow HTTP traffic 
Allow HTTPS traffic 

Availability policies 
Preemptibility Off (recommended) 

Automatic restart 
On (recommended) 

On host maintenance 
Migrate VM instance (recommended) 

Custom metadata 
None 

SSH Keys 
Block project-wide SSH keys 
None 

Service account 
[email protected]_project.iam.gserviceaccount.com 

Cloud API access scopes 
This instance has full API access to all Google Cloud services. 

おかげで、

+0

提案がありますか? – Naveen

答えて

2

はただ、これらの二つのコマンド実行:ローカルマシンから

1. gcloud beta auth application-default login 
2. export GOOGLE_APPLICATION_CREDENTIALS='/<path_to_json>/client_secrets.json' 

をし、それが仕事を始めました。

+1

うれしいことですが、それを設定する必要はありません。 'gcloud auth application-default login'を実行してから' GOOGLE_APPLICATION_CREDENTIALS'を解除するとどうなりますか? –

+0

私は実際にローカルマシンからこれらのコマンドを両方とも実行しました。 – Naveen

+0

Windowsの場合: 'set GOOGLE_APPLICATION_CREDENTIALS = keyfile.json' – Beginner

8

アプリケーションのデフォルトの資格証明のための動作は、バージョン128

一つではなく

gcloud auth application-default login 

を使用する必要がありますので、gcloudchangedを持っています。

資格情報をgcloud auth loginまたはgcloud initまたはgcloud config set account MY_ACCOUNTに変更しても、アプリケーションのデフォルト資格情報に影響はなく、gcloud資格情報とは別に管理されます。

関連する問題