Доступ к API Stackdriver Google Python запрещен

При попытке создать приемник с помощью клиента API Google Cloud Python3 я получаю сообщение об ошибке:

RetryError: GaxError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.PERMISSION_DENIED, The caller does not have permission)>)

Я использовал следующий код:

import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'path_to_json_secrets.json'

from google.cloud.bigquery.client import Client as bqClient
bqclient = bqClient()
ds = bqclient.dataset('dataset_name')

print(ds.access_grants)
[]

ds.delete()
ds.create()

print(ds.access_grants)
[<AccessGrant: role=WRITER, specialGroup=projectWriters>,
 <AccessGrant: role=OWNER, specialGroup=projectOwners>,
 <AccessGrant: role=OWNER, userByEmail=id_1@id_2.iam.gserviceaccount.com>,
 <AccessGrant: role=READER, specialGroup=projectReaders>]

from google.cloud.logging.client import Client as lClient
lclient = lClient()
dest = 'bigquery.googleapis.com%s' %(ds.path)
sink = lclient.sink('sink_test', filter_='jsonPayload.project=project_name', destination=dest)
sink.create()

Не совсем понимаю, почему это происходит. Когда я использую lclient.log_struct(), я вижу журналы, поступающие в консоль ведения журнала, поэтому у меня есть доступ к Stackdriver Logging.

Есть ли ошибка в этой настройке?

Заранее спасибо.


person Willian Fuks    schedule 22.04.2017    source источник


Ответы (1)


Для создания приемника требуются другие разрешения, чем для записи в журнале. По умолчанию учетным записям служб предоставляется редактор проекта (а не владелец), у которого нет разрешения на создание приемников.

См. Список требуемых разрешений в документации по управлению доступом.

Убедитесь, что у используемой вами учетной записи службы есть logging.sinks.create разрешение. Самый простой способ сделать это - переключить учетную запись службы с редактора на владельца, но было бы лучше добавить роль редактора журналов, чтобы вы просто дали ей необходимое разрешение.

person Bill Prin    schedule 24.04.2017