Управление доступом к производственной среде для GoogleCloud с помощью Stackdriver

Как люди внедрили контроль доступа к производственной среде (т. Е. Ведение журналов и создание отчетов о доступе служб и людей к вычислительным экземплярам через SSH). Наша цель состоит в том, чтобы последовательно пересылать все записи для входа пользователей в нашу SIEM по проектам и в идеале избегать использования специальных приемников Stackdriver (и связанных с ними настройки и обслуживания).

Мы пробовали следующее:

  • Включена пересылка журнала аутентификации в Fluentd, поскольку по умолчанию выполняется только системный журнал.
  • Включены приемники уровня организации, которые отправляют в тему (для пересылки в SIEM через подписчика HTTP), которые включают всех дочерних элементов.
  • Может видеть syslog / auth на уровне проекта для образов ОС без контейнера (например, Ubuntu)

Проблемы, которые мы наблюдаем: - Ограниченная документация по формату фильтров на уровне организации (похоже, отличается от уровня проекта для таких вещей, как logName). Кажется, что функция log_id работает - некоторые типы журналов появляются на уровне организации (например, активность cloudapis), но syslog не обрабатывается - кажется, что операционная система контейнера не включает пересылку ssh / sudo по умолчанию в fluentd (или я не обнаружил, какой тип журнала содержит эти данные). Я вижу, что это записано в journalctl на тестовом узле

Есть ли у кого-нибудь последовательный способ добиться этого?


person Edward Newman    schedule 05.02.2020    source источник
comment
Stackdriver по умолчанию не ведет журналы SSH-сервера. Вам нужно добавить /var/log/auth.log в Stackdriver для экземпляров, которые вы отслеживаете. serverfault.com/a/955094/437769   -  person John Hanley    schedule 05.02.2020
comment
Ага. Увидел связанный элемент, и это первый в списке вещей, которые мы пробовали. Эти журналы, по-видимому, не становятся видимыми для Stackdriver на уровне организации, или, по крайней мере, я нашел способ включить это. Только на уровне проекта.   -  person Edward Newman    schedule 06.02.2020
comment
Что вы имеете в виду на уровне организации. Журналы Stackdriver для каждой службы / ресурса для большинства служб. Чтобы просмотреть журналы, записанные для ресурса, необходимо развернуть Stackdriver. Если вам нужно что-то еще, вам нужно будет настроить экспорт журналов и обрабатывать записи в собственном приложении или в службе мониторинга журналов.   -  person John Hanley    schedule 06.02.2020
comment
Вы можете определить приемники на уровне организации (не отображаются через пользовательский интерфейс - см. Документацию по агрегированным журналам). Мы используем приемники и pub / sub для пересылки журналов в SIEM. Дальнейшее тестирование предполагает, что системный журнал доступен в организации, но вы не можете перечислить все доступные журналы через интерфейс командной строки.   -  person Edward Newman    schedule 07.02.2020


Ответы (2)


Одним из способов решения этой проблемы может быть экспорт вашего журнала перейти в BigQuery. Обратите внимание, что настройка приемника для экспорта журналов BigQuery для всех проектов в рамках Организации содержит параметр, для которого задано значение 'False', для поля 'includeChildren' должно быть установлено значение 'True'. Если задано значение true, журналы из всех проектов, папок и учетных записей, содержащихся в родительском ресурсе приемника, также доступны для экспорта, если задано значение false, для экспорта доступны только журналы, принадлежащие родительскому ресурсу приемника. Затем вы должны иметь возможность фильтровать журналы, необходимые для BigQuery.

Другой способ приблизиться к этому - написать сценарий, перечислив все проекты с помощью команды: gcloud projects list | tail -n +2 | awk -F" " '{print $1}' Это может быть преобразовано в массив, который можно повторять, и журналы для каждого проекта могут быть получены с помощью той же команды, что и в этом doc.

Не уверен, что все это может как-то помочь решить ваш вопрос, надеюсь на это.

person Ariel Palacios    schedule 16.03.2020
comment
В конце концов мы смогли решить эту проблему. Приемники были определены на уровне организации, которые затем перенаправлялись в темы PubSub и далее в нашу SIEM. Инструменты Google не позволяют легко увидеть имя журнала на уровне организации, но они работают. - person Edward Newman; 17.03.2020

Если кто-то еще столкнется с этим, мы обнаружили следующее:

  • Можно настроить приемники Stackdriver на уровне организации через интерфейс командной строки. Не отображается через пользовательский интерфейс облачной консоли, а также интерфейс командной строки не позволяет отображать типы журналов в организации.
  • Фильтры могут быть определены на приемниках в дополнение к logName, но формат может отличаться от фильтров уровня проекта.
  • Вам необходимо включить ведение журнала аутентификации в fluentd, который зависит от платформы (т.е. один процесс для google-fluentd в Ubuntu отличается от настройки stackdriver в ОС контейнера)
  • SSHD по какой-то причине не регистрирует начальный журнал с указанием пользователя и IP через syslog (и, следовательно, fluentd), и поэтому не отображается для Stackdriver
  • Использование org-приемников для тем - это дочерний проект с подпиской для пересылки на выбранный вами SIEM, работает хорошо

Все еще пытаюсь получить журналы команд gcloud ssh

person Edward Newman    schedule 27.02.2020