Я настроил служебную учетную запись, используя пользовательский интерфейс GCP для определенного c проекта Project X
. В пределах Project X
есть 3 набора данных:
Dataset 1
Dataset 2
Dataset 3
Если я назначу роль BigQuery Admin
на Project X
это в настоящее время наследуется всеми 3 наборами данных.
В настоящее время все эти наборы данных наследуют разрешения, назначенные учетной записи службы на уровне проекта. Есть ли способ изменить разрешения для учетной записи службы, чтобы она имела доступ только к указанным наборам данных? например, разрешить доступ к Dataset 1
, но не Dataset 2
или Dataset 3
.
Возможен ли этот тип конфигурации?
Я пытался добавить условие в пользовательском интерфейсе, но когда я использую тип ресурса Name
и установил значение равным Dataset 1
, я не могу получить доступ ни к одному из наборов данных - предположительно значение не является правильным. Или набор данных не является допустимым ресурсом имени.
ОБНОВЛЕНИЕ
Добавление более подробной информации о том, что я уже пробовал до публикации, а также более подробной информации о том, что я делаю.
В моем конкретном случае использования я пытаюсь выполнить SQL запросов, а также изменить таблицы в BigQuery через API (используя Python).
Случай A : Я создаю учетную запись службы с ролью 'BigQuery Admin' .
Эта роль распространяется на все наборы данных в проекте - свойство наследуется и я не могу удалить эту роль учетной записи службы из какого-либо из наборов данных.
В этом случае я могу запрашивать все наборы данных и таблицы с помощью Python API - как и следовало ожидать.
Случай B: Я создаю учетную запись службы с без роли по умолчанию .
Роль не передается, и я могу назначить роли для указанных c наборов данных с помощью нажав на 'Поделиться набором данных' в пользовательском интерфейсе, чтобы назначить 'Bi gQuery Admin ' роль для них.
В этом случае я не могу запросить ни один из наборов данных или таблиц и получить следующую ошибку, если я попытаюсь:
*Forbidden: 403 POST https://bigquery.googleapis.com/bq/projects/project-x/jobs: Access Denied: Project X: User does not have bigquery.jobs.create permission in project Project X.*
Несмотря на то, что требуемые разрешения (bigquery.jobs.create
в данном случае) существуют для нужного набора данных, я не могу запросить данные, поскольку выясняется, что разрешение bigquery.jobs.create
также требуется на уровне проекта для используйте API.