4

我是Google云端平台新手。我已经建立了一个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

应用默认凭据行为在gcloudchanged自128

一个版本应该使用

gcloud auth application-default login 

代替。

请注意,通过gcloud auth logingcloud initgcloud config set account MY_ACCOUNT更改凭据不会影响应用程序默认凭据,它们与gcloud凭证分开管理。