Пользовательская роль IAM для вставки в определенный набор данных BigQuery

У меня есть несколько проектов для клиентов, которые записывают аналитические события в набор данных BigQuery. Настройка организована так:

1) Каждый проект GCP имеет свой собственный набор ресурсов GCP, и некоторые из них сообщают об аналитике с использованием API вставки BigQuery.

2) Существует один проект "Основная аналитика", который собирает все данные из разных проектов в стандартизированной таблице (все проекты записывают в одном и том же формате данных).

Я создал пользовательскую роль IAM в "Основной аналитике" с необходимыми разрешениями для выполнения операции вставки строки:

bigquery.datasets.get
bigquery.tables.get
bigquery.tables.updateData

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

Проблема: что я действительно хочу сделать, так это ограничить учетные записи службы только для записи в конкретный набор данных, который принимает все данные. Вышеуказанная роль IAM позволяет учетной записи службы перечислять все наборы данных / таблицы в проекте "Основная аналитика" и вставлять в них.

Если я использую разрешения набора данных - добавьте электронную почту учетной записи службы в качестве пользователя в ACL набора данных - тогда это должно быть WRITER роль набора данных, которая позволяет учетной записи службы создавать и удалять таблицы в наборе данных, который является слишком широким.

Объединение роли IAM с разрешениями набора данных приводит к объединению, поэтому WRITER разрешение вступает в силу по более узкой роли IAM.

В любом случае я могу настроить роли / разрешения, чтобы разрешить каждой учетной записи службы вставлять и только вставлять в определенный набор данных?

1 ответ

Решение

Вы можете бросить bigquery.datasets.get разрешение от пользовательской роли IAM, чтобы они не могли перечислить все наборы данных, а затем в разрешениях набора данных дать READER роль вместо WRITER пользователю для этого конкретного набора данных.

Другие вопросы по тегам