Существует возможность сбора этой информации?
Один из лучших способов сбора информации о том, кто пытается подключиться к вашему экземпляру Google Cloud SQL с неверными учетными данными, - Ведение журнала Stackdriver.
Перед началом
Чтобы воспроизвести эти шаги, я подключился к экземпляру Cloud SQL с помощью команды gcloud:
gcloud sql connect [CLOUD_SQL_INSTANCE]
Я не совсем уверен, что при использовании mysql в командной строке что-то изменится вдоль строк, но в случае, если это произойдет, вам нужно только поискать новое сообщение журнала и обновить последнюю логическую запись (начиная с пункта 4).
Как собрать эту информацию из ведения журнала Stackdriver
- Go в разделе Секция Stackdriver → Logging.
- Чтобы получить информацию, которую мы ищем, мы будем использовать расширенные запросы журнала . Расширенные запросы журнала - это выражения, которые могут указывать набор записей журнала из любого количества журналов. Расширенные запросы журналов можно использовать в средстве просмотра журналов, API ведения журнала или в инструменте командной строки gcloud. Они являются мощным инструментом для получения информации из журналов.
- Здесь вы найдете, как получить и включить расширенные запросы журнала в ваших журналах.
- Расширенные запросы журнала просто логические выражения, которые определяют подмножество всех записей журнала в вашем проекте. Чтобы выяснить, кто ввел неправильные учетные данные в ваш экземпляр Cloud SQL с MySQL, мы будем использовать следующие запросы :
resource.type="cloudsql_database"
resource.labels.database_id="[PROJECT_ID]:[CLOUD_SQL_INSTANCE]"
textPayload:"Access denied for user"
Где [PROJECT_ID]
соответствует идентификатору вашего проекта , а [CLOUD_SQL_INSTANCE]
соответствует имени облака SQL экземпляра , который вы хотите контролировать.
Если вы заметили, последнее логическое выражение, соответствующее textPayload
, использует оператор :
.
Как описано здесь с помощью оператора :
мы ищем совпадения с любой подстрокой в поле записи журнала, поэтому каждый журнал, соответствующий строке указано, что в данном случае: "Access denied for user"
.
Если теперь какой-либо пользователь вводит неправильные учетные данные, в ваших журналах должно появиться сообщение, подобное следующему:
[TIMEFRAME][Note] Access denied for user 'USERNAME'@'[IP]' (using password: YES)
От здесь речь идет об использовании одного из продуктов GCP для отправки вам уведомления, когда пользователь вводит неправильные учетные данные.
Надеюсь, это поможет.