Рейтинг:0

Google HTTP Load Balancer и Google Cloud Storage: по-видимому, случайный 403 в запросах PUT

флаг in

У меня есть Google Cloud Storage, настроенный с CNAME в соответствии с документация, поэтому в основном у меня есть балансировщик нагрузки Google, обрабатывающий запросы. За почти 2 года с этой конфигурацией у меня не было проблем (трафик сейчас выше, поэтому проблема, вероятно, была запутана... Я не могу этого знать). Я использую подписанные URL-адреса.

Я начал получать несколько явно случайных ответов 403 с операцией PUT в хранилище, так что в основном с операцией загрузки файла. Видимо случайно потому что он работает большую часть времени (я бы сказал, 99%), но проблемы становятся очевидными в средстве просмотра журнала и, конечно же, в запросах поддержки от наших пользователей.

Вот запись в журнале (некоторые детали запутаны):

{
  "insertId": "<id_здесь>",
  "jsonПайлоад": {
    "@type": "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry",
    "statusDetails": "response_sent_by_backend"
  },
  "httpRequest": {
    "requestMethod": "ПОСТАВИТЬ",
    "requestUrl": "https://storage.mydomain.it/path/2/2021-06-18/m_808/2_2021-06-18-09-09-24_m808_bdb6b3.png?GoogleAccessId=ocr-account%40mydomain.iam .gserviceaccount.com&Expires=1624000464&Signature=<signature_here>",
    "requestSize": "1188472",
    "статус": 403,
    "размер ответа": "658",
    "userAgent": "Apache-CXF/3.2.5",
    "remoteIp": "88.86.183.XXX",
    "задержка": "0,107676 с"
  },
  "ресурс": {
    "тип": "http_load_balancer",
    "метки": {
      "backend_service_name": "",
      "forwarding_rule_name": "mydomain-balancer-1-forwarding-rule-2",
      "url_map_name": "mydomain-balancer-1",
      "target_proxy_name": "mydomain-balancer-1-target-proxy-2",
      "проект_id": "мой_проект_id",
      "зона": "глобальная"
    }
  },
  "отметка времени": "2021-06-18T07:09:25.037700Z",
  "серьезность": "ВНИМАНИЕ",
  "logName": "проекты/мой проект/журналы/запросы",
  "трассировка": "проекты/мойпроект/трассировки/cc8123c2a42e70d8d002c84efe15e5de",
  "receiveTimestamp": "2021-06-18T07:09:25.668260183Z",
  "spanId": "e4b4a200767c9de0"
}

response_sent_by_backend вероятно, это признак того, что само хранилище отправило ошибку 403. Теперь есть много возможные причины ошибки 403, но программа просмотра журнала не дает никакой другой информации.

Как я могу подойти к этой проблеме, чтобы понять, что происходит?

John Hanley avatar
флаг cn
1) Время истечения слишком короткое.В вашем примере журнала срок действия URL-адреса истекает в течение пяти минут после записи в журнале. Вы сможете получить более подробную информацию в журналах Cloud Storage. 2) Пользовательский агент - Apache. Это ваша служба? Если да, убедитесь, что дата, время и часовой пояс установлены правильно.
Lorenzo S avatar
флаг in
Привет @JohnHanley, спасибо за ваш ответ. Что касается проблемы с истечением срока действия, я вижу, что отметка времени в журнале — «Пт, 18 июня 2021 г., 09:09:25 по Гринвичу + 0200», а дата истечения срока действия URL — «Пт, 18 июня 2021 г., 09:14:24 по Гринвичу + 0200 (Центральный European Summer Time)», так что я думаю, что в этом смысле мы хороши. Для пользовательского агента: это может быть интересным наблюдением. Я спрошу партнера, который использует эту услугу (на самом деле, это единственный партнер, у которого есть эта проблема). Спасибо!
John Hanley avatar
флаг cn
Ваш комментарий наводит меня на мысль, что системное время вашего партнера неверно. Дата/время в запросе должны быть правильными для подписанных URL-адресов. Каков срок действия ваших подписанных URL-адресов (время с момента выпуска)? Google меняет закрытые ключи, поэтому ограничьте общее время действия менее чем 12 часами. https://cloud.google.com/storage/docs/access-control/signed-urls#signing-iam

Ответить или комментировать

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