Ограничить учетную запись службы IAM определенным журналом Google Stackdriver Log

Я планирую разместить несколько экземпляров своего приложения в GKE и подумываю об использовании Google Stackdriver для ведения журнала аудита. Однако из того, что я вижу в документации по контролю доступа (https://cloud.google.com/logging/docs/access-control) роль logWriter применяется ко всему проекту. Я, очевидно, только хочу, чтобы каждый экземпляр мог писать в свой собственный журнал. Это возможно?

Я планирую отправлять журналы из Stackdriver в BigQuery. Есть возможность отправить в BigQuery напрямую, но не представляется возможным ограничить учетные записи только для вставки. Другой - отдельный проект для каждого приложения (пространство имен GKE), но это кажется чрезмерно сложным и не рекомендуется для выполнения каких-либо задач.

Спасибо!


person eug    schedule 19.10.2018    source источник
comment
Правильный вопрос, и я думаю, что вы правы - вы не можете ограничивать или предоставлять доступ к определенным журналам. Все или ничего.   -  person Drew    schedule 24.07.2019


Ответы (1)


Для каждого экземпляра в кластере GCE / GKE у вас есть возможность включить или отключить возможности ведения журнала. Для отдельных экземпляров GCE вы можете отключить доступ к API или использовать служебную учетную запись с ролью «регистратора» только при создании экземпляра [1].

Для GKE вы можете включить / отключить доступ к Stackdriver Logging API все вместе и перейти к экземплярам пула узлов. Это работает просто так, что модуль «fluentd» отправляет журналы в API-интерфейс stackdriver, используя учетную запись службы узла.

Что касается отправки журналов из Stackdriver в BigQuery, вы получаете Sink [2]. Sink создаст новую учетную запись службы, называемую уникальным идентификатором писателя, и пункт назначения экспорта (BigQuery) должен разрешить этой учетной записи службы запись в журнал, как описано в [3]

[1] https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances?hl=en_US&_ga=2.210364631.-390700867.1538154355 [2] https://cloud.google.com/logging/docs/export/configure_export_v2 [3] https://cloud.google.com/logging/docs/export/configure_export_v2#dest-auth

person Germán A.    schedule 19.10.2018
comment
Спасибо за ответ, но я не уверен, насколько полезен обходной путь, так как экземпляр с ролью logwriter сможет писать во все журналы, а не только в определенные .. - person eug; 21.10.2018
comment
Что мне нужно, так это запретить модулям GKE олицетворять друг друга в журналах аудита. Да, использование fluentd будет работать, хотя сериализация записей аудита JSON в текст и из текста кажется неэффективной, но все же +1 для вашего ответа. Я думаю, что мне, вероятно, нужно создать проект для каждого модуля, предоставить каждому модулю учетную запись службы из этого проекта, войти в журнал Stackdriver этого проекта и создать приемник в каждом проекте для экспорта в конкретную таблицу BigQuery в моем исходном проекте. .. - person eug; 30.10.2018